將 NVIDIA 的 OpenCL 程式框架安裝過程,記錄、整理如下:
一、下載驅動程式及安裝準備
NVIDIA 的 OpenCL 程式框架是透過繪圖顯示的驅動程式來支援的,由官方的下載點下載適當的驅動程式。以目前最新版為例,也可以用這個命令下載,[SiB@Core-i7 Temp]$ wget http://tw.download.nvidia.com/XFree86/Linux-x86_64/361.42/NVIDIA-Linux-x86_64-361.42.run安裝的過程中需要編譯,因此這些套件要先安裝,
[root@Core-i7 ~]# dnf install kernel-devel gcc dkms有關這些套件的詳細說明,請參考之前的發文〝安裝 Fedora 「編譯『核心模組』」所需套件〞。
二、安裝 OpenCL 驅動程式
有些電腦系統有兩套顯示輸出的控制晶片,尤其是筆記型電腦,為了提供更好的顯示效果,除了系統控制晶片所提供的顯示控制晶片外,也多有安裝額外的『獨立顯示』晶片(依使用需求,切換控制晶片)。因此,這步驟的安裝過程,會因為用途而有所不同。NVIDIA 晶片即為畫面顯示的控制器
如果 Linux 系統的『圖形顯示』是由 NVIDIA 的繪圖晶片提供,則要安裝完整的驅動程式。最好是重新開機,並在 Linux 的『開機版本選單』畫面,選擇最新版本(反白),在以『linux16 . . .』為首的那一列命令的最後加入『nomodeset 3』,linux16 /vmlinuz-4.4.6-300.fc23.x86_64 root=UUID=f942d72b-42ea-429d-84be-c109cd80e80e ro rhgb quiet LANG=zh_TW.UTF-8 nomodeset 3上例中的『nomodeset』是強制 Linux 不載入任何顯示卡的驅動程式,而『3』則強制 Linux 以『文字模式』開機。
在開機後,以『root』登入系統,並在「終端機」中下安裝命令。
[root@Core-i7 ~]# sh /home/SiB/Temp/NVIDIA-Linux-x86_64-361.42.run --disable-nouveau上例中各項參數之說明如下表:
參 數 | 功 能 |
---|---|
--disable-nouveau | 在安裝過程中,會增加『不載入 Linux 系統附的 NVIDIA 驅動程式 nouveau』的設定。 |
--kernel-name=4.4.6-300.fc23.x86_64 | 安裝依特定 Linux 核心編譯的驅動程式,若此版本核時即為目前執行中,此參數可省略。 |
NVIDIA 晶片不用於畫面顯示,只用於『運算加速』
若平常的工作並不需要複雜的顯示輸出,使用系統控制晶片組所提供的顯示功能,多可符合一般的作業所需,也比較省電(註:筆電的電源很珍貴)。常用於『獨立顯示』的 NVIDIA 晶片,既然不用於顯示,將它轉換為『運算加速』功能也不錯。由於 NVIDIA 晶片並不用於顯示用,因此安裝過程比較簡單,不需要重新開機,只要在「終端機」中下安裝命令即可。
[root@Core-i7 ~]# sh /home/SiB/Temp/NVIDIA-Linux-x86_64-361.42.run --disable-nouveau --no-opengl-files --no-x-check --kernel-name=4.4.6-300.fc23.x86_64若只更新版本,可以不需再重覆『設定 nouveau 啟動時不載入』。
[root@Core-i7 ~]# sh /home/SiB/Temp/NVIDIA-Linux-x86_64-361.42.run --no-opengl-files --no-x-check --kernel-name=4.4.6-300.fc23.x86_64上例中各項參數之說明如下表:
參 數 | 功 能 |
---|---|
--disable-nouveau | 在安裝過程中,會增加『不載入 Linux 系統附的 NVIDIA 驅動程式 nouveau』的設定。更新驅動程式時,不需重覆設定。 |
--no-opengl-files | 既然 NVIDIA 晶片不用於顯示輸出,就不用安裝 OpenGL。 |
--no-x-check | 同上,NVIDIA 晶片不用於顯示輸出,也不用檢查 x-Window 是否執行中。 |
--kernel-name=4.4.6-300.fc23.x86_64 | 安裝依特定 Linux 核心編譯的驅動程式,若此版本核心即為目前執行中,此參數可省略。 |
--no-nouveau-check | 不檢查 Linux 系統附的 NVIDIA 驅動程式 nouveau 目前是否執行中;Linux 系統會自動載入可辨認的硬體驅動程式,儘管最後不使用它。安裝 NVIDIA 原廠驅動程式時,若檢查出有 nouveau 正在執行中,將會中斷安裝程序。 |
三、查詢 OpenCL
安裝後,就用 CLInfo 查詢安裝結果,由查詢結果可知,NVIDIA 的 OpenCL 程式框架已經安裝成功了。NVIDIA 的圖形顯示晶片為系統增加了 5 個運算單元,而這些運算單元只能透過 OpenCL 來使用它們。
[SiB@Core-i7 ~]# clinfo Number of platforms 1 Platform Name NVIDIA CUDA Platform Vendor NVIDIA Corporation Platform Version OpenCL 1.2 CUDA 8.0.20 Platform Profile FULL_PROFILE Platform 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_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts Platform Extensions function suffix NV Platform Name NVIDIA CUDA Number of devices 1 Device Name GeForce GTX 950M Device Vendor NVIDIA Corporation Device Vendor ID 0x10de Device Version OpenCL 1.2 CUDA Driver Version 361.42 Device OpenCL C Version OpenCL C 1.2 Device Type GPU Device Profile FULL_PROFILE Device Topology (NV) PCI-E, 01:00.0 Max compute units 5 Max clock frequency 1124MHz · · · · · · Address bits 64, Little-Endian · · · · · · NULL platform behavior clGetPlatformInfo(NULL, ...) No platform · · · · · · clCreateContextFromType( ...) No platform
後記:
- 其它 OpenCL 程式框架的安裝,請參考〝OpenCL 程式框架與 CLInfo〞。
已測試版本:
- Fedora 23 + NVIDIA GeForce GTX 950M (361.42)
- Fedora 23 + NVIDIA GeForce GT 520MX (361.42)
- Fedora 21 + NVIDIA GeForce 7300 GT (304.131) : CLInfo 測試未成功。
- 可能兩張 NVIDIA 顯卡驅動程式衝突所致,一張用 nouveau,一張是 nvidia。
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)