Java Vector API има за цел да осигури механизъм за написване на сложни векторни алгоритми за Java.
Част от Project Panama се фокусира върху свързването на JVM и native код, а API има за цел да осигури първоначална итерация на инкубаторния модул jdk.incubator.vector за експресиране на векторни изчисления, които компилират по време на изпълнение на оптимални хардуерни инструкции за поддържаните архитектури на процесора. Плановете изискват поддръжка на компилатора на Graal. Целите на проекта включват:
- Осигуряване на ясен и кратък API, способен да изразява широка гама векторни изчисления.
- Надеждна компилация и изпълнение по време на изпълнение на x64 архитектури.
- Архитектурен агностицизъм.
- Графично разграждане, при което ако изчисляването на вектора не може да бъде напълно изразено по време на изпълнение като последователност или поради това, че архитектура с x64 не поддържа някои от инструкциите, или друга архитектура на CPU не се поддържа, то тогава внедряването на Vector API би се отклонило грациозно, разработчиците могат да получават предупреждения по този въпрос.
Ако Oracle и Intel изпълнят обещанията си, Java Vector API ще осигури механизъм за написване на сложни векторни алгоритми в Java, използвайки съществуващата поддръжка във виртуалната машина HotSpot за векторизация. При векторни операции една степен на успоредност позволява по-голяма работа в един цикъл на процесора. А потребителският модел в приложния програмен интерфейс (API) ще направи векторизацията по-предсказуема, като използва основния векторен хардуер.
В този момент предложението не цитира конкретно издание на Java, което ще бъде дом на API, въпреки че обхватът на проекта е предназначен за стандартното издание на Java. Проектът носи риск API да бъде предубеден към SIMD на x64 архитектури. Но ще бъдат взети под внимание и други архитектури, по-специално ARM Scalar Vector Extension архитектура.
Източник: JavaWorld