环境:
CentOS Linux release 7.9.2009 (Core)
GPU CUDA 12.2
Miniconda python3.9
PyTorch=11.8
安装apex参考步骤:
1. git clone https://github.com/NVIDIA/apex.git
2. cd apex
3. python setup.py install --cuda_ext --cpp_ext
如果顺利的话,就so easy~ 然鹅,吐血。。。
下面记录错误:
1. 服务器安装CUDA==12.2和PyTorch=11.8版本不一致
解决方案:
使用conda安装cuda==11.8版本:
conda install pytorch-cuda=11.8 -c pytorch -c nvidia
还是报错,错误内容完全一致。
怀疑是环境变量导致的CUDA路径错误,遂查看~/.bash_profile,发现果然配置了LD_LIBRARY_PATH、CUDA_HOME等环境变量,修改成新配置的路径:
PATH=$PATH:/***/miniconda3/envs/dl_base/bin/nvcc
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/***/miniconda3/envs/dl_base/bin/nvccCUDA_HOME=/***/miniconda3/envs/dl_base
export PATH
export CUDA_HOME
之后执行
export LD_LIBRARY_PATH= # 为了取消之前的变量
source ~/.bash_profile
2. 上述问题解决完之后,又遇到另一个错误如下:
解决方案:升级g++版本
yum install centos-release-scl
yum install devtoolset-9-gcc devtoolset-9-gcc-c++
scl enable devtoolset-9 -- bash
为了保证每次执行都是用9版本g++,修改bash_profile如下:
scl enable devtoolset-9 bash
然后 source ~/.bash_profile
后使用g++ -v确认版本为更新后的版本即正常。
3. 上述问题解决后,又遇到另外一个问题:
解决方案:
在服务器执行查找是否存在该文件,结果如下:
find / -name cuda_runtime.h
修改~/.bash_profile文件如下:
CPATH=/usr/local/cuda-11.2/targets/x86_64-linux/include:$CPATH
PATH=$PATH:/***/miniconda3/envs/dl_base/bin/nvcc
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/***/miniconda3/envs/dl_base/bin/nvccCUDA_HOME=/***/miniconda3/envs/dl_base
export PATH
export CPATH
export CUDA_HOME
执行source ~/.bash_profile。
最后执行python setup.py install --cuda_ext --cpp_ext安装成功~