全部產品
Search
文件中心

Elastic GPU Service:GPU雲端服務器常見問題

更新時間:Jul 19, 2024

為了有效排查和解決GPU雲端服務器的相關問題,本文為您匯總了使用GPU時遇到的一些常見問題。

類別

相關問題

功能問題

操作問題

為什麼Windows作業系統不支援DirectX等功能?

由於Windows內建的遠端連線(RDP)協議本身並不支援DirectX、OpenGL等相關應用。因此,您需要自行安裝TightVNC服務和用戶端,或其他支援PCOIP、XenDesktop HDX 3D等協議的遠端連線用戶端。

GPU執行個體支援安卓模擬器嗎?

僅GPU計算型ECS Bare Metal Instance執行個體規格類型系列ebmgn7e、ebmgn7i、ebmgn7、ebmgn6ia、ebmgn6e、ebmgn6v、ebmgn6i支援安卓模擬器,其他類型的GPU執行個體不支援安卓模擬器。

我能變更GPU執行個體的配置嗎?

除以下GPU執行個體規格類型系列不支援變更配置外,其他GPU執行個體規格類型系列均支援本規格類型系列內的變更配置操作。

  • 帶本機存放區的GPU執行個體:gn5

  • GPU虛擬化型執行個體:vgn5i

詳細的執行個體規格變更配置支援情況,請參見支援變更配置的執行個體規格

隨用隨付GPU執行個體支援節省停機模式嗎?

帶本機存放區的GPU執行個體規格類型系列不支援隨用隨付執行個體節省停機模式,例如gn5。更多節省停機模式的說明,請參見隨用隨付執行個體節省停機模式

GPU與CPU有什麼區別?

GPU與CPU的對比如下表所示:

對比項

GPU

CPU

算術運算單元(ALU)

擁有大量擅長處理大規模並發計算的算術運算單元(ALU)。

擁有強大的算術運算單元(ALU),但數量較少。

邏輯控制單元

擁有相對簡單的邏輯控制單元。

擁有複雜的邏輯控制單元。

緩衝

擁有很少的緩衝,且緩衝用於服務線程,而不是用於儲存訪問的資料。

擁有大量的緩衝結構,能夠將資料儲存至緩衝,從而提高訪問速度,降低時延。

回應程式式

需要將全部任務整合後,再進行批處理。

即時響應,對單個任務的響應速度較高。

適用情境

適用於計算密集,相似性高,且多線程並行的高輸送量運算情境。

適用於對響應速度有要求,且邏輯複雜的串列運算情境。

普通ECS執行個體規格類型系列是否支援升級或變更為GPU執行個體規格類型系列?

普通ECS執行個體規格類型系列不支援直接升級或變更為GPU執行個體規格類型系列。

詳細的執行個體規格變更配置支援情況,請參見支援變更配置的執行個體規格

為什麼購買GPU執行個體後,執行命令nvidia-smi找不到GPU顯卡?

當您執行命令nvidia-smi無法找到GPU顯卡時,通常是由於您的GPU執行個體未安裝或者未成功安裝NVIDIA驅動。請根據您所購買的GPU執行個體規格選擇對應的操作指引來安裝驅動,具體說明如下:

更多驅動安裝情境及操作指引,請參見Tesla或GRID驅動安裝指引

GPU虛擬化型執行個體需要安裝什麼驅動?

GPU虛擬化執行個體(vgn6i、vgn5i)配備了分區虛擬化後的虛擬GPU,因此僅支援安裝GRID驅動。根據您使用的作業系統,安裝GRID驅動的說明如下:

為什麼建立GPU執行個體時選擇的CUDA版本與安裝完成後查看到的CUDA版本不一致?

您執行命令nvidia-smi查詢到的CUDA版本代表您的GPU執行個體能夠支援的最高CUDA版本,並不代表您建立GPU執行個體時選擇的CUDA版本。

在GPU計算型執行個體上使用OpenGL、Direct3D等工具做圖形計算時,需要安裝什麼驅動?

請根據您使用的GPU執行個體的作業系統安裝對應的驅動,具體說明如下所示:

如何查看GPU監控資料?

