我正在 Azure 中运行全新的 Windows Server 2019 数据科学虚拟机。我使用的是配备 Tesla K80 GPU 的 NC6_Promo 尺寸。部署完成后,我尝试使用以下 python 命令检查 CUDA 是否正常工作:
import torch
torch.cuda.is_available()
Out[3]: False
这会返回一个错误语句,表明 CUDA 不可用。
当使用 nvidia-smi 工具检查时,我得到以下响应:
Microsoft Windows [Version 10.0.17763.2300]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\administrator>nvidia-smi
Wed Dec 22 11:23:36 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 472.50 Driver Version: 472.50 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla K80 TCC | 00000001:00:00.0 Off | 0 |
| N/A 42C P8 28W / 149W | 9MiB / 11448MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
这告诉我 CUDA 版本 11.4 可用。
虚拟机的设备管理器还显示 Tesla K80 GPU 已安装且工作正常:
到目前为止我已采取的步骤:
- 启用 nVidia 虚拟机扩展
- (重新)安装了 Tesla K80 的最新 nVidia 驱动程序
- 将 CUDA 升级至版本 11.5
但是我仍然无法使用 PyTorch 中的 GPU。我还可以采取其他步骤来使其正常工作吗?这确实应该开箱即用。
最佳答案
这是一个版本问题...... 由于 Azure Data Science VM 镜像就是这样,因此您需要自己修复一些问题才能正常工作。 首先通过运行“nvidia-smi”命令检查 CUDA 的真实版本。 我的报告是 11.1 ,所以我需要安装与其匹配的版本。
接下来,我在虚拟机中激活所需的 conda env(我的是“azureml_py38_PT_and_TF”)并执行“conda uninstall pytorch”
然后我访问 pytorch.org 并使用安装工具提出合适的安装命令,我的是: conda 安装 pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch-lts -c conda-forge
这将安装具有正确 cuda 支持的 pytorch LTS。 现在应该可以了。
关于azure - CUDA 在 Azure 数据科学虚拟机上不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70448389/