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了:

相关推荐
珊珊而川20 分钟前
ChatPromptTemplate创建方式比较
服务器·langchain
欧先生^_^2 小时前
Linux内核可配置的参数
linux·服务器·数据库
若风的雨2 小时前
【deekseek】P2P通信路由过程
服务器·网络协议·p2p
海尔辛2 小时前
学习黑客5 分钟读懂Linux Permissions 101
linux·学习·安全
Python私教2 小时前
征服Rust:从零到独立开发的实战进阶
服务器·开发语言·rust
王RuaRua3 小时前
[数据结构]5. 栈-Stack
linux·数据结构·数据库·链表
曼岛_4 小时前
[架构之美]linux常见故障问题解决方案(十九)
linux·运维·架构
tan180°4 小时前
Linux进程信号处理(26)
linux·c++·vscode·后端·信号处理
大神的风范4 小时前
从0开始学linux韦东山教程第三章问题小结(4)
linux·服务器
sz66cm4 小时前
Linux基础 -- SSH 流式烧录与压缩传输笔记
linux·笔记·ssh