雁过留声 发表于 2024-7-26 22:56:51

Cuda与Torch设置(For 集群服务器)超详细步骤

每次设置模子环境,无论是在windows,linux,集群服务器上都会在这里卡一段,为了未来设置方便,记录下设置注意事项
设置cuda和torch主要有几个要点,分别是:

[*]显卡与驱动(NIVIADA driver)是否适配。
[*]cuda版本与显卡是否适配。
[*]torch是否为gpu版本
[*]torch版本与cuda,与python是否适配
[*]touchvision版本与torch是否适配。
1. 显卡与驱动(NIVIADA driver)是否适配

On Linux/OS X:
nvidia-smi

效果形式一般为:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.61.05    Driver Version: 520.61.05    CUDA Version: 11.8   |
|-------------------------------+----------------------+----------------------+
| GPUName      Persistence-M| Bus-Id      Disp.A | Volatile Uncorr. ECC |
| FanTempPerfPwr:Usage/Cap|         Memory-Usage | GPU-UtilCompute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0NVIDIA A100-PCI...Off| 00000000:3B:00.0 Off |                  0 |
| N/A   27C    P0    54W / 250W |      0MiB / 40960MiB |      0%   E. Process |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
                                                                              
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|GPU   GI   CI      PID   Type   Process name                  GPU Memory |
|      ID   ID                                                   Usage      |
|=============================================================================|
|No running processes found                                                 |
+-----------------------------------------------------------------------------+
NVIDIA-SMI 520.61.05 Driver Version: 520.61.05 是适配的即可,不然必要重新安装driver。
2. cuda版本与显卡(gpu)是否适配。

查询Compute Capability (CUDA SDK support )
步骤为:


[*]先确定显卡的算力级别:For example, the GeForce 820M compute capability is 2.1.
[*]再确定cuda版本是否支持该算力级别: For example, CUDA 9.2 is not supported for compute compatibility 2.1.
3. cuda是否与driver适配

On Linux/OS X:
nvidia-smi

效果形式一般为:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.61.05    Driver Version: 520.61.05    CUDA Version: 11.8   |
|-------------------------------+----------------------+----------------------+
| GPUName      Persistence-M| Bus-Id      Disp.A | Volatile Uncorr. ECC |
| FanTempPerfPwr:Usage/Cap|         Memory-Usage | GPU-UtilCompute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0NVIDIA A100-PCI...Off| 00000000:3B:00.0 Off |                  0 |
| N/A   27C    P0    54W / 250W |      0MiB / 40960MiB |      0%   E. Process |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
                                                                              
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|GPU   GI   CI      PID   Type   Process name                  GPU Memory |
|      ID   ID                                                   Usage      |
|=============================================================================|
|No running processes found                                                 |
+-----------------------------------------------------------------------------+
注意: 此表中表现的 CUDA 版本并不表示您的体系上现实安装了 CUDA 工具包这仅表明您的图形驱动步伐兼容的最新版本的 CUDA。一般下载这个版本的cuda就对了。
3. pytorch安装

一般安装步骤:
conda install pytorch torchvision torchaudio cudatoolkit=11.8
一般linux/windows这样就没题目了,但是,由于我使用的是集群服务器,环境设置与模子训练(gpu)不在同一个节点,这样会直接安装为cpu版本的pytorch。同时集群里有cuda11.9module,我是不消下载cudatoolkit的。
检查一下:
$ conda list pytorch
pytorch                   2.0.0               py3.9_cpu_0    pytorch
pytorch-mutex             1.0                         cpu    pytorch
cudatoolkit               11.1.1            heb2d755_10    conda-forge
果然是cpu版本呢。于是我起首卸载了原来版本的torch(或者重新创建环境)。然后手动安装下载wheel,在官方网站可下载。
cu开头的就是gpu版本啦
https://i-blog.csdnimg.cn/blog_migrate/8533b6dbc252f43ba628e1469317c6f2.png
同时下载对应版本的torchvision:
https://i-blog.csdnimg.cn/blog_migrate/84849fdff33eb83951800cc88dbeba08.png
这里我一开始下了cu118/torchvision-0.16.1%2Bcu118-cp311-cp311-win_amd64.whl,但是torchvision0.16和torch2.0不兼容,所以还要注意torch和torchvision匹配题目。
然后传到服务器文件夹里,在conda环境pip安装即可。
我在gpu节点测cuda一直false的原因就是torch和torchvision不匹配,torchvision后装把前面装的pytorch覆盖了重装了cuda12.1的版本,导致无法与GPU兼容。
4.测试与运行

这之后应该就可以正常运行了gpu了,测试gpu的pbs文件:
#!/bin/bash#PBS -N yolov5_train#PBS -l nodes=1:ppn=1:gpus=1#PBS -l walltime=1:00:00#PBS -o yolov5_train.out#PBS -e yolov5_train.err#PBS -A your_account#PBS -V#PBS -q gpu# 使用GPU前必须启动export PATH=/usr/local/cuda-11.8/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH# 查看cuda版本nvcc --version# Display GPU informationnvidia-smi

conda init bashsource ~/.bashrcconda activate checkcuda2# Check if CUDA is available using Pythonpython -c "import torch; print(torch.__version__)"python -c "import torch; torch.zeros(1).cuda()"python -c "import torch; print(torch.version.cuda)"python -c "import torch; print(torch.cuda.is_available())"conda deactivate 参考



[*]Why torch.cuda.is_available() returns False even after installing pytorch with cuda?
[*]GPU版本安装Pytorch教程最新方法

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Cuda与Torch设置(For 集群服务器)超详细步骤