最近在一個裝載 AMD 的 APU 處理器的電腦中,試著測試 OpenCL 程式框架。其中的 CPU 部份,依前文的步驟可以順利安裝 OpenCL 程式框架。不過,APU 中的 GPU 部份卻無法成功安裝,主要原因是 AMD 提供的驅動程式,不能成功安裝在最近幾版的 Fedora 中。
找了一些資料,發現透過社群提供的 Mesa 函式庫,可以提供 OpenCL 程式框架。以下就是整個安裝、測試的整理。
一、安裝 OpenCL 程式框架
Mesa 函式庫是一個支援 3D 繪圖的函式庫,在安裝 Fedora 時通常會自動安裝這個函式庫,以提供顯示卡的 3D 繪圖功能。而基於 Mesa 的 OpenCL 執行時函式庫 mesa-libOpenCL,則是在 Mesa 函式庫上,再提供 OpenCL 程式框架,供執行 OpenCL 程式執行時縺結使用。由於 mesa-libOpenCL 已收錄在 Fedora 的套件資料庫中,用 DNF 就可以直接安裝。在「終端機」中先切換為 root 再下安裝命令,
[root@A10 ~]# dnf install mesa-libOpenCL也會同時安裝 clang-libs libclc opencl-filesystem 這幾個套件。
二、查詢 OpenCL 程式框架
安裝後,就用 CLInfo 查詢安裝結果,
由上例結果中可以看到,AMD 的 A10 中有 8 個 GPU 以 866Mz 運行。
[SiB@A10-R7 ~]# clinfo Number of platforms 1 Platform Name Clover Platform Vendor Mesa Platform Version OpenCL 1.1 Mesa 13.0.3 Platform Profile FULL_PROFILE Platform Extensions cl_khr_icd Platform Extensions function suffix MESA Platform Name Clover Number of devices 1 Device Name AMD KAVERI (DRM 2.46.0 / 4.8.16-300.fc25.x86_64, LLVM 3.8.0) Device Vendor AMD Device Vendor ID 0x1002 Device Version OpenCL 1.1 Mesa 13.0.3 Driver Version 13.0.3 Device OpenCL C Version OpenCL C 1.1 Device Type GPU Platform Profile FULL_PROFILE Max compute units 8 Max clock frequency 866Mz · · · · · · Address bits 64, Little-Endian · · · · · · Device Extensions cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_fp64 · · · · · · NULL platform behavior clGetPlatformInfo(NULL, CL_P ...) Clover · · · · · · ICD loader properties ICD loader Name OpenCL ICD Loader ICD loader Vendor OCL Icd free software ICD loader Version 2.2.10 ICD loader Profile OpenCL 2.1
後記:
- 其它 OpenCL 程式框架的安裝,請參考〝OpenCL 程式框架與 CLInfo〞。
- 目前尚未在 AMD 的顯示卡測試過,若有讀者測過請留言,將不勝感激。
已測試版本:
- Fedora: 25, 24
- AMD A10-7890K APU
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)