ModuleNotFoundError: No module named ‘fused_layer_norm_cuda‘

Windows10安装APEX,cuda版本:

最近需要安装apex,这玩意是用来加速的。混合精度训练。反正我的代码用到了这个包。。。但是,我安装的时候,总是报错。下面记录一下我踩得坑以及最终怎么安装成功的。用git命令,你先要安装git,官网下载默认安装就行!或者自己去下zip安装包。

首先是直接安装:

git clone https://github.com/NVIDIA/apex

cd apex

python setup.py install

但是这样子安装出来是没得cuda的,所以,一般情况下都用不了,报错会出现ModuleNotFoundError: No module named 'fused_layer_norm_cuda这个玩意儿。
所以,我找到了官方网站,大部分人都遇到过这个问题,链接为这里然后呢,我发现他们的解决方法对我并不适用

总结他们的方法,就是

git clone https://github.com/NVIDIA/apex.git
cd apex
python setup.py install --cuda_ext --cpp_ext
pip install .

或者是将第三条命令换为
pip install -v --no-cache-dir --global-option=“–cpp_ext” --global-option=“–cuda_ext” ./
我试了都8行!!!!

然后,我开始分析我的报错,首先,查cuda版本和cudnn版本。我是11.3的,那么,意味着我的torch版本的cuda也要11.3。怎么查?cmd终端nvcc -V,就看得到cuda,一般来说cuda和cudnn是配套的。torch的cuda的话,pip list里面看得到。先确保这个匹配之后,进行下一步。ModuleNotFoundError: No module named ‘fused_layer_norm_cuda‘_第1张图片
ModuleNotFoundError: No module named ‘fused_layer_norm_cuda‘_第2张图片

OK,我再次进行安装,发现报错还是一堆花里胡哨的,大概里面说就是没有VS支持的文件,RuntimeError: Error compiling objects for extension,最终是这个,还遇到个什么http connection失败什么的错,差cpp结尾的文件。你仔细读一下报错内容,就看得到。

OK,我回想起来,我安装cuda的时候,cuda提示我说,我电脑没有能支持的VS软件,但是,我电脑是安装了VS2022的,我当时没管,因为反正不影响安装嘛。但是,我在读上述的报错内容的时候,发现,它表示我的VS 版本太高了。它只支持VS 2015-2019,于是,我本着手足无措的思路去卸载了VS 2022安装回VS 2019。他们官网找不到,要搜才搜的出来,传送门,下载安装,选择一个C++ 的桌面开发就行了,因为我们只需要它的C++编译环境支持。

OK。我重装了VS 2019,记得重启一下,然后安装,再次执行
python setup.py install --cpp_ext --cuda_ext命令,还是报错,,,同样的错,ModuleNotFoundError: No module named 'fused_layer_norm_cuda瞬间感觉一夜回到解放前,但是,我终究是没有放弃,我本来以为没救了!

关键来了

但是,我抱着试一试的态度,输入了这一行命令,
git checkout f3a960f80244cf9e80558ab30f7f7e8cbf03c0a0
然后,再次输入python setup.py install --cpp_ext --cuda_ext命令,安装成功!!!!普天同庆!
在这里插入图片描述
别问我为什么,我也不知道这个git checkpoint到底check了个啥,俺也不懂,但是,就因为他,我成功了!!

Reference:
https://blog.csdn.net/qq_41557627/article/details/109447053这个博客!

你可能感兴趣的:(踩过的坑i,python,深度学习)