安装PyTorch后,又安装TensorFlow,CUDA相关问题思考

        下面的话是我的观察和思考,请多多批评。
        TensorFlow 要用 CUDA、CUDA toolkit、CUDNN,看好版本的对应关系再安装,磨刀不误砍柴工。
        1)NVIDIA Panel 里显示的NVCUDA.DLL不是安装的CUDA版本,而是目前显卡驱动所能支持的最高 CUDA 版本,
可以理解成是CUDA 的 Driver,现在若是更新驱动它是可能发生变化的,因为驱动升级了,算整体驱动升级,CUDA驱动也会升级
        2)NVIDIA GPU Computing Toolkit  != cudatoolkit,前者是NVIDIA的术语,译为 GPU计算工具(组件),它包括CUDA,
如果只装了CUDA,那么就是只包括CUDA;后者是 Anaconda的术语,是一个用来支持 PyTorch的工具包,是CUDA的子集,
所以不用装CUDA就能使用PyTorch(或者说,PyTorch的使用不需要全部的CUDA的功能)
        3)欲在GPU上使用TensorFlow,CUDA 和 CUDNN(CUDA Deep Neural Network)都是要自己手动装的(除非使用 NVIDIA installer进行过全套安装,但我没试过)
        4)顾名思义,CUDNN是基于CUDA的,所以CUDA是比它底层的东西(虽然也是软的)

        In conclusion, 之所以会报错没有 cudart64_110.dll,是因为本来我也没装 CUDA,而是把NVIDIA 显卡驱动里的CUDA Driver,后来又是之前学习PyTorch时安装的cudatoolkit,当成了CUDA。并且就算TensorFlow用不到全部的CUDA功能,也应该对应的是至少 11.2 的CUDA版本,而cudatoolkit是个 10.2 版本(动态链接库是cudart64_102.dll),低得多。
        猜想,如果删掉原来装的 这个cudatoolkit,则使用PyTorch仍然没问题。
        再猜,如果原来装的cudatoolkit版本足够新,那么使用TensorFlow应该也可以通过CUDA的动态链接库检查,但是由于给PyTorch 用的这个cudatoolkit没有CUDNN,所以照样没法通过这下一步的检查。

-----------------

        当然,上述猜想可能性也不大。更有可能的是,TensoFlow只检查系统的CUDA是否存在,PyTorch只检查Anaconda环境(or Python环境)的CUDA是否存在,我不想再尝试了,循规蹈矩改装哪里装哪里就好。

--------------------

        一句话,NVIDIA Panel的CUDA,只是CUDA Driver允许安装的CUDA的最高版本号,Driver向下兼容,所以安装低版本CUDA没问题。
        再来一句,C盘里的是大环境,Anaconda里是小环境,都是环境,都可以放 CUDA,只不过正常情况下是放在大环境(C盘,也就是自己独立安装),而Anaconda里的运行环境也行。
        最后一句,独立安装费时费力,使用conda和pip安装在Anaconda某环境里简单(但没试过用conda或者pip安装cuda和cudnn)

        仅是个人安装使用经历所得感悟,请多指教,谢谢。

你可能感兴趣的:(cuda,tensorflow,pytorch,深度学习,gpu)