甲骨文和英特爾開發支持SIMD的Java API以提升性能

jopen 6年前發布 | 14K 次閱讀 Oracle Intel

甲骨文和英特爾開發支持SIMD的Java API以提升性能

Java Vector API 旨在提供一個機制用于在 Java 中編寫復雜的向量(vetor)算法。

甲骨文和英特爾正在開發一種 Java API 來為平臺添加對向量(vector)或單指令多數據流(SIMD)的“一級(first-class)”支持,這將會帶來巨大的性能提升。

作為專注于互連 JVM 和原生代碼的 Panama 項目的一部分,這個 API 旨在提供 incubator 模塊 jdk.incubator.vector 的初始迭代,以用于表達向量計算 —— 在運行時階段編譯為所支持的 CPU 架構上的最佳硬件指令。計劃支持 Graal 編譯器,項目的目標包括:

  • 提供清晰簡潔的 API,能夠表達各種矢量計算

  • 在 x64 架構上提供可靠的運行時編譯和性能

  • 兼容不同的架構

  • 優雅降級:如果矢量計算無法在運行時階段作為序列完全表達,或者因為 x64 架構不支持某些指令,或其他 CPU 架構不被支持,那么 Vector API 的實現會優雅地降級,但仍然會起作用。開發者也會收到有關此問題的警告

如果甲骨文和英特爾能兌現這個承諾,Java Vector API 將會提供一種這樣的機制 —— 利用 HotSpot 虛擬機中的現有支持進行矢量化,從而在 Java 中編寫復雜的矢量算法。使用向量運算,一定程度的并行可以在單個 CPU 周期內完成更多工作。因此,可以獲得顯著的性能提升。API 中的用戶模型(user model)將利用底層的矢量硬件,從而使得矢量化更具可預測性。

在這一方面,甲骨文和英特爾表示,該提案并未引用一個特定的 Java 版本作為 API 依賴的版本,但該項目的范圍僅適用于 Java SE。另外,該項目存在一個這樣的風險 —— 在 x64 架構上,API 可能會偏向于 SIMD,不過其他架構也將會被考慮在內,特別是 ARM Scalar Vector 擴展架構。

來自:InfoWorld

 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!