国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

記一次“nvidia-smi”在容器中映射GPU資源時(shí)的排錯(cuò)

這篇具有很好參考價(jià)值的文章主要介紹了記一次“nvidia-smi”在容器中映射GPU資源時(shí)的排錯(cuò)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.背景

在云渲染容器組pod中,有xx,xx,xx,unity四個(gè)container容器組成,然后因?yàn)閡nity容器鏡像的構(gòu)成是基于vlukan(cudagl相關(guān))和cuda-base打包的,這里的cuda是nvidia的一個(gè)驅(qū)動(dòng)版本,類似顯卡驅(qū)動(dòng)。現(xiàn)象是啟動(dòng)unity容器后無法運(yùn)行nvidia-smi和vlukaninfo
初步排查:
因?yàn)槿萜骰\(yùn)行需要依賴宿主機(jī)的GPU機(jī)器資源,需要宿主機(jī)有nvidia驅(qū)動(dòng)且容器能正常映射到宿主機(jī)資源。
最后定位到容器中nvidia-smi未輸出任何信息,是由于nvidia-container-toolkit組件未將GPU設(shè)備掛載到容器中,組件中的nvidia-container-runtime無法被containerd管理和使用。

2.部署

2.1.宿主機(jī)上部署nvidia驅(qū)動(dòng)

  • 選擇操作系統(tǒng)和安裝包,單機(jī)下載驅(qū)動(dòng)版本,訪問官網(wǎng)下載
    記一次“nvidia-smi”在容器中映射GPU資源時(shí)的排錯(cuò)
  • 在宿主機(jī)上執(zhí)行安裝
chmod a+x NVIDIA-Linux-x86_64-460.73.01.run && ./NVIDIA-Linux-x86_64-460.73.01.run --ui=none --no-questions
  • 宿主機(jī)驗(yàn)證是否安裝成功,執(zhí)行nvidia-smi,輸出下圖則安裝成功
    記一次“nvidia-smi”在容器中映射GPU資源時(shí)的排錯(cuò)
  • cuda驅(qū)動(dòng)安裝
    • 備注:此操作已經(jīng)在打包的容器鏡像中安裝,可以跳過執(zhí)行
    • 可以在官網(wǎng)下載驅(qū)動(dòng)版本
      記一次“nvidia-smi”在容器中映射GPU資源時(shí)的排錯(cuò)
  • 添加nvidia-docker倉庫且安裝工具包nvidia-container-toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) 
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo 
yum install -y nvidia-container-toolkit
  • 安裝x,可視化桌面
    • 修改/etc/X11/xorg.conf中的pci序列號(hào)和nvidia-smi中的序列號(hào)一樣
    • 運(yùn)行g(shù)dm服務(wù)

2.2.k8s容器中部署驅(qū)動(dòng)

  • 集群中部署nvidia gpu設(shè)備插件
kubectl apply -f https://github.com/NVIDIA/k8s-device-plugin/blob/main/nvidia-device-plugin.yml
# Copyright (c) 2019, NVIDIA CORPORATION.  All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nvidia-device-plugin-daemonset
  namespace: kube-system
spec:
  selector:
    matchLabels:
      name: nvidia-device-plugin-ds
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: nvidia-device-plugin-ds
    spec:
      tolerations:
      - key: nvidia.com/gpu
        operator: Exists
        effect: NoSchedule
      # Mark this pod as a critical add-on; when enabled, the critical add-on
      # scheduler reserves resources for critical add-on pods so that they can
      # be rescheduled after a failure.
      # See https://kubernetes.io/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/
      priorityClassName: "system-node-critical"
      containers:
      - image: nvcr.io/nvidia/k8s-device-plugin:v0.13.0-rc.1
        name: nvidia-device-plugin-ctr
        env:
          - name: FAIL_ON_INIT_ERROR
            value: "false"
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop: ["ALL"]
        volumeMounts:
        - name: device-plugin
          mountPath: /var/lib/kubelet/device-plugins
      volumes:
      - name: device-plugin
        hostPath:
          path: /var/lib/kubelet/device-plugins
  • 進(jìn)入容器untiy測試執(zhí)行,nvidia-smi
  • 或者直接用containerd命令行ctr測試
ctr images pull docker.io/nvidia/cuda:9.0-base

ctr run --rm -t --gpus 0 docker.io/nvidia/cuda:9.0-base nvidia-smi
nvidia-smi

