CUDA版本选择/安装(不同的深度学习项目需要不同CUDA)

  • 源起
  • 尝试的方法
  • cuda的安装

源起

  1. 9月-11月测试深度学习的项目,由于个人的方向的论文主要集中于2017,2019年左右,这个阶段很多代码都是tensorflow1与tensorflow2兼有、python2与python3兼有,cuda主要用的是cuda8,cuda10
  2. 我的机器显卡是3060的(R9000P);然后租的机器是3090的,借的机器是A100的,显卡太新,跑不了我研究方向的很多项目(很长一段时间我都在抑郁,我的显卡不赖呀,竟然跑不起来代码,都想换课题了)

尝试的方法

  1. 在3060、3090的机器上安装cuda8 (不要这个干!!!瞎浪费时间,但是学会了超快安装cuda的方式,以至于我现在拿到机器本能的作出以下的反映);

    • 看以下驱动是否正常(我的机器显卡都是nvidia的):nvidia-smi
    • 如果不正常:装驱动
    • 正常,在看此时cuda的版本: nvcc -V
    • 如果cuda的版本符合项目需求,皆大欢喜;
    • 如果cuda的版本不符合项目需求,查自己的显卡支持的cuda版本有哪些(非常重要,我的3060, 3090都不支持cuda8, 我装cuda8白忙)(可看官网:https://developer.nvidia.com/cuda-gpus https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#title-resolved-issues;可可以直接https://cn.bing.com/搜索显卡支持的CUDA版本、CUDA计算能力,Tensorflow_gpu对应的CUDA版本等)
    • 找一个能支持项目cuda版本的机器
    • 再次nvidia-smi 看驱动,是否装驱动
    • nvcc -V 看cuda版本
    • 如果cuda的版本符合项目需求,皆大欢喜;
    • 如果cuda的版本不符合项目需求:
    • 卸载现有的cuda
    • 装cuda, 参考——方法:https://blog.csdn.net/sinat_36721621/article/details/115326307 ; 选择版本:https://developer.nvidia.com/cuda-toolkit-archive
    • 增加环境变量,nvcc -V 看cuda是否成功安装,可看https://blog.csdn.net/sinat_36721621/article/details/115326307 后面一部分
    • 开始conda搭自己项目的环境
  2. tensorflow1的项目使用tensorflow2环境跑(可以,但是需要改,会报以下几种错误,一般import tensorflow.compat.v1 as tf代替 import tensorflow as tf 可解决);

    • tf.placeholder() is not compatible with eager execution. (解决办法:在程序的开始加:tf.compat.v1.disable_eager_execution()
    • module ‘tensorflow’ has no attribute ‘…’ (解决办法:import tensorflow.compat.v1 as tf代替 import tensorflow as tf )
    • TypeError: batch_to_space_v2() got an unexpected keyword argument ‘block_size’ (解决办法:import tensorflow.compat.v1 as tf代替 import tensorflow as tf )
    • Not creating XLA devices, tf_xla_enable_xla_devices not set (可暂时性的忽视)
  3. 换项目,读代码,读项目中的issues (非常有用,对现在环境搭不起来有启发性作用,还能避免踩别人踩过的坑。我迷茫了,不知道干什么了,我要提醒自己干这个)

  4. 开始认真看报错:

    • libcudart.so.8.0: cannot open shared object file: No such file or directory (说明我的cuda版本不合适,项目要cuda8, 我的却是cuda11.7; 或在tensorflow的版本不合适)
    • errors_impl.NotFoundError: libcudart.so.8.0 (同上)
  5. 机器的显卡太新, 跑不了cuda

    • 在咸鱼上搞台老点的机器 (放弃了,没服务器方便,服务器可以一键换镜像)
    • 租老的显卡(像1080ti)
  6. 在python3 的conda 环境装 Python2 (emmmm,这个方法其实不管用,因为用的时候还是要不python3,要不python2, 不能像我想的那样——可以python2, python3代码混着写。 感觉自己好傻呀)

cuda的安装

参考:

  1. 安装步骤: https://blog.csdn.net/sinat_36721621/article/details/115326307
  2. 官方不同的版本:https://developer.nvidia.com/cuda-toolkit-archive