為了有效排查和解決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執行個體規格選擇對應的操作指引來安裝驅動,具體說明如下:
如果您購買的是GPU虛擬化型執行個體,請務必安裝GRID驅動。具體操作,請參見在GPU虛擬化型執行個體中安裝GRID驅動(Linux)或在GPU執行個體(計算型和虛擬化型)中安裝GRID驅動(Windows)。
如果您購買的是GPU計算型執行個體,可以安裝GPU驅動。具體操作,請參見在GPU計算型執行個體中手動安裝Tesla驅動(Linux)或在GPU計算型執行個體中手動安裝Tesla驅動(Windows)。
更多驅動安裝情境及操作指引,請參見Tesla或GRID驅動安裝指引。
GPU虛擬化型執行個體需要安裝什麼驅動?
GPU虛擬化執行個體(vgn6i、vgn5i)配備了分區虛擬化後的虛擬GPU,因此僅支援安裝GRID驅動。根據您使用的作業系統,安裝GRID驅動的說明如下:
如果您需要安裝Windows作業系統的GRID驅動,請前往雲市場購買配備了GRID驅動的鏡像,如Windows Server 2019 中文版預裝GRID驅動鏡像、Windows Server 2016 中文版預裝GRID驅動鏡像,然後再手動安裝即可。
手動安裝驅動的具體操作,請參見在GPU執行個體(計算型和虛擬化型)中安裝GRID驅動(Windows)。
如果您需要安裝Linux作業系統的GRID驅動,具體操作,請參見在GPU虛擬化型執行個體中安裝GRID驅動(Linux)。
為什麼建立GPU執行個體時選擇的CUDA版本與安裝完成後查看到的CUDA版本不一致?
您執行命令nvidia-smi
查詢到的CUDA版本代表您的GPU執行個體能夠支援的最高CUDA版本,並不代表您建立GPU執行個體時選擇的CUDA版本。
在GPU計算型執行個體上使用OpenGL、Direct3D等工具做圖形計算時,需要安裝什麼驅動?
請根據您使用的GPU執行個體的作業系統安裝對應的驅動,具體說明如下所示:
如果您使用的是Linux作業系統,請安裝GPU驅動。具體操作,請參見在GPU計算型執行個體中手動安裝Tesla驅動(Linux)。
如果您使用的是Windows作業系統,請前往雲市場購買配備了GRID驅動的鏡像,如Windows Server 2019 中文版預裝GRID驅動鏡像、Windows Server 2016 中文版預裝GRID驅動鏡像,然後再手動安裝即可。
手動安裝驅動的具體操作,請參見在GPU執行個體(計算型和虛擬化型)中安裝GRID驅動(Windows)。
如何查看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?
請根據您使用的作業系統查看對應的擷取方式,具體說明如下所示:
如果您需要在Windows作業系統的GPU執行個體上安裝GRID驅動,請前往雲市場購買配備了GRID驅動的鏡像,如Windows Server 2019 中文版預裝GRID驅動鏡像、Windows Server 2016 中文版預裝GRID驅動鏡像,然後再手動安裝即可。
手動安裝驅動的具體操作,請參見在GPU執行個體(計算型和虛擬化型)中安裝GRID驅動(Windows)。
如果您需要在Linux作業系統的GPU虛擬化型執行個體上安裝GRID驅動,請先提交工單擷取GRID License,再手動安裝GRID驅動。具體操作,請參見在GPU虛擬化型執行個體中安裝GRID驅動(Linux)。
如何安裝cGPU服務?
無論您是企業認證使用者還是個人實名認證使用者,推薦您通過ACK的共用GPU組件使用cGPU服務。具體操作,請參見安裝共用GPU調度組件。
更換作業系統時,如何取消自動安裝GPU驅動?
在建立GPU執行個體時,如果選擇了安裝GPU驅動選項,則建立執行個體後會自動安裝GPU驅動。如果您需要更換該執行個體的作業系統,並且需要同時取消自動安裝GPU驅動的功能,請參考以下操作步驟:
關於在建立GPU執行個體時自動安裝GPU驅動的更多資訊,請參見建立配備GPU驅動的GPU執行個體(Linux)。
停止GPU執行個體。
具體操作,請參見停止執行個體。
在執行個體列表中,找到已停止的GPU執行個體,在對應操作列,選擇
。在用戶資料:地區,刪除使用者資料內容,然後單擊確定。
更換GPU執行個體的作業系統。
更換作業系統的本質是更換系統硬碟,您可以通過更換執行個體的鏡像來更換作業系統。具體操作,請參見更換作業系統(系統硬碟)。
使用GPU時出現XID 119/XID 120錯誤導致GPU掉卡怎麼辦?
問題現象
使用GPU時出現GPU掉卡現象,例如在Linux系統上使用GPU時,出現GPU卡啟動失敗的錯誤提示。執行
sh nvidia-bug-report.sh
命令後,在產生的日誌中,可以看到XID 119或XID 120錯誤資訊。以XID 119報錯頁面為例,顯示如下:說明關於其他XID Error的更多資訊,請參考NVIDIA Common XID Errors。
可能原因
引起上述問題的原因可能是GPU的GSP(GPU System Processor)組件運行狀態異常。目前,NVIDIA並未提供某個驅動版本來徹底解決GPU的掉卡問題,因此建議您在使用GPU卡之前先關閉GSP功能。
說明如果您想瞭解更多關於GSP功能的影響詳情,請參見開啟或關閉GSP功能的影響。
解決方案
登入GPU執行個體。
具體操作,請參見通過密碼或密鑰認證登入Linux執行個體。
執行以下命令,關閉GPU的GSP組件。
echo options nvidia NVreg_EnableGpuFirmware=0 > /etc/modprobe.d/nvidia-gsp.conf
重啟GPU執行個體。
具體操作,請參見重啟執行個體。
再次登入GPU執行個體。
執行以下命令,查看
EnableGpuFirmware
參數值。cat /proc/driver/nvidia/params | grep EnableGpuFirmware:
如果返回結果是
EnableGpuFirmware:0
,則表示GPU的GSP組件關閉,問題已修複。重要只要
EnableGpuFirmware:0
,則執行nvidia-smi
檢查GPU卡狀態時,其返回結果肯定是正常的。如果返回結果不是
EnableGpuFirmware:0
,則表示GSP組件沒有關閉,請繼續執行下一步。
執行以下命令,確認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。
通過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
應用程式為例)時報錯,提示資訊如下:問題原因
由於CUDA版本受限於GPU的驅動版本,對應關係請參見驅動版本與CUDA版本的對應表,從而導致依賴高版本CUDA(例如CUDA 12.2)的應用程式無法在低版本CUDA(例如CUDA 11.4)環境中運行。本文採用升級CUDA相容工具包的方法來解決低版本CUDA環境能正常運行依賴高版本CUDA的應用程式。
解決方案
遠端連線Linux作業系統GPU執行個體。
以Ubuntu 20.04系統為例,具體操作,請參見通過密碼或密鑰認證登入Linux執行個體。
執行以下命令,下載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
執行以下命令,從指定
.deb
檔案提取檔案並解壓縮到指定目錄。重要本樣本以解壓到
/home
目錄為例,請替換為您的實際目錄路徑。sudo dpkg -x cuda-compat-12-2_535.104.05-1_amd64.deb /home
依次執行以下命令,配置高版本CUDA的環境變數。
sudo echo "export LD_LIBRARY_PATH=/home/usr/local/cuda-12.2/compat:$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc
執行應用程式驗證運行是否正常。
本樣本以執行
matrixMul
應用程式為例,顯示如下圖所示,表示應用程式運行成功。