您可以通過CloudMonitor控制台DescribeMetricList查看GPU監控資料,更多資訊,請參見GPU監控

如何在GPU執行個體和普通ECS執行個體間傳輸資料?

GPU執行個體除了GPU加速能力外,保留了與普通ECS執行個體一致的使用體驗。同一安全性群組內的GPU執行個體和ECS執行個體之間預設內網互連,無需特別設定。

Windows作業系統的GPU執行個體安裝GRID驅動後,通過控制台VNC遠端連線執行個體出現黑屏怎麼辦?

原因:當Windows作業系統的GPU執行個體安裝了GRID驅動後,VM的顯示輸出被GRID驅動接管,VNC無法再擷取到整合顯卡的畫面,因此,VNC顯示會變成黑屏狀態,屬於正常現象。

解決辦法:通過本地用戶端串連GPU執行個體。具體操作,請參見通過密碼認證登入Windows執行個體

如何查詢GPU顯卡的詳細資料?

不同作業系統的GPU執行個體,查看GPU顯卡資訊的操作有所區別,具體說明如下:

  • 如果您的GPU執行個體安裝了Linux作業系統,您可以執行命令nvidia-smi,查詢GPU顯卡的詳細資料。

  • 如果您的GPU執行個體安裝Windows作業系統,您可以在裝置管理員中查看GPU顯卡的詳細資料。

如果您需要瞭解GPU顯卡的空閑率、使用率、溫度以及功率等資訊,可以前往CloudMonitor控制台查看。具體操作,請參見GPU監控

如何擷取GRID License?

請根據您使用的作業系統查看對應的擷取方式,具體說明如下所示:

如何安裝cGPU服務?

無論您是企業認證使用者還是個人實名認證使用者,推薦您通過ACK的共用GPU組件使用cGPU服務。具體操作,請參見安裝共用GPU調度組件

更換作業系統時,如何取消自動安裝GPU驅動?

在建立GPU執行個體時,如果選擇了安裝GPU驅動選項,則建立執行個體後會自動安裝GPU驅動。如果您需要更換該執行個體的作業系統,並且需要同時取消自動安裝GPU驅動的功能,請參考以下操作步驟:

說明

關於在建立GPU執行個體時自動安裝GPU驅動的更多資訊,請參見建立配備GPU驅動的GPU執行個體(Linux)

  1. 停止GPU執行個體。

    具體操作,請參見停止執行個體

  2. 在執行個體列表中,找到已停止的GPU執行個體,在對應操作列,選擇icon1 > 執行個體設定 > 設定使用者資料

  3. 用戶資料:地區,刪除使用者資料內容,然後單擊確定

  4. 更換GPU執行個體的作業系統。

    更換作業系統的本質是更換系統硬碟,您可以通過更換執行個體的鏡像來更換作業系統。具體操作,請參見更換作業系統(系統硬碟)

使用GPU時出現XID 119/XID 120錯誤導致GPU掉卡怎麼辦?

  • 問題現象

    使用GPU時出現GPU掉卡現象,例如在Linux系統上使用GPU時,出現GPU卡啟動失敗的錯誤提示。執行sh nvidia-bug-report.sh命令後,在產生的日誌中,可以看到XID 119或XID 120錯誤資訊。以XID 119報錯頁面為例,顯示如下:

    報錯資訊.png

    說明

    關於其他XID Error的更多資訊,請參考NVIDIA Common XID Errors

  • 可能原因

    引起上述問題的原因可能是GPU的GSP(GPU System Processor)組件運行狀態異常。目前,NVIDIA並未提供某個驅動版本來徹底解決GPU的掉卡問題,因此建議您在使用GPU卡之前先關閉GSP功能。

    說明

    如果您想瞭解更多關於GSP功能的影響詳情,請參見開啟或關閉GSP功能的影響

  • 解決方案

    1. 登入GPU執行個體。

      具體操作,請參見通過密碼或密鑰認證登入Linux執行個體

    2. 執行以下命令,關閉GPU的GSP組件。

      echo options nvidia NVreg_EnableGpuFirmware=0 > /etc/modprobe.d/nvidia-gsp.conf
    3. 重啟GPU執行個體。

      具體操作,請參見重啟執行個體

    4. 再次登入GPU執行個體。

    5. 執行以下命令,查看EnableGpuFirmware參數值。

      cat /proc/driver/nvidia/params | grep EnableGpuFirmware:
      • 如果返回結果是EnableGpuFirmware:0,則表示GPU的GSP組件關閉,問題已修複。

        重要

        只要EnableGpuFirmware:0,則執行nvidia-smi檢查GPU卡狀態時,其返回結果肯定是正常的。

      • 如果返回結果不是EnableGpuFirmware:0,則表示GSP組件沒有關閉,請繼續執行下一步。

    6. 執行以下命令,確認NVIDIA GPU卡是否正常。

      nvidia-smi

      如果返回結果異常,表示NVIDIA GPU卡仍然存在問題,請聯絡阿里雲營運技術人員進行關機遷移操作。