3.問題排查

3.1.方向一sealos節(jié)點(diǎn)加入集群后,提示錯(cuò)誤

  • 在宿主機(jī)配置完后,sealos加入集群
[root@iZbp1329l07uu7gp2xxijhZ ~]# sealos join --node xx.xx.xx.xx
15:26:33 [EROR] [check.go:91] docker exist error when kubernetes version >= 1.20.
sealos install kubernetes version >= 1.20 use containerd cri instead. 
please uninstall docker on [[10.0.1.88:22]]. For example run on centos7: "yum remove docker-ce containerd-io -y",  
see details:  https://github.com/fanux/sealos/issues/582
  • 因?yàn)橹霸诩尤爰褐?,安裝了docker-ce進(jìn)行測試,和kubernetes下載的運(yùn)行時(shí)containerd相沖突,根據(jù)提示需要將這些刪除
  • 根據(jù)官網(wǎng)安裝步驟
    • 更新yum源并添加源
    • 安裝docker-ce
    • 安裝nvidia container tookit,參見宿主機(jī)安裝過程
    • 安裝nvidia-docker2
    • 驗(yàn)證,容器內(nèi)是否能映射到gpu資源
yum update -y
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce -y
systemctl --now enable docker
yum clean expire-cache
yum install -y nvidia-docker2
systemctl restart docker
docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi

結(jié)論:
這里是在加入集群k8s之前的操作,安裝了docker-ce和container-io,需要先卸載,然后在sealos加入集群后,在去安裝nvidia-docker2

3.2.方向二集群k8s容器守護(hù)進(jìn)程containerd未加載插件和docker啟動(dòng)錯(cuò)誤

  • 在加入容器后,修改daemon.json后docker容器報(bào)錯(cuò)
