PoCL 1.6 (可移植計算語言 OpenCL)專案的新版本剛剛發布。 1.6 版本的亮點包括相容 Clang/LLVM 11.0,以及在提升 CUDA 性能和功能、增強與 PowerPC 的兼容性以及改進 OpenCL 調試功能方面所做的工作。
對於不熟悉 PoCL 的用戶,它是一個可移植的開源(MIT 授權)OpenCL 標準實作(1.2 版本,並相容於部分 2.0 版本功能)。除了高度可移植、支援多裝置(真正異質)的開源 OpenCL 實作之外,該專案的主要目標之一是透過將各種 OpenCL 相容裝置整合到一個集中管理的平台中,來提高它們之間的互通性。
此外,關鍵的長期目標之一是提高OpenCL程序在使用運行時和編譯技術的設備類型上的性能的可移植性。
OpenCL內核編譯器基於LLVM,Clang用作OpenCL C的接口。為了提供足夠的可移植性和性能,OpenCL內核編譯器可以生成組合函數,這些函數可以使用各種硬件資源來並行化代碼執行。 ,例如VLIW,超標量,SIMD,SIMT,多核和多線程。 支持ICD(可安裝客戶端驅動程序)驅動程序。 有後端可通過CPU,ASIP(TCE / TTA),基於HSA架構的GPU和NVIDIA GPU(CUDA)提供工作。
PoCL 1.6的主要新功能
PoCL 1.6的這個新版本突出了在編譯時啟用設備驅動程序的情況下編譯此實現的能力,以及將在啟動時驗證設備的可用性(以前,在其上構建和運行PoCL的系統他們應該有相同的控制器支持)。 實現了使用conda軟件包管理器來分發PoCL二進制軟件包的功能,並具有針對Linux-x86_64和Linux-ppc64le系統的CUDA支持。
另一個突出的變化是對LLVM 11的支持以及使用CPU控制器時調試OpenCL代碼的擴展可能性。
此外,應注意的是,對CUDA後端進行了性能優化,從而大大簡化了與使用本地內存(FFT,GEMM)有關的操作。
使用SHOC基準測試的基準測試(現已不斷測試)表明,這些優化結果帶來了更好的性能,尤其是與FFT和GEMM等涉及本地內存的基準測試相比, PoCL現在通常可以使用Nvidia專有的OpenCL驅動程序來獲得競爭性能。 我們歡迎您為找出並消除其餘問題區域的根本原因做出貢獻。 我們也歡迎為提高OpenCL 1.2 / 3.0標準的功能覆蓋範圍做出的貢獻。

- 現在,許多測試中的PoCL性能已經接近NVIDIA專有的OpenCL驅動程序。
- 添加了HARDENING_ENABLE編譯參數,以使編譯器選項能夠以降低性能的代價生成更安全的libpocl.so。
- 返回對PowerPC 8/9系統的支持,使用pthread和CUDA設備時,OpenCL實施級別對應於x86_64系統上的CUDA級別。
- 更改了使用__本地塊的CUDA內核的ABI。 升級後,用戶需要清除pocl緩存。
- 已刪除對SINGLE_LLVM_LIB構建選項的支持,而不是使用STATIC_LLVM和llvm-config定義要綁定到的庫。
最後,如果您想了解有關此新版本的更多信息,可以查看原始公告中的詳細信息。
有興趣了解更多相關資訊的人士可以訪問其官方網站,在那裡可以找到文件和可下載的文件。
該項目代碼是根據MIT許可分發的,並且該工作在X86_64,MIPS32,ARM v7,AMD HSA APU和具有VLIW架構的各種專用TTA處理器上得到支持。