cuda, torch, tensorflow, your own GPU, and DCNv2 supports decent pytorch such as torch

1 minute read

Published:

今天在搞category-level pose estimation,fork这个project时候遇到了 RuntimeError: CUDA error: no kernel image is available for execution on the device (rastervision)

首先:

1. Cuda 和 自身的电脑的GPU 的算力要对应。

Screenshot from 2024-11-21 00-38-24

link:https://developer.nvidia.com/cuda-gpus

这里需要用,算力对应的cuda版本

Screenshot from 2024-11-21 00-39-41

link: https://docs.nvidia.com/datacenter/tesla/drivers/index.html#cuda-arch-matrix

比如说我的显卡是 RTX 3060,就需要选择 11.0 以上的 cuda进行支持,同时这里的最大支持如果没错的话,需要用nvidia-smi进行查看,右上角的cuda version 就是最大的cuda 的support 的版本。

(base) tianyi@tianyi-Redmi-G-2022:~$ nvidia-smi
Thu Nov 21 00:41:21 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01             Driver Version: 535.183.01   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3060 ...    Off | 00000000:01:00.0  On |                  N/A |
| N/A   38C    P5              20W /  80W |   2201MiB /  6144MiB |      2%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      1389      G   /usr/lib/xorg/Xorg                          107MiB |
|    0   N/A  N/A      1773      G   /usr/lib/xorg/Xorg                         1051MiB |
|    0   N/A  N/A      1920      G   /usr/bin/gnome-shell                        201MiB |
|    0   N/A  N/A     34438      G   ...23,262144 --variations-seed-version      563MiB |
|    0   N/A  N/A     39888      G   ...erProcess --variations-seed-version      234MiB |
|    0   N/A  N/A     64865      G   wemeetapp                                     5MiB |
|    0   N/A  N/A     66325      G   /usr/lib/firefox/firefox                      9MiB |
+---------------------------------------------------------------------------------------+

这里还有一个cudnn,但是这个一般没什么问题,跳过了

2. 然后知道可以安装的cuda 区间,我们还需要知道 torch 和 cuda 的对应关系,这里的版本也需要对应起来。

我也不知道这个每个cuda对应torch 版本是怎么来的,简直是 是山代码,但是如果你有要求的torch版本,一定要按照这个来。。。 link是: https://pytorch.org/get-started/previous-versions/

Screenshot from 2024-11-21 00-48-28

3.然后在找DCN 的torch和cuda和numpy的支持的版本是什么,搞笑的是,他们也是拼凑起来的版本,一个一个测试能不能work,https://github.com/lucasjinreal/DCNv2_latest

因为我看到这里面写的是,能稳定运行torch 1.11所以我就顺着这个和之前的corresponding 的版本来联系起来,找到一个能连起来互相兼容的cuda torch。。。。。。。 最后经验是多卸载cuda,就能跑了 是山代码