pytorch 1.0.1在ubuntu 18.04(Lenveo Thinkpad T440)编译(CUDA-9.1.85)





目前由于 CUDA-9.1.85 已经不支持 Femi 架构了。

因此如下参数:,

会导致全部的 .cu 文件会全部编译失败,我们只能是从 CUDA-8.x 上进行编译。

老老实实装一个 ubuntu 16.04 编译吧,实体机或者 nvidia-docker ,都可以试试。

目前 ubuntu 18.04 上使用 sudo  apt-get install nvidia-cuda-toolkit 安装的是 9.1.85 版本的 nvidia cuda , 尽管版本比较老,但是好在稳定性好,适用范围广。

当我们的项目需要使用指定版本的 pytorch 的时候,目前官方提供的编译好的 nvidia cuda 安装包并不兼容全部的硬件。这个在实际环境中是比较麻烦的。

目前来说,比较稳妥的办法是直接从源代码编译。

如果显卡是几年前的显卡(GeForce GTX 760  Compute Capability = 3.0 / GeForce GT 720M  Lenveo Thinkpad T440 Compute Capability = 2.1),运行的时候会提示:

执行的时候会报错

硬件的计算能力查询 Recommended GPU for Developers

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

安装官方软件源的 cuda-9.1.85, 高版本的显卡驱动不支持:

如果安装时报错,如下:

并且 sudo apt --fix-broken install无效,则执行强制包清除命令:

Lenveo T440 Compute Capability = 2.1 不支持 cuDNN ,因此没必要安装 , 其实连最新版本的 CUDA-10.1 也不能安装,原因在于 NVIDIA GT 720M 的驱动只支持到 390 版本,而 CUDA-10.1418 以上的版本才能支持,具体表现在于系统启动后没有加载显卡驱动,dmesg 可以查看到如下信息:

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

切换 GCC 版本到 GCC-5

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

依旧是推荐在 Anaconda 上建立独立的编译环境,然后执行编译:

如果出现如下错误:

则需要调整代码 aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu, 在其中的 cusparseGetErrorString 函数上增加 #if (!((CUSPARSE_VER_MAJOR >= 10) && (CUSPARSE_VER_MINOR >= 2)))

如下:

这样解决跟 CUDA-10.1自带函数的冲突问题。

具体参考: https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu

源码安装的Pytorch,卸载需要执行:

Pytorch 代码下载非常缓慢,可以本站下载同步好的pytorch源代码

参考链接


发布者

默默

默默码农

发表评论

电子邮件地址不会被公开。 必填项已用*标注