检测你的 CUDA、cuDNN、Pytorch 是否可用
我相信大家在安装 Pytorch 的时候,都会遇到各种各样的问题,比如 CUDA 版本不对、cuDNN 版本不对、Pytorch 版本不对等等!
那么,今天默子就来教大家如何检测你的 CUDA、cuDNN、Pytorch 是否可用。
废话不多说,我们直接开始。
检测代码:
复制下列代码到 IDE 中运行
1 | import torch |
如果可以正常使用,大概率是这样的
CUDA版本: 12.1 |
如果没有配置好的话,可能只输出前三行,后面的就不会有了。
代码逐行剖析:
1. torch.version.cuda
会输出当前 CUDA 的版本,一般来说,会有 12.1 和
12.4 等等
(更老的版本可能会出现兼容性问题,建议大家去更新一下,直接到
Nvidia
官网就可以)
2. torch.__version__
会输出当前 Pytorch 的版本,
对于 2.5.1+cu121
来说
2.5.1
表示当前 Pytorch 的大版本,目前主流的版本大约在1.13.0
-2.5.0
,当大家开始复现代码时,就会发现自己要在电脑上同时装好多个 Pytorch 版本。所以用
Conda
去管理虚拟环境是很有必要的一件事哦~,大家对Conda虚拟环境管理
感兴趣的话,不妨点个赞,默子看看下期要不要出。cu121
表示当前 Pytorch 是 GPU 的,CUDA 版本是 12.1,如果是cp311
表示当前 Pytorch 是 CPU 版本,Python 版本是 3.11.X有的同学会看到
dev
开头的一串序号,dev20250114
表示是开发构建版(Pytorch.Nightly),具体构建日期为 2025 年 1 月 14 日,没有的话则是稳定版(Pytorch.Stable)。
3.
torch.cuda.is_available()
返回 GPU 是否可用,可用为 True
,不可用为
False
4.
torch.cuda.device_count()
返回显卡数量,大家的电脑一般都是 1
啦,哈哈哈(友情提示:如果电脑是多 GPU 的,上述代码只能列出第一个 GPU 设备的部分信息,并不能列出全部 GPU 的信息。如果想获取全部信息,可以先获取 GPU 列表,然后循环输出每个 GPU)
5.
torch.cuda.is_bf16_supported()
显卡是否支持 BF16 计算,支持为 True
,不支持为
False
> BF16,有时也被称为 BFloat16 或 Brain
Float16,是一种针对人工智能与深度学习应用程序进行优化的新数字格式。
它在谷歌、 英特尔 、 Arm
和许多其他公司的人工智能加速器得到了广泛的应用。使用 BF16 主要是因为,神经网络对指数的大小比尾数敏感得多,所以不必使用传统尾数精度更高的 FP64 或者是 FP32。
默子的 960M 是肯定不支持 BF16 的,目前支持 BF16 的显卡有很多,比较大众化的应该就是 NVIDIA
老黄家 NVIDIA 创始人兼首席执行官的
RTX3060 和 RTX3070 了。至于专业的深度学习卡,绝大部分都是支持的。
6.
torch.cuda.get_device_capability()
获取 GPU 的算力 (CUDA Capability Major/Minor version number) ,对于 N 卡来说,查看全部型号显卡的算力请访问 https://developer.nvidia.com/cuda-gpus#compute (其余显卡请读者自行搜索吧) > 在官方给出的文档中,如果进行神经网络的训练,建议 GPU 此数值在 5.0 以上(默子的卡刚刚及格,呜呜呜)
7.
torch.cuda.get_device_properties(0).total_memory
该条命令可以获取到当前 GPU 的总显存大小。详细信息可参考 Pytorch 官方文档 https://pytorch.org/docs/stable/generated/torch.cuda.get_device_properties.html
8. TensorCore
能力
传统的 N 卡 GPU 都会有 CUDA
核心,用来处理大量的浮点运算。而
Tensor
核心能加速矩阵计算,维持低损失加速推理效率。这个会直接体现在显卡的算力等级上,大于 7
的显卡才会有搭载
TensorCore
。
具体是如何加速的,以及具体会加速多少,这个涉及到 CUDA 和 Tensor 核心的底层原理与深度学习相关知识。默子就不在这里展开阐述了,感兴趣的同学可以找一些文章、视频去看看。但就一句话,在深度学习方面,
TensorCore
吊打CUDACore
。