前言
如果大家的电脑显卡是RTX50系列的话,如果按照正常的部署AI,可能尚未进行调试,就会发现环境的依赖报错一大堆,又或者如下图的UserWarning,之所以会是这样,是因为5060的显卡太新了,以至于PyTorch与CUDA出现兼容问题。
图这里sm_xx代表什么?
流多处理器架构版本:
sm_50 - Maxwell架构(GTX 900系列)
sm_60 - Pascal架构(GTX 1000系列)
sm_70 - Volta架构(Tesla V100)
sm_75 - Turing架构(RTX 2000系列)
sm_80 -Ampere架构(RTX 3000系列/A100)
sm_86 - Ampere架构(笔记本RTX 3000)
sm_89 - AdaLovelace架构(RTX 4000系列)
sm_90 - Hopper架构(H100)
sm_120 - Blackwell架构(RTX5000系列)
CUDA安装
先说一下什么是CUDA。
CUDA(Compute Unified Device Architecture,统一计算设备架构)是NVIDIA公司推出的并行计算平台和编程模型。它允许开发者使用NVIDIA GPU进行通用计算,而不仅仅是图形渲染。
一句话就是充分调用GPU。
众所周知,电脑里的CPU少而强大,擅长逻辑控制,用于处理复杂但少量任务。
而GPU相对于CPU,则是显得多且简单,并行运行下可以处理简答但大量的任务。
nvidia-smi以上指令查看显卡支持的CUDA最高版本,虽然NVIDIA官网上的版本写文时迭代到了13.1,但是我们用12.8就完全可以(RTX50系列12.8就可以了,如果是5070可以用12.9或者13.0)。
nvcc --version已经安装的话可以查查版本。
CUDA下载点击这里下载。
https://developer.nvidia.com/cuda-toolkit-archive
选择12.8.1版本。
下载12.8.1,安装。
一直next就行。
PyTorch安装
https://pytorch.org/get-started/locally/这个网站,是PyTorch本地安装页面。
如果进行后续的微调,追求稳定体验,用Stable即可。
但是如果要进行微调的话,建议选择Nightly版本,虽然作为一天一更新的开发版,不是很稳定。但是当前只有Nightly支持RTX50系列的Blackwell架构。
tips:可能存在与其他库甚至是系统的兼容问题,如果有,评论区或者笔者后续遇见,笔者会尽量解决。
先说稳定版:
https://download.pytorch.org/whl/cu128下面给出的地址打开后,找到torch和torchvision。
CU128指对应CUDA12.8版本,CP310指对应python3.10版本。
接着在终端pip3 install 'Path'即可。
然后是开发版。后者的时间要后于前者。
以下代码检查是否成功:
# check_cuda.pyimporttorchimportplatformprint("="*60)print("系统信息:")print(f"操作系统:{platform.system()}{platform.version()}")print(f"Python版本:{platform.python_version()}")print("="*60)print("\nCUDA状态检查:")print(f"PyTorch版本:{torch.__version__}")print(f"CUDA可用:{torch.cuda.is_available()}")iftorch.cuda.is_available():print(f"\nGPU信息:")print(f"设备数量:{torch.cuda.device_count()}")foriinrange(torch.cuda.device_count()):print(f"\nGPU{i}:")prop=torch.cuda.get_device_properties(i)print(f" 名称:{prop.name}")print(f" 架构: sm_{prop.major}{prop.minor}")print(f" 显存:{prop.total_memory/1024**3:.2f}GB")print(f" 多处理器数量:{prop.multi_processor_count}")print(f"\nCUDA版本:{torch.version.cuda}")print(f"cuDNN版本:{torch.backends.cudnn.version()}")else:print("\nCUDA不可用,原因可能是:")print("1. 没有NVIDIA显卡")print("2. 没有安装CUDA驱动")print("3. PyTorch版本不支持你的显卡")# 测试GPU计算print("\n"+"="*60)print("GPU计算测试:")iftorch.cuda.is_available():try:# 测试基本计算a=torch.randn(1000,1000,device='cuda')b=torch.randn(1000,1000,device='cuda')c=torch.matmul(a,b)print("✓ 基本矩阵乘法测试通过")# 测试半精度计算iftorch.cuda.get_device_properties(0).major>=5:# Volta架构以上a_half=torch.randn(1000,1000,device='cuda',dtype=torch.float16)b_half=torch.randn(1000,1000,device='cuda',dtype=torch.float16)c_half=torch.matmul(a_half,b_half)print("✓ 半精度计算测试通过")# 测试内存分配large_tensor=torch.randn(1000,1000,100,device='cuda')# 约400MBdellarge_tensor torch.cuda.empty_cache()print("✓ 大内存分配测试通过")exceptExceptionase:print(f"✗ GPU测试失败:{e}")else:print("跳过GPU测试(CUDA不可用)")