升级和切换CUDA版本

 在我的环境里这么操作是没问题的,如果大家遇到不一样的问题,就再多搜搜细心分析,肯定能解决的~

我的环境:

        系统:Ubuntu 22.04

        Python:3.8(conda)

1 为什么遇到这个问题

        我在安装和使用3D Gaussian Splatting项目时,其中两个子模块:submodules/diff-gaussian-rasterization 和 submodules/simple-knn,安装时报错:

类似这些:

/usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’:

435 | function(_Functor&& __f) | ^ /usr/include/c++/11/bits/std_function.h:435:145: note: ‘_ArgTypes’ /usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘...’: 530 | operator=(_Functor&& __f) | ^ /usr/include/c++/11/bits/std_function.h:530:146: note: ‘_ArgTypes’

        查了半天才发现是因为 CUDA版本不对,我目前是11.5,要求的是11.8。于是我得升级CUDA版本,所以就记录下过程

2、CUDA版本到底是哪个

        这里先记录下初学时可能会搞迷糊的问题,就是跑深度学习这些的时候,CUDA版本到底看的是哪个,我开始就搞迷糊了。

        有两个版本号:

        1)nvidia-smi 命令出来的,比如当前我的版本显示的是 12.0

        2)nvcc -V 命令出来的,比如当前我显示11.5

         这俩版本详细情况可以搜一下就有很多,这里简单理解呢就是:

        第1个版本是显卡驱动的版本,这个版本显示了这个显卡最高支持的CUDA版本。

        第2个版本是toolkit的版本,这才是编程要看的那个版本,一般是小于等于第1个显示的版本。

        所以一般情况说的都是第2个版本号。

3、升级CUDA版本

        我当前 Nvcc -V 显示版本是11.5, 而现在要升级到11.8.

        所以要安装11.8版本,就去官网 CUDA Toolkit 11.8 Downloads | NVIDIA Developer

        然后选电脑对应的环境,注意最后选install type要选 runfile(local),就是本地安装,为啥呢,因为我先试了其他两个装的时候会报错......

        然后就装好了,默认安装路径在这里:

                /usr/local/cuda-11.8

        并且这个路径下还自动有个 cuda的软连接指向这个目录。

4、切换CUDA版本

        此时11.5和11.8都安装了,但是nvcc -V 显示使用的还是11.5版本,现在需要切换到11.8.

        先查看老版本文件在哪,which nvcc 发现是在 /usr/bin下。

        然后 cat nvcc,显示:

        #!/bin/sh

        exec /usr/lib/nvidia-cuda-toolkit/bin/nvcc "$@"

        说明nvcc它也是链接到了另一个地方。

        所以修改这个文件,把路径指到新版本的目录,就可以了。

        当前新版本的nvcc文件就是/usr/local/cuda-11.8/bin/nvcc

        就把上面的文件改为

         #!/bin/sh

        exec /usr/lib/nvidia-cuda-toolkit/bin/nvcc "$@"

        此时nvcc -V,就能看到新版本的输出版本号了

你可能感兴趣的:(一些方法记录,python,深度学习)