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) 原語或其他加密原語。
相關文章
- 機器學習:支援向量機(SVM)機器學習
- 機器學習——支援向量機(SVM)機器學習
- 學習SVM(四) 理解SVM中的支援向量(Support Vector)
- 機器學習之支援向量機的超平面機器學習
- 【機器學習】支援向量機分類機器學習
- 機器學習——支援向量機SVM(一)機器學習
- Android Smart Linkify 支援機器學習Android機器學習
- 軒田機器學習技法課程學習筆記1 — Linear Support Vector Machine機器學習筆記Mac
- 林軒田機器學習技法課程學習筆記6 — Support Vector Regression機器學習筆記
- 【機器學習】支援向量機(個人筆記)機器學習筆記
- 人工智慧-機器學習-支援向量機SVM人工智慧機器學習
- 林軒田機器學習技法課程學習筆記3 — Kernel Support Vector Machine機器學習筆記Mac
- 林軒田機器學習技法課程學習筆記2 — Dual Support Vector Machine機器學習筆記Mac
- 《吳恩達機器學習》學習筆記007_支援向量機吳恩達機器學習筆記
- 通過機器學習讓醫療資料更好用機器學習
- 機器學習之支援向量與間隔機器學習
- 機器學習基礎專題:支援向量機SVM機器學習
- 吳恩達機器學習系列17:支援向量機吳恩達機器學習
- 林軒田機器學習技法課程學習筆記4 — Soft-Margin Support Vector Machine機器學習筆記Mac
- 使用Java程式消費SAP Leonardo的機器學習APIJava機器學習API
- 機器學習之支援向量機原理和sklearn實踐機器學習
- 吳恩達機器學習筆記 —— 13 支援向量機吳恩達機器學習筆記
- Java機器學習VisRec API快速入門 - foojayJava機器學習API
- 【Python機器學習實戰】感知機和支援向量機學習筆記(三)之SVM的實現Python機器學習筆記
- 《機器學習_08_代價敏感學習_新增sample_weight支援》機器學習
- 【機器學習】機器學習簡介機器學習
- [譯] 使用 Python Flask 框架釋出機器學習 APIPythonFlask框架機器學習API
- ARM釋出全新處理器,只為更好提升AI與機器學習效能AI機器學習
- 機器學習之支援向量機(線性模型)的最佳化問題機器學習模型
- 支援向量機(Support Vector Machine,SVM)—— 線性SVMMac
- 機器學習中的元學習機器學習
- 機器學習演算法筆記之5:支援向量機SVM機器學習演算法筆記
- 學java16迴圈結構Java
- [python學習]機器學習 -- 感知機Python機器學習
- 大型機器學習【Coursera 史丹佛 機器學習】機器學習
- (一) 機器學習和機器學習介紹機器學習
- 【機器學習】--Python機器學習庫之Numpy機器學習Python
- 機器學習-整合學習機器學習