VOICEVOX / voicevox_core

無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXのコア
https://voicevox.hiroshiba.jp/
MIT License
872 stars 116 forks source link

`acceleration_mode=Auto`時にEPに問題があるならCPU版にフォールバックする #783

Closed qryxip closed 3 months ago

qryxip commented 7 months ago

内容

ONNX Runtimeのセッション開始時にExecution Provider (EP)に問題がある(例: 正しいバージョンのCUDAが入ってないのにCUDA版を使おうとする)場合、現在の挙動ではそのままエラーになります。acceleration_mode=Gpu時ではこれは望ましい挙動です。

ここでacceleration_mode=Auto時に限っては、EPに問題があった場合にエラーではなくCPUExecutionProviderにフォールバックするようにすることを提案します。

https://github.com/VOICEVOX/voicevox_core/pull/725#issuecomment-2081560936

Pros 良くなる点

Cons 悪くなる点

実現方法

725 の実装をベースに、acceleration_mode=Autoのときに限りort::SessionBuilder::with_execution_providerでEPを登録する。ortはCPUにフォールバックした旨をwarningレベルのログで教えてくれる。

https://github.com/pykeio/ort/blob/v2.0.0-rc.2/src/execution_providers/mod.rs#L229-L231

VOICEVOXのバージョン

N/A

OSの種類/ディストリ/バージョン

その他

Hiroshiba commented 7 months ago

良いと思います!!

ortはCPUにフォールバックした旨をwarningレベルのログで教えてくれる。

まさにこれ(フォールバック時はログを出す)を提案しようと思ってました・・・!