Java16的Vector API更好支援機器學習
Vector API 提供了一種用 Java 編寫跨平臺資料並行演算法的機制,例如複雜的數學和基於陣列的運算。
Vector API 提供了一個可移植的 API 來表達向量數學計算。API 的第一次迭代由JEP 338提出並整合到 Java 16 中。第二個孵化器JEP 414是 Java 17 的一部分。第三個孵化器正在進行中,目前針對 Java 18 作為JEP 417。
這項工作是Java 專案 Panama 的一部分,它加強了 JVM 和非 Java API(也稱為外部API)之間的許多聯絡,包括使向量數學內在函式成為 HotSpot JVM 的一部分(因此成為核心 Java 的一部分) .
Project Panama 使 Java 程式設計師可以更好地訪問 CPU 的所有現代功能。CPU 可以做的一件令人興奮的事情是 SIMD(單指令多資料)處理,它提供了透過程式的多通道資料流。可能有 4 條通道或 8 條通道或任意數量的單個資料元素流經的通道——並且 CPU 一次在所有通道上並行組織操作。正如您所料,這極大地提高了吞吐量。
透過 Vector API,Java 團隊正在努力讓 Java 程式設計師使用 Java 程式碼直接訪問它;過去,他們必須在彙編程式碼級別對向量數學進行程式設計。
在 25 年前首次設計 Java 時,SIMD 微處理器功能並不重要,但今天它們變得更加標準和廣泛。如果您要獲得現代 CPU 的全部優勢,那麼現在就需要能夠使用 SIMD 指令和多個並行執行的通道。藉助 Vector API,Java 正在以一種新的方式進入該領域,即使用本機 Java 程式碼。
HotSpot 編譯器將您使用此 API 在向量例項上執行的所有方法呼叫轉換為與特定硬體平臺的功能緊密匹配的硬體和向量結構。這允許您以獨立於平臺的方式使用 SIMD 處理以資料並行的方式進行程式設計;您不必瞭解或瞭解底層硬體。
您可能會使用標量迴圈編寫程式碼,這些迴圈一次在一個元素上執行。那很慢。現在,您可以使用 Vector API 將標量演算法轉換為速度更快的資料並行演算法,從而獲得一個非常清晰、編寫良好且在多個平臺上執行良好的應用程式。
基本上,Vector API 提供了效能和可移植性。
您可以構建一些有趣的演算法,例如並行提取和存款操作,這些操作尚未在所有平臺上進行向量化,或者使用高階加密標準 (AES) 原語或其他加密原語。
相關文章
- ECMAScript 6:更好的 Unicode 支援Unicode
- 如何更好的設計 RESTful APIRESTAPI
- 如何更好的設計RESTful APIRESTAPI
- 如何更好地學習機器學習?機器學習
- TensorFlow 開發者峰會:支援 Swift,更好的支援 JavaScriptSwiftJavaScript
- 讓遠端桌面更好的支援遊戲遊戲
- TensorFlow開發者會峰會:支援Swift,更好的支援JavaScriptSwiftJavaScript
- 使用Java 18的Vector API提高效能 - martinJavaAPI
- SQL是比GraphQL更好的API語言?SQLAPI
- [譯]使用 Proxy 更好的封裝 Storage API封裝API
- 學習SVM(四) 理解SVM中的支援向量(Support Vector)
- 如何更好管理 Api 介面(續)API
- 學java16迴圈結構Java
- 支援向量機(Support Vector Machine,SVM)—— 線性SVMMac
- 第八篇:支援向量機 (Support Vector Machine)Mac
- C++ sort vector<vector<int> > or vector<MyClass> 容器的排序C++排序
- 機器學習:支援向量機(SVM)機器學習
- 機器學習——支援向量機(SVM)機器學習
- 機器學習之支援向量機的超平面機器學習
- Spring Boot 2.5.0 釋出:支援Java16、Gradle 7、Datasource初始化機制調整Spring BootJavaGradle
- 通過機器學習讓醫療資料更好用機器學習
- [探索]怎樣讓 JS - API 具有更好的實用性JSAPI
- 機器學習——支援向量機SVM(一)機器學習
- 【機器學習】支援向量機分類機器學習
- 前後端分離之更好的mock你的後端api後端MockAPI
- vector::clear(),容器vector的clear函式詳解。函式
- 機器學習之支援向量與間隔機器學習
- Android Smart Linkify 支援機器學習Android機器學習
- 【機器學習】支援向量機(個人筆記)機器學習筆記
- Openstack的Heat服務api支援HTTPSAPIHTTP
- LangChain4j支援的API型別LangChainAPI型別
- 用 Python 的魔術方法做出更好的正規表示式 APIPythonAPI
- 林軒田機器學習技法課程學習筆記6 — Support Vector Regression機器學習筆記
- vector
- 人工智慧-機器學習-支援向量機SVM人工智慧機器學習
- 更好地使用Atom支援基於Jupyter的Python開發Python
- 林軒田機器學習技法課程學習筆記3 — Kernel Support Vector Machine機器學習筆記Mac
- 林軒田機器學習技法課程學習筆記2 — Dual Support Vector Machine機器學習筆記Mac