apex 安装 避坑指南

参考链接:Linux非root用户如何优雅地安装apex加速包-----使用conda命令和cudatoolkit-dev包_linux安装apex_liyiersan123的博客-CSDN博客


 

apex是NVIDIA开源的用于在PyTorch框架下实现混合精度训练的模块,能够方便地进行FP16训练。

github库链接:https://github.com/NVIDIA/apex/#linux

安装步骤:

1. 首先确保运行环境中torch版本和cuda版本对应

        使用nvcc -V命令

        使用conda list命令

         如果不一致,可以重新安装对应版本的pytorch,安装网址如下:

                https://pytorch.org/get-started/previous-versions/

注:有的博客提示还需要检查gcc版本:当前环境中gcc的版本大于等于5.2(可使用gcc -v命令查看)

2. 下载apex库

        git clone https://github.com/NVIDIA/apex.git (报错的话可以多运行几次)

        cd apex

        git checkout 22.04-dev (这个命令不是必须的)

3. 安装

        纯python版本安装:(可用)

                python setup.py install --cpp_ext --cuda_ext

        python和C++版本安装:(我这边测试没成功)

                pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

可能遇到的报错:

1. ImportError: cannot import name ‘container_abcs‘ from ‘torch._six‘

报错原因:torch1.8版本之后就不使用torch._six了

解决方法:需要去apex库环境下找到 _amp_state.py 文件 

apex库环境路径:/home/{用户名}/anaconda3/envs/{虚拟环境名}/lib/python3.9/site-packages/apex-0.1-py3.9-linux-x86_64.egg/apex/amp

修改里面的:

        if TORCH_MAJOR == 0:
            import collections.abc as container_abcs
        else:
            from torch._six import container_abcs

修改为:

        if TORCH_MAJOR == 1 and TORCH_MINOR < 8:
            from torch._six import container_abcs
        else:
            import collections.abc as container_abcs

2. ModuleNotFoundError: No module named ‘fused_layer_norm_cuda‘

报错原因:安装apex包时使用命令:python setup.py install 通过该命令安装的apex没有cuda

解决方法:

        参考:ModuleNotFoundError: No module named ‘fused_layer_norm_cuda‘_cuda_ext_Yez1011的博客-CSDN博客

3.ModuleNotFoundError: No module named 'amp_C'

解决办法:

如果原来有apex,需要先卸载掉

1、git clone git://github.com/NVIDIA/apex
2、cd apex/apex/transformers/pipline_parallel

将下面的utils.py 文件的第23行的import amp_C 给注释掉(出现import amp_C的地方,都注释掉),保存。

3. pip install -v --no-cache-dir ./
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值