Linux下为Intel核显安装OpenCL

实验环境

  • CPU:N5105
  • 运行内存:32G
  • 系统:almalinux 8 (类似CentOS系统)

安装过程

检查i915驱动

输入命令dmesg | grep i915查看驱动的加载信息。

我这里没接显示器,输出正确的驱动加载信息如下图所示,驱动正常加载。

该驱动为Intel核心显卡的驱动,如没有加载,请升级系统内核,建议5.10以上。我这里用的内核版本为6.6.39。

可以通过ELRepo仓库来升级内核:

bash 复制代码
sudo yum update -y
sudo yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
# 注意要重启才生效
sudo reboot

通过yum安装OpenCL

尝试sudo yum install ocl-icd ocl-icd-devel intel-opencl -y命令来安装OpenCL,在我这里提示未找到软件包。大家不要慌,可以通过以下命令添加软件源并安装:

bash 复制代码
sudo yum config-manager --add-repo https://repositories.intel.com/graphics/rhel/8.6/intel-graphics.repo
sudo yum install ocl-icd ocl-icd-devel intel-opencl -y

其中https://repositories.intel.com/graphics/rhel/8.6/intel-graphics.repo中的8.6代表了系统的版本,可以替换成自己的(比如说我的系统是AlmaLinux8.4就替换为8.4)。当然我这里推荐大家用最新的8.6。

除了用yum,也可以手动编译安装,这里没有试过,就给个官方下载链接给大家:https://www.intel.com/content/www/us/en/developer/archive/tools/tools-opencl-applications.html。

验证OpenCL

通过clinfo命令来检测OpenCL是否安装好。

我这里显示有3个设备,这样就代表装好了,可以正常使用了:

如果 Number of platforms 显示的数目为 0 ,就代表驱动没有装好,检查前面步骤是否有问题。

升级至OpenCL3.0

在我这官方源提供的ocl-icd并不是最新版的,只支持OpenCL2.2。

这里我们先通过命令yum remove -y ocl-icd卸载了,然后进行手动安装:

我们手动编译最新版的OpenCL-ICD-Loader,先克隆:

bash 复制代码
git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader
git clone https://github.com/KhronosGroup/OpenCL-Headers

然后先编译OpenCL Headers并安装:

bash 复制代码
# 编译
cmake -D CMAKE_INSTALL_PREFIX=./OpenCL-Headers/install -S ./OpenCL-Headers -B ./OpenCL-Headers/build 
cmake --build ./OpenCL-Headers/build --target install
# 安装到 /usr 目录
cp -r OpenCL-Headers/install/* /usr/

继续编译OpenCL ICD Loader并安装:

bash 复制代码
cmake -D CMAKE_PREFIX_PATH=/absolute/path/to/OpenCL-Headers/install -D CMAKE_INSTALL_PREFIX=./OpenCL-ICD-Loader/install -S ./OpenCL-ICD-Loader -B ./OpenCL-ICD-Loader/build 
cmake --build ./OpenCL-ICD-Loader/build --target install
# 安装到 /usr 目录
cp -r OpenCL-ICD-Loader/install/* /usr/

注意以上CMAKE_PREFIX_PATH要修改路径为OpenCL-Headers文件夹所在的路径,即修改/absolute/path/to/

此时已经支持OpenCL3.0了:

相关推荐
琥珀色糖1 分钟前
Linux makefile
linux·运维·服务器·makefile·make
2401_894915537 分钟前
Geo 优化源码部署避坑指南:解决访问异常、定位失效、收录卡顿问题
java·服务器·后端·缓存·开源
whyutianict_vv8 分钟前
HCIE-Storage存储3.0排错题实战:归因框架与排查命令
linux·服务器·网络
Elastic 中国社区官方博客12 分钟前
用两行 JSON 替换你的 ILM 策略:数据流生命周期新增冻结层支持
大数据·运维·elasticsearch·搜索引擎·架构·全文检索
小趴菜一只21 分钟前
linux权限维持
linux·运维·服务器
小张同学a.23 分钟前
ELK企业级日志分析平台3——ES数据备份 & 集群监控 & ELFK+Kafka 架构部署
linux·运维·elk·elasticsearch·架构·kafka·filebeat
JenKinJia28 分钟前
Pycharm中增加远程服务器解释器无法连接的问题
服务器·pycharm·github
神龙斗士24030 分钟前
Socket编程:客户端与服务器通信全解析(网络编程)
运维·服务器·网络·socket
小则又沐风a33 分钟前
负载均衡式在线OJ---------第二幕
linux·c++·后端
中才实用40 分钟前
Jenkins自动化部署
运维·自动化·jenkins