StyleGAN-ADA运行错误记录

StyleGAN-ADA运行错误记录

1 排查流程

基于pytorch1.7.1,要求cuda版本高于11.0

目前已满足版本要求,但是编译仍然出错,upfirdn2d编译不通过。

查阅官方github的issue,发现这个问题非常普遍,但出现的原因很多,因此进行进一步定位。尝试包括:

1.1 ninja库检查

现象:重新安装ninja库——无效果

​ 报错“cannot find [‘ninge’, ‘-v’]”

解决:经过多方查找解决方案,修改pytorch编译器中ninja相关内容,将[‘ninge’, ‘-v’]修改为[‘ninge’, ‘–version’]可解决这一问题

但是并未解决代码运行问题。

1.2 更换pytorch版本

在同样问题的issue下,有人指出与pytorch和cuda版本有关,因此尝试了:

pytroch=1.7.1 python=3.6 cuda=10.2 无效

pytroch=1.7.1 python=3.6 cuda=11.0 无效

pytroch=1.7.1 python=3.7 cuda=11.0 无效

pytroch=1.8.1 python=3.6 cuda=11.2 无效

pytroch=1.10.1 python=3.7 cuda=11.3 无效

1.3 清除过程文件并重新编译

还有人指出,过程文件可能出现未知错误,导致修改之后可能没有生效,因此多次重新安装anaconda3,配置环境,并提前进行相关的改进,但是没有解决问题。

1.4 在torch创建的编译文件夹中进一步定位问题

现象1:运行ninja进行编译——报错,缺少很多个c++的.h文件

解决1:网上查找对应的error,根据别人的经验安装了缺失的内容(其他pytorch程序对这些缺失的头文件并没有需求),解决这个bug。
目前出现的缺失包括<cusparse.h><cublas_v2.h>cusolverDn.h
安装方式为:
apt-get install cuda-cusparse-dev-10-1
apt-get install cuda-cublas-dev-10-0
apt-get install cuda-cusolver-dev-10-0
下载完毕,将对应的头文件放进root/usr/loacal/cuda/target/x86_64-linux/include目录下(根据实际的cuda和linux版本不同会有一些差异)。
现象2:在解决了现象1的问题之后,可以编译出一个’xxx_act.o’文件,但是代码运行始终没有通过,而且编译目录执行ninja代码仍然报错,内容为

“FAILED: bias_act.cuda.o
/usr/local/cuda/bin/nvcc -ccbin g+±8 -DTORCH_EXTENSION_NAME=bias_act_plugin -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE="gcc" -DPYBIND11_STDLIB="libstdcpp" -DPYBIND11_BUILD_ABI="cxxabi1011" -isystem /root/anaconda3/envs/torch1.10/lib/python3.7/site-packages/torch/include -isystem /root/anaconda3/envs/torch1.10/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -isystem /root/anaconda3/envs/torch1.10/lib/python3.7/site-packages/torch/include/TH -isystem /root/anaconda3/envs/torch1.10/lib/python3.7/site-packages/torch/include/THC -isystem /usr/local/cuda/include -isystem /root/anaconda3/envs/torch1.10/include/python3.7m -D_GLIBCXX_USE_CXX11_ABI=0 -D__CUDA_NO_HALF_OPERATORS -D__CUDA_NO_HALF_CONVERSIONS_ -D__CUDA_NO_BFLOAT16_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_75,code=compute_75 -gencode=arch=compute_75,code=sm_75 --compiler-options ‘-fPIC’ --use_fast_math -std=c++14 -c /root/john/1_6_2_stylegan2-ada_cifar/torch_utils/ops/bias_act.cu -o bias_act.cuda.o
g+±8: No such file or directory(重点)
nvcc fatal : Failed to preprocess host compiler properties.
ninja: build stopped: subcommand failed.

分析原因,实际上文件“bias_act.cu”存在,但是“nvcc fatal”的问题没有暂时没有找到合理的回答,此处出现的原因需要进一步分析和定位。在后续的定位中发现,这一步实际上并不重要,它会报错主要是因为g+±8没有安装

解决2:最终问题定位在g+±8以及cuda中,需要有两步解决方案:

1) 下载cuda中缺失的.h文件,并进行封装,安装g+±8:
sudo apt-get install g++-8
g++无法工作,必须要用g+±8

2) 在/root/.cache文件夹中torch相关的扩展中提前使用"ninja"指令对两个子文件夹内的内容进行编译

3) 运行程序。

一定不能删除ninja编译后的缓存,否则还会报错!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值