Pytorch 使用不同版本的 cuda,跟使用不同版本的cuda进行编译扩展库,其实TensorFlow也是一样

本文介绍了Pytorch如何在不同CUDA版本间切换,以满足运行和扩展编译的需求。CUDA与cudatoolkit的区别在于,cudatoolkit主要包含运行库,而CUDA Toolkit则包括完整的开发工具。Pytorch通过检测CUDA_HOME环境变量、/usr/local/cuda软链接或nvcc命令来确定使用的CUDA版本。指定CUDA版本的方法包括修改/usr/local/cuda软链接(需要root权限)或设置CUDA_HOME环境变量,并确保对应的CUDA可执行目录在PATH中。
摘要由CSDN通过智能技术生成

 在使用 Pytorch 时,由于 Pytorch 和 cuda 版本的更新,可能出现程序运行时需要特定版本的 cuda 进行运行环境支持的情况,如使用特定版本的 cuda 编译 CUDAExtension 引入的拓展模块等。为了满足应用程序和框架本身对不同版本的 cuda 的需求,Pytorch 需要能够在不同版本的 cuda 之间切换使用。这里即记录 Pytorch 在编辑 cpp 和 cuda 拓展时确定所使用 cuda 版本的基本流程以及 Pytorch 使用不同版本的 cuda 运行程序的方法。 

 

cuda 与 cudatoolkit 的区别

  在使用 Anaconda 安装 Pytorch 等深度学习框架时,可以发现 Anaconda 会自动为我们安装 cudatoolkit,如下图所示。

  

  上述安装的 cudatoolkit 与通过 Nvidia 官方提供的 CUDA Toolkit 是不一样的。具体而言,Nvidia 官方提供的 CUDA Toolkit 是一个完整的工具安装包,其中提供了 Nvidia 驱动程序、CUDA 程序相关的开发工具包等的安装选项。通过 Nvidia 官网提供的 CUDA Toolkit 安装的是完整的 CUDA 开发工具,包括 CUDA 程序的编译器、IDE、调试器等应用程序,CUDA 所支持的功能所对应的各式库文件以及它们的头文件等,具体的组成可参考 CUDA Toolkit Major Components.

  实际上,Nvidia 官方提供安装的 CUDA Toolkit 包含了进行 CUDA 相关程序开发的编译、调试等过程相关的所有组件。但对于 Pytorch 之类的深度学习框架而言,其在大多数需要使用 GPU 的情况中只需要使用 CUDA 的动态链接库支持程序的运行( Pytorch 本身与 CUDA 相关的部分是提前编译好的 ),就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。故而,Anaconda 在安装 Pytorch 等会使用到 CUDA 的框架时,会自动为用户安装 cudatoolkit,其主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。在安装了 cudatoolkit 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit .

  通过 Anaconda 安装的应用程序包位于安装目录下的 /pkg 文件夹中,如笔者的目录即为 /home/xxx/anaconda3/pkgs/ ,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值