openeuler24.03 lts sp1 安装Nvidia驱动及gpu-operator踩坑
openeuler24.03 lts sp1 安装Nvidia驱动踩坑
网上找到的文档步骤(不要操作,仅展示问题所在)
跟随文档安装时
yum install gcc make kernel-devel
yum install vulkan-loader
chmod u+x NVIDIA-Linux-x86_64-550.54.15.run
./NVIDIA-Linux-x86_64-550.54.15.run
结果报错,提示unable to find kernel source tree
问题排查
kernel版本原因,导致安装驱动时报错
使用下面命令查看当前内核版本
uname -r
直接使用yum install gcc make kernel-devel
的话,可能安装的版本不一致
可以使用如下命令查看yum
安装的版本
yum list | grep kernel-devel
解决问题
安装正确版本,即符合系统当前内核版本的kernel-devel
yum install "kernel-devel-uname-r == $(uname -r)" gcc make -y
不要忘记
yum install vulkan-loader -y
安装cuda,并添加path
考虑了一下,觉得cuda也要用,干脆用cuda直接把驱动和toolkit都装了
同意协议
这里安装驱动和toolkit,其他取消勾选
等待安装完成,然后使用nvidia-smi确认安装结果,正常输出结果
nvcc -V命令问题排查
使用nvcc -V时提示未找到命令,还需要添加到path中
首先检查一下/usr/local/中有没有cuda目录
接下来就是添加了,修改文件
vi ~/.bashrc
在文件末尾添加
# cuda
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
应用修改
source ~/.bashrc
此时再使用nvcc -V,可以看到正常输出的结果,驱动和cuda均安装成功
安装gpu-operator
注意,由于我尝试了多次,所以NFD是启用的状态,正常安装时,最后的set nfd.enabled=false
应该删除,可以使用下面命令查看NFD是否启用,结果为true
就是启用的状态
kubectl get nodes -o json | jq '.items[].metadata.labels | keys | any(startswith("feature.node.kubernetes.io"))'
确认无误,我这里使用的运行时为containerd
,保险起见,加上了官方文档的参数
helm install gpu-operator -n gpu-operator --create-namespace \
nvidia/gpu-operator $HELM_OPTIONS \
--version=v24.9.2 \
--set toolkit.env[0].name=CONTAINERD_CONFIG \
--set toolkit.env[0].value=/etc/containerd/config.toml \
--set toolkit.env[1].name=CONTAINERD_SOCKET \
--set toolkit.env[1].value=/run/containerd/containerd.sock \
--set toolkit.env[2].name=CONTAINERD_RUNTIME_CLASS \
--set toolkit.env[2].value=nvidia \
--set toolkit.env[3].name=CONTAINERD_SET_AS_DEFAULT \
--set-string toolkit.env[3].value=true \
--set driver.enabled=false \
--set nfd.enabled=false
等待命令执行完毕,查看pods
是否成功创建
kubectl get pods -n gpu-operator
pods
一般需要3~5分钟,最后完成的状态有running
和completed
,具体耗时和拉取镜像的速度等因素有关
验证gpu-operator是否安装成功
跑一个简单的示例
cat << EOF | kubectl create -f -
apiVersion: v1
kind: Pod
metadata:
name: cuda-vectoradd
spec:
restartPolicy: OnFailure
containers:
- name: cuda-vectoradd
image: "nvidia/samples:vectoradd-cuda11.2.1"
resources:
limits:
nvidia.com/gpu: 1
EOF
检查是否创建成功
kubectl get pods -o wide
这个示例运行完就会退出,查看pod
的日志查看结果是否正常
kubectl logs cuda-vectoradd
可以看到,测试通过!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 开源的 DeepSeek-R1「GitHub 热点速览」
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)