HPVM,一種基於LLVM的編譯器,用於CPU,GPU,FPGA和加速器

項目開發商 LLVM發布 最近發布了異構並行虛擬機編譯器 (HPVM)1.0,目的是 簡化異構系統的編程,並提供用於CPU,GPU,FPGA和硬件加速器的代碼生成工具 特定於域的(1.0版中不包括對FGPA和加速器的支持)。

主要思想 在HPVM之後 是同時編譯可執行程序的統一表示 可以在各種並行硬件上運行,包括GPU,矢量指令,多核處理器,FPGA和各種專用的加速器芯片。

異構並行系統的編程變得複雜,因為系統中存在使用不同模型來實現並行性的組件(CPU 內核、向量指令、GPU 等)、不同的指令集和不同的內存層次結構,並且每個系統都有一個組合此類組件的數量正在發生變化。

伊利諾伊州 LLVM 編譯器研究小組很高興地宣布 HPVM 的開源版本(版本 1.0)。 HPVM 是一個可重定向編譯器框架,針對 CPU、GPU 和加速器(此版本不包括加速器支持)[1]。 HPVM 使用與目標無關的編譯器 IR,該編譯器 IR 通過捕獲任務、數據和管道並行性的顯式分層數據流表示來擴展 LLVM 9.0.0 編譯器 IR。

該版本是我們第一個版本(版本 0.5)的主要補充,它增加了對線性代數張量運算、Pytorch 和 Keras 接口、卷積算子近似以及用於近似調整的高效靈活框架的支持。 

應該注意的是 HPVM可以顯著提高性能 因為 eHPVM轉換器的輸出性能與OpenCL代碼相當 為 GPU 和矢量計算設備手寫。 與其他系統不同,HPVM 嘗試結合組織異構計算的三種可能性:獨立於硬件和語言的中間表示、虛擬指令集架構 (V-ISA) 和運行時編程。

獨立的中間代表 目標系統的(IR) HPVM中使用的編程語言是基於LLVM 9.0指令的中間表示 並使用分層數據流圖對其進行擴展,以涵蓋任務,數據和計算流水線級別的並行性。

HPVM中間件還包括矢量指令和共享內存。 使用中間表示的主要目標是針對異構系統進行有效的代碼生成和優化。

虛擬指令集體系結構(V-ISA)僅使用基本的並發模型(數據流圖)來抽象化低級硬件功能,並統一各種形式的並行性和內存體系結構。 V-ISA允許在不同類型的並行計算設備之間實現可移植性,並且在使用異構系統的不同元素時不會丟失性能。 虛擬ISA還可以用於提供通用的可執行程序代碼,這些代碼可以使用CPU,GPU,FPGA和各種加速器運行。

在目前的發展階段, HPVM提供的代碼生成器能夠轉換ISA定義的應用程序節點 使用NVIDIA GPU(cuDNN和OpenCL),Intel AVX矢量指令和多核x86 CPU進行虛擬運行。 }

在執行過程中,HPVM 對計算過程應用靈活的調度策略,既基於有關程序的信息(圖形結構),又通過編譯各個程序節點以在系統中可用的任何目標計算設備上執行來實現。

與第一個預覽版相比, HPVM 1.0包括對線性代數張量運算的支持, Pytorch和Keras的界面以及近似調整框架,該框架會自動為某些張量操作選擇最佳近似,並選擇最佳性能設置。

最後,如果您有興趣了解有關此編譯器的更多信息, 您可以在以下鏈接中查看詳細信息。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。