-
Notifications
You must be signed in to change notification settings - Fork 203
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
ビルド時にコアのダウンローダーを使う? #709
Comments
ちょっとコアのダウンローダーに依存するべきかしないべきか、調査してみました。 仮にコアのダウンローダーを使う場合、エンジンはCUDA11.8を使っているのに対し、ダウンローダーが持ってくるものはCUDA11.6なので、整合性をどうするか気をつける必要がありそうです。 整合性を取るためにはビルド系統(実行バイナリ版とdocker版)を一つにするのが手っ取り早そうですが、この場合実行バイナリ版にはarm64 cpu版ビルドがなく、docker版には存在するのが問題点となりそうです 😇 ビルド系統を一つにする以外にも、docker版と実行バイナリ版で分けて、少なくとも実行バイナリ版だけはダウンロードを使うという手も別にありかもしれません。 まあでも、コアのダウンローダーに依存するのは一長一短(コードが楽になるvs仕様変更に追従する必要がある)で、かつエンジンビルド的にも一長一短(必要なファイルだけダウンロードするので容量が少なくて済むvs整合性乖離の許容が必要)という感じでした! |
そうですね、diplicatedになってそうです🙇 |
現在の VOICEVOX ENGINE は複数バージョンの CORE をサポートする方針です。 @Hiroshiba この基準次第で本 issue の方向性が大きく変わると考えます。 |
複数のcudaバージョンが存在しうるのは完全に認識の外でした…。 ちゃんとよく知らないのですが、そもそも新しいcudaは後方互換性を持っていて過去のonnxruntimeも動いたり…? onnxrunitimeの要件見ると…別にhigherともlowerとも書いてないかもですかね…。どっちなんだろ… もし複数cudaが必要ということになれば、そもそも設計方針を大きく変えないといけない気がしてきました。 |
CUDA toolkit はメジャーバージョン間の後方互換性を保証しないようです。以下公式文章:
よって ORT の要件にある CUDA バージョンについて、少なくともメジャーバージョンは合わせるべきと考えます。
ORT は定期的に CUDA のメジャーバージョンを乗り換えています。
最新の v1.17 で CUDA 11.x と 12.x の同時サポート(移行期間?)が始まったので、近いうちに CUDA 11.x はサポート外になりそうです。 CORE 含めたプロジェクト単位での議論が必要そうです。 |
詳しくありがとうございます!!!!! onnxruntimeとonnxのバージョン対応関係も見てみました。 なので一番最新のコアに合わせる形でonnxruntimeを用意し、それに合うCUDAとかを用意すれば良い・・・? |
本 Issue は直近 180 日間で活動がありません。今後の方針について VOICEVOX チームによる再検討がおこなわれる予定です。 |
内容
コアは実行に必要なものをいろいろ取ってくるダウンローダーバイナリがあります。
https://github.com/VOICEVOX/voicevox_core/blob/00c43153d42032ad3044ebf9e780d6af5c3f2bf0/docs/downloads/download.md
./download
でCUDAやDirectMLやonnxruntime.dllやモデルファイルやvoicevox_core.dllなどが手に入ります。エンジン側のビルドではこのダウンローダーと関係なく、独自にCUDAやonnxruntimeを取得しています。
この方針だと、コア側が想定するCUDAのバージョンとずれたり、コア側とエンジン側で2回実装が必要になっています。
エンジン側もコアのdownloaderを使って統合していきたい気持ちがあります。
まず最初に、問題がなさそうかどうかのチェックが必要かもです。
Pros 良くなる点
コード量が大幅に減る
Cons 悪くなる点
コアのサブ機能と密結合になる
(ダウンローダーがあればコアが実行できるかのe2eテストがまだ無いため少し不安。issueはこちら。)
実現方法
bulid.yml
内でコアのダウンローダーをdownloadし、使用する。その他
問題点などがあるかもしれないので要議論ラベルを付けています。
気になる点があればコメント頂けると・・・!
The text was updated successfully, but these errors were encountered: