openutau 中文文档 下载 App

DirectML / CoreML 设置后必须重启|GPU 加速初始化时机

为什么必须重启

OpenUtau 的 GPU 加速初始化流程:

OpenUtau 启动
  ↓
读取偏好设置 → Machine Learning Runner = DirectML / CoreML
  ↓
初始化 DirectML / CoreML 运行时
  ↓
枚举可用 GPU
  ↓
完成

这个流程只在启动时跑一次。运行中改偏好设置里的 GPU 相关参数:

这些都不会让 OpenUtau 重新初始化 GPU 加速——GPU 仍然是启动时初始化的那个状态,参数修改被忽略。

正确操作顺序

第一次设置 DirectML / CoreML

  1. OpenUtau 正常运行中
  2. Tools → Preferences → Machine Learning
  3. Machine Learning Runner → 选 DirectML(Windows)或 CoreML(macOS)
  4. GPU → 选独显(Windows)
  5. DiffSinger Rendering Speedup → 按需调
  6. 点 OK 关掉 Preferences
  7. 完全关掉 OpenUtau(不是关窗口,是进程退出)
  8. 重新打开 OpenUtau
  9. 偏好设置里的 GPU 名称应该还是你选的那个

运行中想换 GPU 或调高加速倍率

直接:

  1. Tools → Preferences → 改参数
  2. OK
  3. 关掉 OpenUtau
  4. 重开

就这么简单。

怎么确认 GPU 加速真的生效了

方法一:看偏好设置

重启后再打开 Preferences → Machine Learning:

方法二:跑一个 DiffSinger 工程对比

用同一个工程:

  1. 关掉 DirectML / CoreML(Runner 选 CPU)→ 渲染 → 计时
  2. 开启 DirectML / CoreML → 重启 → 渲染 → 计时
  3. 对比两次时间

正常情况下 GPU 加速渲染时间应该是 CPU 版本的 1/3 ~ 1/20(取决于 GPU 型号和 DiffSinger 引擎)。

方法三:任务管理器观察

渲染 DiffSinger 时:

如果渲染时 GPU 列全 0 = 还是 CPU 渲染,GPU 加速没生效。回去检查是不是忘了重启。

为什么 OpenUtau 不支持热切换 GPU

GPU 加速初始化需要加载 GPU 驱动、分配显存、编译算子——这些都是重操作,OpenUtau 的架构设计决定了它只能在启动时做一次。这是性能和代码复杂度的折中——热切换 GPU 的收益小、实现成本极高。

偏好设置里其他需要重启的选项

除了 DirectML / CoreML,以下选项修改后也需要重启 OpenUtau:

选项重启原因
UI LanguageAvalonia UI 的语言本地化在启动时加载
Add / Remove Resamplers 路径Resamplers 目录扫描在启动时做
Additional Singer PathSingers 目录扫描在启动时做
DiffSinger Rendering Speedup推理引擎初始化时读取
Backups folder自动保存路径在启动时初始化
Output Device (Audio)音频设备初始化在启动时做

修改后如果没重启,OpenUtau 可能继续用旧值,或者新值只在部分功能里生效——重启是最稳妥的方式。

常见坑

坑一:改了 DirectML 忘了重启 → 以为加速没生效

这是 OpenUtau 新用户最常踩的坑——改完 GPU 设置没重启,渲染时 GPU 还是 0,以为 DirectML 有 bug。关掉 OpenUtau 重开一下就好。

坑二:改完重采样器路径忘了重启

手动往 Resamplers 文件夹扔了新重采样器,齿轮图标下拉里没看到。重启 OpenUtau 让它重新扫描。

坑三:改 UI 语言没重启

看起来还是英文 / 中文,或者部分翻译没更新。重启后语言切换完全生效。