文章

OpenCL 环境准备及资料

0. GPU驱动相关

1
sudo add-apt-repository ppa:oibaf/graphics-drivers

1. OpenCL 环境准备

1.1 查看 OpenCL 设备

1
2
3
4
# 查看 GPU 设备
lspci | grep -i vga

sudo apt install clinfo

使用 clinfo 命令查看 OpenCL 版本。C++ 程序需要定义OpenCL版本:

1
target_compile_definitions(${target_name} PRIVATE CL_TARGET_OPENCL_VERSION=300)

1.2 安装 OpenCL SDK

1
2
3
4
5
6
7
sudo apt install libstb-dev libsfml-dev libglew-dev libglm-dev libtclap-dev ruby doxygen -y

# 安装支持包:包括ICD Loader,SDK及头文件
sudo apt install ocl-icd-opencl-dev

git clone https://github.com/KhronosGroup/OpenCL-SDK.git --recursive
# 编译 & 安装 OpenCL SDK .....
  • 额外安装:Intel OpenCL Runtime,用于支持在CPU上运行OpenCL程序(模拟GPU ??),需要先安装OpenCL Loader(Installable Client Driver Loader,ICD Loader)。参考 ubuntu安装OpenCL运行及编译环境

1.3 参考

2. 资源

  1. 官方 blog
  2. Exploiting Task Parallelism with OpenCL: A Case Study
  3. OpenCL – GPU 设备信息查询

3. 安装 Intel OpenCL 支持

3.1 安装 Intel OpenCL Runtime for GPU

安装步骤,以及遇到问题的解决办法:

3.2 安装额外支持包

安装如下包 (可能不是必须的):

1
2
sudo apt-get install xserver-xorg-video-intel
sudo apt-get install mesa-utils

3.3 使能 User 用户权限

权限使能,并重启系统。(如果GPU已经使能,不添加权限只能使用sudo查看到GPU设备)

1
2
sudo usermod -a -G render $USER
sudo usermod -a -G video $USER

3.4 验证

1
2
3
4
5
6
clinfo -l

Platform #0: Intel(R) OpenCL
 `-- Device #0: Intel(R) Core(TM) i5-8260U CPU @ 1.60GHz
Platform #1: Intel(R) OpenCL Graphics
 `-- Device #0: Intel(R) UHD Graphics 620

3.5 Intel OpenCL 调试

Intel OpenCL 调试,需要作一些设置。安装驱动以及调试符号等,对GPU硬件有要求(如要求GPU gen 12以上);以及不同GPU硬件,支持的Ubuntu等linux发行版也不同。

4. 升级 OpenCL 驱动,支持 OpenCL 3.0

1
2
3
4
5
6
# add PPA
sudo add-apt-repository ppa:kisak/kisak-mesa

# install MESA packages
sudo apt update
sudo apt full-upgrade

恢复默认MESA:

1
2
sudo apt install ppa-purge
sudo ppa-purge ppa:kisak/kisak-mesa

5. AMD Windows 平台安装

vcpkg安装及OpenCL依赖包:

1
2
# 使用命令行终端,不能使用powershell终端
vcpkg --triplet x64-windows install sfml tclap glm

编译OpenCL

1
2
3
4
git clone --recursive https://github.com/KhronosGroup/OpenCL-SDK.git

# 需要指定 vcpkg.cmake 路径
cmake -D CMAKE_TOOLCHAIN_FILE=D:\dev_libs\vcpkg\scripts\buildsystems\vcpkg.cmake -D VCPKG_TARGET_TRIPLET=x64-windows -D BUILD_TESTING=OFF -D BUILD_DOCS=OFF -D BUILD_EXAMPLES=OFF -D BUILD_TESTS=OFF -D OPENCL_SDK_BUILD_SAMPLES=ON -D OPENCL_SDK_TEST_SAMPLES=OFF -D CMAKE_INSTALL_PREFIX=D:\dev_libs\opencl ..
本文由作者按照 CC BY 4.0 进行授权