6.3多线程最新代码报错Cannot re-initialize CUDA in forked subprocess
问题:
最新代码执行`python preprocess.py -c configs/reflow.yaml`抛出异常
尝试回退到[optimize parallel data loading](https://github.com/yxlllc/DDSP-SVC/commit/92276cdb172155fbbf8985f249b4304f7d2d773a)这个提交可以正常使用。而最新的[add multi-processing](https://github.com/yxlllc/DDSP-SVC/commit/733adb9a4c6298eaca2926b70cf7b2f944041930)会报错。
尝试过参数`-j 1`也是一样的。
报错堆栈如下:
```bash
ning or pending.
[Error] Task for 0206Trial09_Hiro013.wav generated an exception: A process in the process pool was terminated abruptly while the future was running or pending.
[Error] Task for 0206Trial09_Hiro019.wav generated an exception: A process in the process pool was terminated abruptly while the future was running or pending.
[Error] Task for 0206Trial09_Hiro020.wav generated an exception: A process in the process pool was terminated abruptly while the future was running or pending.
100%|████████████████████████████████████████████████████████████████████████████████████████████████████| 1376/1376 [00:00<00:00, 1895.33it/s]
0%| | 0/10 [00:00<?, ?it/s]Exception in initializer:
Traceback (most recent call last):
File "/usr/lib/python3.11/concurrent/futures/process.py", line 235, in _process_worker
initializer(*initargs)
File "/root/DDSP-SVC/preprocess.py", line 92, in _worker_init
_worker_f0_extractor, _worker_volume_extractor, _worker_mel_extractor, _worker_units_encoder = load_extractors(
^^^^^^^^^^^^^^^^
File "/root/DDSP-SVC/preprocess.py", line 49, in load_extractors
f0_extractor = F0_Extractor(
^^^^^^^^^^^^^
File "/root/DDSP-SVC/ddsp/vocoder.py", line 36, in __init__
F0_KERNEL['rmvpe'] = RMVPE('pretrain/rmvpe/model.pt', hop_length=160)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/DDSP-SVC/encoder/rmvpe/inference.py", line 14, in __init__
ckpt = torch.load(model_path)
^^^^^^^^^^^^^^^^^^^^^^
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/serialization.py", line 1521, in load
return _load(
^^^^^^
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/serialization.py", line 2122, in _load
result = unpickler.load()
^^^^^^^^^^^^^^^^
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/_weights_only_unpickler.py", line 535, in load
self.append(self.persistent_load(pid))
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/serialization.py", line 2086, in persistent_load
typed_storage = load_tensor(
^^^^^^^^^^^^
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/serialization.py", line 2052, in load_tensor
wrap_storage = restore_location(storage, location)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/serialization.py", line 698, in default_restore_location
result = fn(storage, location)
^^^^^^^^^^^^^^^^^^^^^
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/serialization.py", line 637, in _deserialize
return obj.to(device=device)
^^^^^^^^^^^^^^^^^^^^^
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/storage.py", line 291, in to
return _to(self, device, non_blocking)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/_utils.py", line 87, in _to
with device_module.device(device):
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/cuda/__init__.py", line 533, in __enter__
self.prev_idx = torch.cuda._exchange_device(self.idx)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/rvc/rvc/lib/python3.11/site-packages/torch/cuda/__init__.py", line 398, in _lazy_init
raise RuntimeError(
RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method
```
另外我在gemini的建议下尝试修改`preprocess.py`代码,似乎能跑,没有抛异常,但是很多这样的日志打印,也不知道有没有影响
`[Error] Task for 0202Trial10_Hiro031.wav generated an exception: A process in the process pool was terminated abruptly while the future was running or pending.`
```python
import multiprocessing
import torch
if __name__ == '__main__':
try:
multiprocessing.set_start_method('spawn', force=True)
except RuntimeError:
pass
```
环境信息:
```
(rvc) root@ollama:~/DDSP-SVC/data/train# pip list | grep torch
torch 2.9.1
torchaudio 2.9.1
torchcrepe 0.0.20
torchfcpe 0.0.4
torchvision 0.24.1
(rvc) root@ollama:~/DDSP-SVC/data/train# nvidia-smi
Sun Jan 25 16:02:34 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.126.09 Driver Version: 580.126.09 CUDA Version: 13.0 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA RTX PRO 6000 Blac... Off | 00000000:81:00.0 Off | Off |
| 35% 31C P0 42W / 600W | 0MiB / 97887MiB | 3% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
(rvc) root@ollama:~/DDSP-SVC/data/train# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
```
由于本人不懂深度学习,就不提交AI的改动了,希望作者有空看看
0 条评论