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

可以看到,测试通过!

posted on   CosmosQiu  阅读(7)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek-R1本地部署如何选择适合你的版本?看这里
· 开源的 DeepSeek-R1「GitHub 热点速览」
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 揭秘 Sdcb Chats 如何解析 DeepSeek-R1 思维链
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示