deepspeed 多机多卡RuntimeError: Ninja is required to load C++ extensions

问题原贴:
https://github.com/microsoft/deepspeed/issues/1687

原因

deepspeed 子进程的找不到ninja这个包,这包是用来加载tocrh的一些c++插件 cpu_adam或者 fuse adam,这个一般会引起下游的错误 No mudule named fuse adam 或者 No mudule named cpu_adam

排查环境原因

排查 ninja是否安装

ninja --version

如果没有安装就

pip intall ninja

如果有安装还是报错就继续往下看

需要给子进程设置ninja的环境变量

找到torch的源码报错位置(报错信息会写),文件名是cpp_extension.py文件,具体改法如下图
在这里插入图片描述

更好的解决方案猜想

1.给系统设置ninja的环境变量(实测不行)
2.deepspeed启动时设置ninja环境变量(待测试)

猜你喜欢

转载自blog.csdn.net/qq_21768483/article/details/129853752