1. 解决conda虚拟环境下pip的问题
在服务器上面创建虚拟环境时,pip总是把包安装到总环境里的问题
解决办法:在pip前面加上python -m
python -m pip install tensorflow
python -m pip list
2. 清华源pip
https://pypi.tuna.tsinghua.edu.cn/simple/
3. 利用requirements.txt安装相关依赖
- 生成requirements.txt文件
pip freeze > requirements.txt
- 安装requirements.txt文件依赖
pip install -r requirements.txt
- 利用conda安装requirements.txt文件
conda install --yes --file requirements.txt
但是这里存在一个问题,如果requirements.txt中的包不可用,则会抛出“无包错误”。
使用下面这个命令可以解决这个问题
while read requirement; do conda install --yes $requirement; done < requirements.txt
如果想要在conda命令无效时使用pip命令来代替,那么使用如下命令:
while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt
- 利用conda将依赖导出到.yml文件
conda env export > freeze.yml
- 直接创建conda环境
conda env create -f freeze.yml
4. cuda多版本管理
有时我们会在一台机器上同时看到多个版本的CUDA,比如nvcc -V和nvidia-smi的输出就可能会不同。
可以通过
ls -l /usr/local | grep cuda
来查看机器上有多少个cuda版本,通常不带版本号的cuda会是其他带版本号的cuda-x.x的软链接。
将cuda-9.0切换成cuda-10.0的过程如下:
sudo rm -rf /usr/local/cuda #删除之前生成的软链接
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda #生成新的软链接
参考资料:
[1] Linux下的CUDA多版本管理
[2]Ubuntu多版本CUDA, GCC切换
5.cuda-10.0安装
一个待填坑:CUDA是什么,CUDA和cudnn的关系是什么?
我是利用官网文件安装的
进入官网cuda-10.0下载网址:https://developer.nvidia.com/cuda-10.0-download-archive
按照服务器的具体情况选择:
然后将installer安装下来
按照base installer的 instruction 执行命令
run相应的命令后,会出现一些安装配置信息:
再把补丁也安下来
但是这个补丁好像下载不下来,点download没有什么东西在下。
如果有补丁文件,也只需要sudo sh XXXX.run就可以了。
6. 安装NCCL
一个待填坑:NCCL、cudnn、cuda之间的关系是什么?
运行代码时,报错信息:
查了一下是缺少NCCL这个依赖。
去NVIDIA官网NCCL的下载地址把cuda10.0对应的NCCL依赖给下下来。
官网地址:https://developer.nvidia.cn/nccl
这里有两个小插曲:第一个是nvidia官网呢分国外和国内,国外的那个因为墙的原因虽然可以访问但是访问速度非常慢,所以要访问中国官网,这样快很多。第二个呢就是安装这个nccl需要登陆nvidia账号并且加入nvidia developer计划,这个也没有什么损失,就加入一下就好了(主要是国外那个官网网速感人,就一直加不进去,换成中国官网就好多了)。
找到对应的版本,下载下来,注意选择和服务器系统相对应的x86架构。我选择的是local installer,把安装包下载下来以后。按照官网安装教程官网安装教程
由于我安的是local installer,所以
但是这个时候报错:
看了一下,应该是官网教程的第一步没有执行的原因:
但是官网教程这里是使用network installer的对应命令,我们在这里就执行一下报错输出信息中的命令就好了就是那个最后的
然后接着按照官网的命令执行就好
那个第4步的命令在nccl下载界面有写对应版本的命令,按照那个执行就可以了:
至此,NCCL安装完成。