-
Notifications
You must be signed in to change notification settings - Fork 127
Closed as not planned
Description
内容
日本時間で2023年2月9日、ONNX Runtime本体へのRustバインディング追加のPRがマージされました。
まだ深く触れたりした訳ではないのですが、onnxruntime-rsとの最大の違いとしてはonnxruntime.dllの読み込みがdlopen
/LoadLibrary*
ベースになったことが挙げられるのではないかと思います。DLLのパスを指定することもできます。ただし読み込んだDLLはEnvironment
共々OnceCell
で管理されるみたいなので、DLLの読み直しはできなさそうです。
onnxruntime::environment::Environment::with_library_path
あとはORT_RUST_STRATEGY=compile
という指定でonnxruntime.dllのダウンロードするのではなく手元でCMakeする選択肢が入ったことでしょうか (あと何故かこっちがデフォルトになってます)。
Pros 良くなる点
個人的な意見としては、dlopen
/LoadLibrary*
ベースになったことはVOICEVOX COREにとっても大きいと思ってます。
DLLが無いときには人間が読めるメッセージを出せますし、voicevox_core.dllの読み込みからinitialize
までの間にonnxruntime.dllをどっかからダウンロードしてくる機構も考えられます。あとはrpathの指定や$ORT_OUT_DIR
でのハックも不要になりますし、Python APIの取り回しも良くなるでしょう。
Cons 悪くなる点
実現方法
必要であるならVOICEVOX/onnxruntimeとしてフォークし、onnxruntime-rsから切り替える。
VOICEVOXのバージョン
OSの種類/ディストリ/バージョン
- Windows
- macOS
- Linux
その他
y-chan, Hiroshiba and PickledChair