一次安装apex的血泪史

环境:

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版本不一致

一次安装apex的血泪史_第1张图片解决方案:

使用conda安装cuda==11.8版本:

conda install pytorch-cuda=11.8 -c pytorch -c nvidia

 一次安装apex的血泪史_第2张图片

还是报错,错误内容完全一致。

怀疑是环境变量导致的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/nvcc

CUDA_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. 上述问题解决后,又遇到另外一个问题:

一次安装apex的血泪史_第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/nvcc

CUDA_HOME=/***/miniconda3/envs/dl_base

export PATH
export CPATH
export CUDA_HOME

执行source  ~/.bash_profile。

最后执行python setup.py install --cuda_ext --cpp_ext安装成功~

你可能感兴趣的:(pytorch,linux)