Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
2 of 3 tasks
qryxip opened this issue Apr 29, 2024 · 1 comment · Fixed by #810
Closed
2 of 3 tasks

Comments

@qryxip
Copy link
Member

qryxip commented Apr 29, 2024

内容

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

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

#725 (comment)

Pros 良くなる点

  • AccelerationMode::Autoが"auto"らしくなる

    Autoはデフォルトの値であり、VOICEVOX COREに初めて触れる人が選ぶ(というよりデフォルトのままにする)であろう値です。その役割が何なのかというと「その場で最適なEPを選択する」となると思います。CPUにフォールバックする方がこの役割に合致すると思います。

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の種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

その他

@Hiroshiba
Copy link
Member

良いと思います!!

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants