2016年4月7日 星期四

OpenCL 程式框架與 CLInfo

最近,因為大量的運算需求;也因為使用的多台電腦之配備都不盡相同,想用一個程式在不同的電腦執行,都可以儘量獲得其運算資源,就想到 OpenCL、再複習一次 OpenCL。利用這次重新接觸 OpenCL 的機會,將 OpenCL 程式框架的安裝做個整理。
  OpenCL 標準提供一個框架,使得程式可以在 CPU (Central Processing Unit)、GPU (Graphics Processing Unit)、DSP (Digital Signal Processor)、FPGA (Field-Programmable Gate Arrays) 及其它以硬體加速的處理器執行,無論是『異質 (不同種類)』或『跨平台』。
  目前試裝過的平台、程式框架整理如下:
程式框架晶片最 低 要 求安 裝 說 明
nvidiaNVIDIA
GPU
自 Windows 的 190.89 版和 Linux 的 190.29 版起之驅動程式皆支援 (即:顯卡可安裝就支援)。()安裝 OpenCL (二):
NVIDIA GPU
Intel
OpenCL™ Runtime
Intel
CPU
Intel® Core™, Intel® Xeon® 處理器或 Intel® Xeon Phi™ 協同處理器。(CPU family 6, model 14 以上) (: install.sh)安裝 OpenCL (三):
Intel CPU
AMD
CPU
待測
intel-opencl-1.2Intel
CPU
第 4、5 代 Intel® Core™, Intel® Xeon® v3 或 Intel® Xeon® v4 處理器。(: intel-opencl-1.2-installation-external.pdf)安裝 OpenCL (四):
Intel GPU
AMD
CPU
待測
BeignetIntel
CPU
第 3、4、5 代 Intel® Core™ 及處理器或 Intel "Bay Trail" 內建 HD 繪圖之平台。()安裝 OpenCL (?):
Intel GPU - Beignet
AMD
CPU
待測
AMD APP SDK 3.0AMD
CPU
任何支援 SSE3 (或 SSE2.x 以上) 之 x86 CPU。()安裝 OpenCL (五):AMD CPU
AMD
APU
CPU 同 AMD CPU。
GPU 同 AMD GPU。
Intel
CPU
任何支援 SSE3 (或 SSE2.x 以上)、AVX 之 x86 CPU。()
CatalystAMD
GPU
待測
AMD
APU
GPU 待測
Mesa-libOpenCLAMD
GPU
待測安裝 OpenCL (七):
AMD GPU - Mesa
AMD
APU
CPU 同 AMD CPU。
GPU 目前僅測過 A10 (R7)
poclCPU透過 LLVM 支援,在 x86_64, MIPS32, ARM v7, AMD HSA APU 的 Linux 系統及多 VLIW 型式之 TTA 處理器 ()安裝 OpenCL (一):
pocl

註一:上表尚未完整、正確,將持續補充、修正。
註二:pocl 在 32-bit 電腦以 CLInfo 測試時,有錯誤訊息出現,尚有部份功能未完整。

一、安裝 CLInfo

CLInfo 這個程式可提供有關 OpenCL 程式框架的平台和裝置之所有訊息,供使用者瞭解電腦系統所提供的 OpenCL 框架的各項參數。除了驗證 OpenCL 程式框架安裝之成功與否的判斷外,也方便查詢相關的 OpenCL 訊息,供開發 OpenCL 之用。
  安裝 CLInfo 很簡單,只要安裝命令即可,
[root@Core-i7 ~]# dnf install clinfo
若尚未安裝過 ocl-icd 套件,也會一併安裝。

二、查詢 OpenCL 平台、裝置之參數

安裝妥後,就執行看看,
[SiB@Core-i7 ~]# clinfo
Number of platforms                          0
一開始還沒安裝任何 OpenCL 程式框架,當然查詢不到任何 OpenCL 平台。若有安裝過任何 OpenCL 程式框架,結果將如下圖所示。
[SiB@Core-i7 ~]# clinfo
Number of platforms1
 Platform NamePortable Computing Language
Platform VendorThe pocl project
Platform VersionOpenCL 1.2 pocl 0.10
Platform ProfileFULL_PROFILE
Platform Extensionscl_khr_icd
Platform Extensions function suffixPOCL

Platform NamePortable Computing Language
Number of devices1
Device Namepthread-Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz
Device Vendorpocl
Device Vendor ID0x0
Device VersionOpenCL 1.2 pocl
Driver Version0.10
Device OpenCL C VersionOpenCL C 1.2
Device TypeOpenCL 1.2 pocl
 ·  ·  ·  ·  ·  ·
NULL platform behavior
clGetPlatformInfo(NULL,  ...)Portable Computing Language
 ·  ·  ·  ·  ·  ·
ICD loader properties
ICD loader NameOpenCL ICD Loader
ICD loader VendorOCL Icd free software
ICD loader Version2.2.3
ICD loader ProfileOpenCL 1.2

後記:


  • 2017-1-14:由於新測 AMD A10-7890K APU,加入 OpenCL 測試列表。


已測試版本:

  • Fedora: 23, 22, 21
  • Intel CPU, GPU
  • AMD CPU

參考資料:

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)