添加对 Linux 纯 CPU 的支持
修改完后即可支持 Linux 下纯 CPU 的训练和推导。 但是这是一个破坏性更新。 修改完后会导致 MacOS 不能正常使用。
希望大佬们修改修改。
另见 https://github.com/RVC-Boss/GPT-SoVITS/issues/373
其实device可以做一个全局参数,这样就可以切换mps/cuda/cpu了
以后兼容什么musa/rocm乱七八糟的也能用
@RVC-Boss 怎么看
其实device可以做一个全局参数,这样就可以切换mps/cuda/cpu了
以后兼容什么musa/rocm乱七八糟的也能用
@RVC-Boss 怎么看
你要找的是不是 infer_device 在 config.py (
感谢感谢
修改完后即可支持 Linux 下纯 CPU 的训练和推导。 但是这是一个破坏性更新。 修改完后会导致 MacOS 不能正常使用。
希望大佬们修改修改。
另见 #373
我尝试用mac跑了跑训练,后面我修改了一下代码,让他变成了纯CPU训练,即使有N卡,不知道楼主说的mac不能使用是指不用MPS还是会报错?
修改完后即可支持 Linux 下纯 CPU 的训练和推导。 但是这是一个破坏性更新。 修改完后会导致 MacOS 不能正常使用。 希望大佬们修改修改。 另见 #373
我尝试用mac跑了跑训练,后面我修改了一下代码,让他变成了纯CPU训练,即使有N卡,不知道楼主说的mac不能使用是指不用MPS还是会报错?
刚刚拉到最新版本看了一下,可以直接 cherry-pick,请问「修改一下代码变成纯 CPU」是碰到了什么问题吗?
Linux 下无法训练是因为 Windows 和 Mac 会默认使用 gloo 进行训练,但 Linux 默认使用 nccl 训练,因此我将 Linux 下默认训练后端改为 gloo。
同时,默认是判断如果 cuda 无法使用就使用 mps,所以安装了 cpu 版本的 pytorch 后也会使用 mps。
因此我将所有的 "mps" 改成了 "cpu"(只有两个 train.py 需要这么改)。
所以 Mac 不能使用只是我的猜测,或许只是抛弃了使用 mps(
~话说回来,你的说话风格有点像翻译。~
修改完后即可支持 Linux 下纯 CPU 的训练和推导。 但是这是一个破坏性更新。 修改完后会导致 MacOS 不能正常使用。
希望大佬们修改修改。
另见 #373
我尝试用mac跑了跑训练,后面我修改了一下代码,让他变成了纯CPU训练,即使有N卡,不知道楼主说的mac不能使用是指不用MPS还是会报错?
刚刚拉到最新版本看了一下,可以直接 cherry-pick,请问「修改一下代码变成纯 CPU」是碰到了什么问题吗?
Linux 下无法训练是因为 Windows 和 Mac 会默认使用 gloo 进行训练,但 Linux 默认使用 nccl 训练,因此我将 Linux 下默认训练后端改为 gloo。
同时,默认是判断如果 cuda 无法使用就使用 mps,所以安装了 cpu 版本的 pytorch 后也会使用 mps。
因此我将所有的
"mps"改成了"cpu"(只有两个 train.py 需要这么改)。所以 Mac 不能使用只是我的猜测,或许只是抛弃了使用 mps(
~话说回来,你的说话风格有点像翻译。~
因为看到说会报错,我就参照几个issue自己改了点,有mps的情况下也是cpu训练,应该没大问题,后面也帮别人改了个windows 有N卡 情况下cpu训练的版本,我到时候下载不改动的文件看看,给n卡用我直接把cuda那边的if判断改为了if False,然后所有的tensor强制锁精度,没有细改,反正这个代码都是给cpu训练用的,我也没有在意mps了
现在 cpu 训练和推理已经合并进主代码里了,别人的 PR。 但是是以一种我没想到的方式,禁用 mps 性能反而提高了……