龙空技术网

低算力旧显卡的新版框架续篇——pytorch从源码安装(一)

心平气和的修行 53

前言:

当前小伙伴们对“源代码安装”都比较关切,看官们都想要学习一些“源代码安装”的相关资讯。那么小编在网摘上搜集了一些有关“源代码安装””的相关资讯,希望各位老铁们能喜欢,姐妹们一起来了解一下吧!

关于pytorch这类大型框架的源码编译安装,从来都不是一件轻松的事情。

根据官方的文档(),从源代码安装需要Python 3.7或更高版本和一个C++14编译器,同时建议安装anaconda环境。N卡GPU版本需要cuda 10.2+cudnn7.6.5以及兼容cuda的编译器。大量的编译选项可以在setup.py(兼作选项说明)中设置,也可以直接设置环境变量。另外就是各种依赖。

采用Docker镜像作为构建环境看起来就是一个合理的选择,无论怎么折腾各种设置也不用担心破坏了正常工作环境。

寻找合适的镜像首先就是看看Hub上的pytorch官方镜像,地址:。源码编译要选标签有devel的,支持cuda 10.2+cudnn7.6.5的最新pytorch版本是1.9(pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel)。tensorflow也有自己的官方镜像,用于源码构建的镜像地址:,飞桨的镜像地址:,一并放在这里作为参考。

另一个选择是nvidia官方容器的pytorch镜像,地址:。镜像按例如23.06(年份.月份)的形式,具体支持的版本情况在。当然除了pytorch,其它主流框架也都有。根据cuda=10.2的要求,镜像版本是20.03,对应pytorch版本是1.5,tensorflow是2.1,飞桨最低版本2.3.2,对应镜像22.12,cuda版本是11.8。框架的版本都不太新。顺便提一下,飞桨在低算力显卡上除了某些函数直接报错算力不足以外,有些简单的张量运算虽然不报错,却可能出现错误结果,整体看对于旧卡宽容度更低一些。

通过框架源码提供的dockerfile自己构建镜像也可以。拉一个基础的镜像,按官方指南一步步安装依赖、工具以及源码同样也是可行的,麻烦一些,但是更灵活一些。毕竟官方镜像在配置镜像的时候不可能穷尽所有的组合,自定义自然更加容易满足特定的需求,当然构建过程中可能碰到的问题也会更多更复杂。现在的需求就是独显非常老旧,框架要求尽可能新,这种方式也就成了显而易见的选择。

nvidia也提供指定cuda版本的官方镜像,Hub上已经没有需要的10.2版本的了,好在NGC上还有,nvcr.io/nvidia/cuda:10.2-cudnn7-devel应该符合要求。docker pull下来,还要安装一下nvidia-container-runtime,这个取代了原来的nvidia-docker,都是用来辅助实现将nvidia的GPU驱动暴露给docker容器中的应用程序的,官方网址:。有了这个运行时的支持,在运行容器时,添加--gpus参数,并指定容器可以使用的GPU设备,比如:docker run --gpus all xxx/xxx:xxx,就是表示容器可以使用宿主机的所有GPU资源,当然现在也就这一个640m LE,而且还很老旧,管它呢,all就all了。

nvidia-container-runtime安装

接下来,启动容器,并执行nvidia-smi,docker run -it --gpus all nvcr.io/nvidia/cuda:10.2-cudnn7-devel nvidia-smi,得到和宿主环境一样的结果,第一阶段OK!

标签: #源代码安装