在Linux系統GPU執行個體中使用PyTorch時,出現報錯“undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.12”怎麼辦?

  • 問題現象

    在Linux系統GPU執行個體中使用PyTorch時,出現如下報錯資訊:

    >>> import torch
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/local/lib/python3.8/dist-packages/torch/__init__.py", line 235, in <module>
        from torch._C import *  # noqa: F403
    ImportError: /usr/local/lib/python3.8/dist-packages/torch/lib/../../nvidia/cusparse/lib/libcusparse.so.12: undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.12
  • 可能原因

    可能是GPU執行個體所安裝的CUDA版本與PyTorch版本不相容導致,兩者匹配詳情請參見CUDA與PyTorch版本匹配關係

    通過pip install torch安裝的PyTorch版本為2.1.2,要求的CUDA版本為12.1。而購買GPU執行個體自動安裝的CUDA版本為12.0,與PyTorch要求的CUDA版本不匹配。

  • 解決方案

    如果購買GPU執行個體時,在鏡像地區的公用鏡像頁簽下選中了安裝GPU驅動選項,則您可以按以下三種方案升級CUDA版本至CUDA 12.1。

    • 方案一:手動安裝CUDA

      手動安裝版本為12.1的CUDA。具體操作,請參見官方教程

    • 方案二:通過自訂指令碼方式安裝CUDA

      1. 釋放現有GPU執行個體。

        具體操作,請參見釋放執行個體

      2. 購買新的GPU執行個體。

        具體操作,請參見建立GPU執行個體。主要配置參數說明如下:

        • 鏡像地區的公用鏡像頁簽下,未選中安裝GPU驅動選項。

        • 進階選項(選填)的自訂資料地區內,輸入自訂指令碼來安裝NVIDIA Tesla 535.129.03驅動和CUDA 12.1.1。指令碼樣本如下:

          自訂指令碼樣本

          #!/bin/sh
          
          #Please input version to install
          DRIVER_VERSION="535.129.03"
          CUDA_VERSION="12.1.1"
          CUDNN_VERSION="8.9.7.29"
          IS_INSTALL_eRDMA="FALSE"
          IS_INSTALL_RDMA="FALSE"
          IS_INSTALL_AIACC_TRAIN="FALSE"
          IS_INSTALL_AIACC_INFERENCE="FALSE"
          IS_INSTALL_RAPIDS="FALSE"
          INSTALL_DIR="/root/auto_install"
          
          #using .run to install driver and cuda
          auto_install_script="auto_install.sh"
          
          script_download_url=$(curl http://100.100.100.200/latest/meta-data/source-address | head -1)"/opsx/ecs/linux/binary/script/${auto_install_script}"
          echo $script_download_url
          
          rm -rf $INSTALL_DIR
          mkdir -p $INSTALL_DIR
          cd $INSTALL_DIR
          wget -t 10 --timeout=10 $script_download_url && bash ${INSTALL_DIR}/${auto_install_script} $DRIVER_VERSION $CUDA_VERSION $CUDNN_VERSION $IS_INSTALL_AIACC_TRAIN $IS_INSTALL_AIACC_INFERENCE $IS_INSTALL_RDMA $IS_INSTALL_eRDMA $IS_INSTALL_RAPIDS
    • 方案三:修改自訂指令碼並更換作業系統

      1. 停止現有GPU執行個體。

        具體操作,請參見停止執行個體

      2. 在執行個體列表中,找到已停止的GPU執行個體,在對應的操作列,選擇執行個體設定 > 設定使用者資料

      3. 修改使用者資料,並單擊確定

        DRIVER_VERIONCUDA_VERSIONCUDNN_VERSION參數修改為如下版本:

        ...
        DRIVER_VERSION="535.129.03"
        CUDA_VERSION="12.1.1"
        CUDNN_VERSION="8.9.7.29"
        ...

        修改資料.jpg

      4. 更換GPU執行個體的作業系統。

        具體操作,請參見更換作業系統(系統硬碟)

        待GPU執行個體啟動成功後,系統會重新安裝新版本的NVIDIA Tesla驅動、CUDA以及cuDNN。

通過nvidia-smi -pm 1命令開啟Persistence Mode屬性,執行個體重啟後失效,同時ECC狀態設定也失敗怎麼辦?

  • 問題現象

    在GPU計算型執行個體中安裝Tesla驅動(Linux)時,該驅動版本為535或更高版本,通過nvidia-smi -pm 1命令方式開啟Persistence Mode屬性,可能會導致以下問題:

    • 開啟Persistence Mode屬性,執行個體重啟後該屬性失效(即Persistence Mode仍預設為Off狀態)。

    • ECC狀態設定失敗。

    • MIG功能設定失敗。

  • 問題原因

    由於Tesla驅動版本過高,即驅動版本為535或更高版本時,通過nvidia-smi -pm 1命令開啟Persistence Mode屬性,執行個體重啟後導致上述問題。

  • 解決方案

    查看dmesg日誌時,如果存在以下提示,建議您通過NVIDIA Persistence Daemon方式開啟Persistence Mode。具體操作,請參見(可選)通過NVIDIA Persistence Daemon方式開啟Persistence-M

    NVRM: Persistence mode is deprecated and will be removed in a future release. Please use nvidia-persistenced instead.

應用程式在低版本CUDA環境中運行時報錯怎麼辦?

  • 問題現象

    對於Linux作業系統虛擬化型GPU執行個體,安裝了GRID驅動和低版本的CUDA(例如版本為11.4)後,運行依賴高版本CUDA的應用程式(本文以依賴CUDA 12.2版本的matrixMul應用程式為例)時報錯,提示資訊如下:

    Dingtalk_20240627162412.jpg

  • 問題原因

    由於CUDA版本受限於GPU的驅動版本,對應關係請參見驅動版本與CUDA版本的對應表,從而導致依賴高版本CUDA(例如CUDA 12.2)的應用程式無法在低版本CUDA(例如CUDA 11.4)環境中運行。本文採用升級CUDA相容工具包的方法來解決低版本CUDA環境能正常運行依賴高版本CUDA的應用程式。

  • 解決方案

    1. 遠端連線Linux作業系統GPU執行個體。

      以Ubuntu 20.04系統為例,具體操作,請參見通過密碼或密鑰認證登入Linux執行個體

    2. 執行以下命令,下載CUDA 12.2相容工具包。

      本樣本以下載Ubuntu 20.04系統X86_64架構的相容工具包為例,您可以根據GPU執行個體的作業系統和架構從CUDA相容包下載地址中選擇匹配的相容工具包下載即可。

      sudo wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/cuda-compat-12-2_535.104.05-1_amd64.deb
    3. 執行以下命令,從指定.deb檔案提取檔案並解壓縮到指定目錄。

      重要

      本樣本以解壓到/home目錄為例,請替換為您的實際目錄路徑。

      sudo dpkg  -x cuda-compat-12-2_535.104.05-1_amd64.deb /home
    4. 依次執行以下命令,配置高版本CUDA的環境變數。

      sudo echo "export LD_LIBRARY_PATH=/home/usr/local/cuda-12.2/compat:$LD_LIBRARY_PATH" >> ~/.bashrc
      source ~/.bashrc
    5. 執行應用程式驗證運行是否正常。

      本樣本以執行matrixMul應用程式為例,顯示如下圖所示,表示應用程式運行成功。

      Dingtalk_20240627165231111.jpg