GPU 節點設定

必須先執行下列步驟以在 Cloud Pak for Data 中的 Red Hat OpenShift 叢集上配置 GPU 節點,然後您才能在 Cloud Pak for Data 上安裝具有 GPU 服務的 Jupyter Notebooks with Python 3.7,並在 Watson Studio 中建立要在其中執行分析工具的 GPU 環境定義。

  1. 若要安裝 NVIDIA 驅動程式,請遵循如何搭配使用 GPU 與 OpenShift 中的 DevicePlugin第 1 部分:NVIDIA 驅動程式安裝。 這些安裝指示可用於 Red Hat OpenShift 4.5 版和 4.6 版。
  2. 新增執行時期 hook 檔案。

    1. 安裝 libnvidia-containernvidia-container-runtime 儲存庫:
       # curl -so /etc/yum.repos.d/nvidia-container-runtime.repo https://nvidia.github.io/nvidia-container-runtime/centos7/nvidia-container-runtime.repo
      
       # yum -y install nvidia-container-runtime-hook
      
    2. 建立 hook 檔案:
       /etc/containers/oci/hooks.d/oci-nvidia-hook.json
      
    3. oci-nvidia-hook.json 檔中新增下列內容:
       {
           "version": "1.0.0",
           "hook": {
           "path": "/usr/bin/nvidia-container-runtime-hook",
           "args": ["nvidia-container-runtime-hook", "prestart"],
           "env": [
               "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
               ]
           },
           "when": {
           "always": true,
           "commands": [".*"]
           },
              
           "stages": ["prestart"]
       }
      
  3. 建立服務帳戶和 Security Context Constraints (SCC)。 Red Hat OpenShift 和 Cloud Pak for Data 的安全設定禁止您在所有名稱空間中隨機建立功能強大的服務帳戶。 若要啟用 NVIDIA GPU 裝置外掛程式,請執行下列動作:

    1. 輸入下列指令:
       oc project kube-system
      
    2. 然後輸入下列指令:
       oc create sa nvidia-deviceplugin
      
    3. OpenShift Performance-Sensitive Application Platform Artifacts 下載 nvidia-device-plugin-scc.yaml 檔。
    4. 將下載檔案中的 users 值更新為 system:serviceaccount:kube-system:nvidia-deviceplugin
    5. 建立 SCC 配置:
       oc create -f nvidia-deviceplugin-scc.yaml
      
    6. 執行下列指令來驗證 SCC 建立作業:
       # oc get scc | grep nvidia
      

      輸出應如下所示:

       nvidia-deviceplugin true [*] RunAsAny RunAsAny RunAsAny RunAsAny 10 false
       [*]
      
  4. 標記您希望將 NVIDIA GPU 裝置外掛程式排定在其中執行的 GPU 節點:
     oc label node openshift.com/gpu-accelerator=true
    
  5. 部署 NVIDIA GPU 裝置外掛程式。 請注意,NVIDIA 裝置外掛程式由供應商支援及維護,Red Hat 既未提供也不支援該外掛程式。

    1. OpenShift Performance-Sensitive Application Platform Artifacts 下載 nvidia-device-plugin-daemonset.yaml
    2. 執行下列指令:
       oc create -f nvidia-device-plugin-daemonset.yaml
      
    3. 驗證外掛程式部署:
       oc get pods | grep -i nvidia-device-plugin
      

      輸出應如下所示:

       NAME READY STATUS RESTARTS AGE
       nvidia-device-plugin-daemonset-s9ngg 1/1 Running 0 1m
      
    4. 若要測試部署,請遵循如何搭配使用 GPU 與 OpenShift 中的 DevicePlugin 中的下載需要 GPU 的 Pod。 這些指示可用於 Red Hat OpenShift 3.11 版和 4.5 版。
  6. 更新 SELinux 權限。 由於 Cloud Pak for Data 不使用特許 Pod,因此您必須更新 NVIDIA 驅動程式檔案中的一些 SELinux 標籤。

    1. 檢查現行 SELinux 標籤:
       ls -Z /dev/nvidia*
      

      這個指令的輸出在每個 GPU 節點上都不相同。 範例如下所示:

       # ls -Z /dev/nvidia*
       crw-rw-rw-. root root system_u:object_r:xserver_misc_device_t:s0
       /dev/nvidia0
       crw-rw-rw-. root root system_u:object_r:xserver_misc_device_t:s0
       /dev/nvidiactl
       crw-rw-rw-. root root system_u:object_r:xserver_misc_device_t:s0
       /dev/nvidia-modeset
       crw-rw-rw-. root root system_u:object_r:xserver_misc_device_t:s0
       /dev/nvidia-uvm
       crw-rw-rw-. root root system_u:object_r:xserver_misc_device_t:s0
       /dev/nvidia-uvm-tools
      
    2. 如果傳回的輸出中 NVIDIA 檔案的 SELinux 標籤不包含 container_file_t,請執行下列指令來更新標籤:
       semanage fcontext -a -t container_file_t "/dev/nvidia(.*)"
       restorecon -v /dev/nvidia*
      
    3. 然後重新執行:
       ls -Z /dev/nvidia*
      

      現在,輸出應如下所示:

       # ls -Z /dev/nvidia*
       crw-rw-rw-. root root system_u:object_r:container_file_t:s0 /dev/nvidia0
       crw-rw-rw-. root root system_u:object_r:container_file_t:s0 /dev/nvidiactl
       crw-rw-rw-. root root system_u:object_r:container_file_t:s0 /dev/nvidiamodeset
       crw-rw-rw-. root root system_u:object_r:container_file_t:s0 /dev/nvidiauvm
       crw-rw-rw-. root root system_u:object_r:container_file_t:s0 /dev/nvidiauvm-tools
      

下一步