[root@al-media-other-03 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Tue 2022-11-15 17:29:31 CST; 7s ago
     Docs: https://docs.docker.com
  Process: 17379 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
 Main PID: 17379 (code=exited, status=1/FAILURE)

Nov 15 17:29:28 al-media-other-03 systemd[1]: Failed to start Docker Application Container Engine.
Nov 15 17:29:28 al-media-other-03 systemd[1]: Unit docker.service entered failed state.
Nov 15 17:29:28 al-media-other-03 systemd[1]: docker.service failed.
Nov 15 17:29:31 al-media-other-03 systemd[1]: docker.service holdoff time over, scheduling restart.
Nov 15 17:29:31 al-media-other-03 systemd[1]: Stopped Docker Application Container Engine.
Nov 15 17:29:31 al-media-other-03 systemd[1]: start request repeated too quickly for docker.service
Nov 15 17:29:31 al-media-other-03 systemd[1]: Failed to start Docker Application Container Engine.
Nov 15 17:29:31 al-media-other-03 systemd[1]: Unit docker.service entered failed state.
Nov 15 17:29:31 al-media-other-03 systemd[1]: docker.service failed.
  • 參考官網(wǎng),修改daemon.json,然后重新啟動(dòng)docker
{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}
  • 在節(jié)點(diǎn)加入集群后的,containerd的配置文件不能加載nvidia-container-runtime
  • 參考如上官網(wǎng)地址,先執(zhí)行containerd config default >
    /etc/containerd/config.toml初始化containerd配置項(xiàng),然后修改添加/etc/containerd/config.toml如下,runc修改成nvidia,同時(shí)添加plugin加載信息,然后在重啟containerd
version = 2
[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
    [plugins."io.containerd.grpc.v1.cri".containerd]
      default_runtime_name = "nvidia"

      [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
        [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia]
          privileged_without_host_devices = false
          runtime_engine = ""
          runtime_root = ""
          runtime_type = "io.containerd.runc.v2"
          [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options]
            BinaryName = "/usr/bin/nvidia-container-runtime"

結(jié)論:
需要修改docker和containerd的配置文件,讓nvidia-container-runtime可以運(yùn)行時(shí)加載

3.3.方向三nvidia-plugin容器log日志報(bào)錯(cuò)

  • 前面容器部署驅(qū)動(dòng)yaml的時(shí)候,查看pod日志有報(bào)錯(cuò)
[root@al-master-01 ~]# kubectl logs nvidia-device-plugin-daemonset-4qdqw -n kube-system
2022/11/15 03:43:58 Loading NVML
2022/11/15 03:43:58 Failed to initialize NVML: could not load NVML library.
2022/11/15 03:43:58 If this is a GPU node, did you set the docker default runtime to `nvidia`?
2022/11/15 03:43:58 You can check the prerequisites at: https://github.com/NVIDIA/k8s-device-plugin#prerequisites
2022/11/15 03:43:58 You can learn how to set the runtime at: https://github.com/NVIDIA/k8s-device-plugin#quick-start
2022/11/15 03:43:58 If this is not a GPU node, you should set up a toleration or nodeSelector to only deploy this plugin on GPU nodes
  • 這里根據(jù)官網(wǎng)搜索是因?yàn)槲醇虞dnvidia-container-runtime,暫未解決
  • 在deployment.yaml中設(shè)置了pod選擇nodeSelector獨(dú)占式使用GPU節(jié)點(diǎn),已經(jīng)可以在容器內(nèi)運(yùn)行nvidia-smi和vlukaninfo
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cuda-vector-add
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cuda-vector-add
  template:
    metadata:
      labels:
        app: cuda-vector-add
    spec:
      nodeSelector:
        node-scope: gpu-node
      imagePullSecrets:
        - name: xxx
      containers:
      	- name: cuda-vector-add
      		image: "k8s.gcr.io/cuda-vector-add:v0.1"
        	imagePullPolicy: IfNotPresent

關(guān)注微信公眾號(hào)
搜索:布魯斯手記文章來源地址http://www.zghlxwxcb.cn/news/detail-435214.html

到了這里,關(guān)于記一次“nvidia-smi”在容器中映射GPU資源時(shí)的排錯(cuò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【已解決】nvidia-smi報(bào)錯(cuò):NVIDIA-SMI has failed because it couldn’t communicate with the ... 阿里云GPU服務(wù)器

    如題,起因是在阿里云GPU服務(wù)器上,使用原先正常運(yùn)行的鏡像生成了容器,但容器的顯卡驅(qū)動(dòng)出問題了,使用nvidia-smi命令會(huì)報(bào)錯(cuò) NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. 嘗試使用官網(wǎng).run文件重新安裝顯卡驅(qū)動(dòng)會(huì)報(bào)錯(cuò)ERROR: Unable to load the kernel module ‘nvidia

    2024年02月11日
    瀏覽(24)
  • nvidia/cuda doker容器使用nvidia-smi不能找到命令

    參考資料 NVIDIA官方安裝文檔 CSDN博客 運(yùn)行環(huán)境 wsl子系統(tǒng)Ubuntu 20.04 docker19.03以上 問題:使用docker pull nvidia/cuda:11.4.2-cudnn8-runtime-rockylinux8 在容器中使用nVidia-smi 出現(xiàn)命令無法找到的問題 百度好久,看了幾篇文章,最后發(fā)現(xiàn)運(yùn)行cuda的容器不支持調(diào)用主機(jī)的顯卡,需要下載nvidia-

    2023年04月08日
    瀏覽(21)
  • NVIDIA-SMI報(bào)錯(cuò):Unable to determine the device handle for GPU 0000:XX:00.0: Unknown Error

    NVIDIA-SMI報(bào)錯(cuò):Unable to determine the device handle for GPU 0000:XX:00.0: Unknown Error

    1、首先使用nvidia-smi監(jiān)管顯卡信息: ?具體關(guān)于nvidia-smi的介紹和使用請(qǐng)參照: nvidia-smi 命令詳解_蒙娜麗莎的Java的博客-CSDN博客 nvidia-smi - NVIDIA System Management Interface programnvidia smi(也稱為NVSMI)為來自 Fermi 和更高體系結(jié)構(gòu)系列的 nvidia Tesla、Quadro、GRID 和 GeForce 設(shè)備提供監(jiān)控和管

    2024年02月01日
    瀏覽(20)
  • 在docker里使用gpu的解決方案(鏡像內(nèi)安裝驅(qū)動(dòng)使用nvidia-smi后顯示Failed to initialize NVML: Driver/library version mismatch)

    要么在docker環(huán)境內(nèi)安裝nvidia-driver 但容易和外面的版本不一致導(dǎo)致各種報(bào)錯(cuò)version mismatch之類的 不如使用nvidia-docker,這是一個(gè)nVidia官方為了方便在docker鏡像容器內(nèi)使用gpu做的包: 1. 保證docker環(huán)境內(nèi)沒有nvidia驅(qū)動(dòng)程序,防止后續(xù)配置出現(xiàn)驅(qū)動(dòng)版本不一致的情況 ? ? ? ? 找到你要

    2024年01月21日
    瀏覽(23)
  • Linux | nvidia-smi 命令使用記錄

    Linux | nvidia-smi 命令使用記錄

    參考文章鏈接:https://blog.csdn.net/weixin_44966641/article/details/121228579 nvidia smi(也稱為NVSMI)為來自 Fermi 和更高體系結(jié)構(gòu)系列的 nvidia Tesla、Quadro、GRID 和 GeForce 設(shè)備提供監(jiān)控和管理功能。GeForce Titan系列設(shè)備支持大多數(shù)功能,為GeForce品牌的其余部分提供的信息非常有限。NVSMI是一種

    2024年02月02日
    瀏覽(18)
  • nvidia-smi報(bào)錯(cuò)(已解決):NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因分析

    nvidia-smi報(bào)錯(cuò)(已解決):NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因分析

    基本是follow下面教程修復(fù)的 nvidia-smi報(bào)錯(cuò):NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解決方案_打拳的土豆的博客-CSDN博客 1 背景分析: 可能是由于斷電重啟造成的 當(dāng)再次跑實(shí)驗(yàn)時(shí),發(fā)現(xiàn)cuda不可用,于是輸入“nvidia-smi”才發(fā)現(xiàn)了一個(gè)錯(cuò)誤,如下:

    2024年02月09日
    瀏覽(48)
  • 矩池云上使用nvidia-smi命令教程

    矩池云上使用nvidia-smi命令教程

    nvidia-smi全稱是NVIDIA System Management Interface ,它是一個(gè)基于NVIDIA Management Library(NVML)構(gòu)建的命令行實(shí)用工具,旨在幫助管理和監(jiān)控NVIDIA GPU設(shè)備。 接下來我介紹一下,用nvidia-smi命令來查詢機(jī)器GPU使用情況的相關(guān)內(nèi)容。? 我以上圖的查詢內(nèi)容為例,已經(jīng)復(fù)制出來了,如下, 我們來

    2024年02月16日
    瀏覽(16)
  • 深度學(xué)習(xí)煩人的基礎(chǔ)知識(shí)(2)---Nvidia-smi功率低,util高---nvidia_smi參數(shù)詳解

    深度學(xué)習(xí)煩人的基礎(chǔ)知識(shí)(2)---Nvidia-smi功率低,util高---nvidia_smi參數(shù)詳解

    如下圖所示,GPU功率很低,Util占用率高。 這個(gè)訓(xùn)練時(shí)不正常的! Pwr是指GPU運(yùn)行時(shí)耗電情況,如圖中GPU滿載是300W,目前是86W與GPU2的空載情況功率相等。說明GPU沒有在真正運(yùn)行。 GPU-Util高說明它的核心被占用了,占用率為100%。 打個(gè)比方,把GPU看做是人。三個(gè)人,一個(gè)在舉重,

    2024年01月16日
    瀏覽(34)
  • nvidia-smi no devices were found

    nvidia-smi no devices were found

    報(bào)錯(cuò):找不到設(shè)備 輸入 發(fā)現(xiàn)顯卡其實(shí)還在 用NVIDIA-Linux-x86_64-xxx.xxx.run重裝了一下顯卡驅(qū)動(dòng),發(fā)現(xiàn)還是不行 最后用了另一種安裝方式 選擇一個(gè) 比如選擇了525,那就是 安裝完了其實(shí)還是找不到設(shè)備,所以需要重啟 然后就好了 參考 https://blog.csdn.net/dujianghai/article/details/125760522

    2024年02月15日
    瀏覽(23)
  • Ubuntu下nvidia-smi失敗,使用dkms解決

    nvidia-smi顯示無法與驅(qū)動(dòng)通訊 一般來說是因?yàn)闄C(jī)器重啟linux內(nèi)核自動(dòng)更新導(dǎo)致,可以嘗試回退內(nèi)核版本,或者使用dkms安裝該內(nèi)核下驅(qū)動(dòng)配套的包,這里主要介紹使用dkms如何處理 查看已安裝的nvidia驅(qū)動(dòng)版本 顯示 說明我電腦上nvidia驅(qū)動(dòng)的版本是nvidia-525.116.04 安裝dkms和相關(guān)包 安

    2024年02月13日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包