-
Notifications
You must be signed in to change notification settings - Fork 198
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
スレッド数に見合った性能が発揮されていない #291
Comments
現在私の手元環境で行った結果です。 イメージ: 今回使用した文章
1スレッドの場合は、想像通り2スレッドの場合の二倍ほどの時間がかかっているのですが、 |
暇だったので、テストアプリを作成してテストしました。 エンジンバージョン:0.10.preview.11
|
おーーー!! なるほどです!! デフォルトらしいスレッド数半分(6)の地点に比べると、最良の場合(11)は1.3倍くらい速くなっていますね! 最大スレッド数の12にすると逆に悪くなっているように見えますねー。 ありがとうございます、とても参考になりました!! |
@shigobu さん、ありがとうございます! (Issueの取り扱いですが、どうするのがよろしいでしょうか...? |
テストアプリを改良して、エンジンプロセスの優先度を指定できるようにしました。
最大スレッド(12)を指定したときの逆転現象は解消されましたが、それ以外はほぼ変化無しといったところでしょうか。 |
優先度、なるほどです! こちらのissueですが、しごぶさんのおっしゃる通り、onnxruntimeはよくあるプログラムと一緒で、スレッド数に比例してパフォーマンスが出るわけでは無いのかなと思っています。 問題に感じていたのは「スレッド数が増えると性能が悪くなる可能性」で、それは優先度等の設定によるのかなと感じました。 onnxruntimeにはまだまだいろんなオプションがあります。 |
shigobuさんまたの検証ありがとうございます! もちろん、スレッド数に比例しないことはわかっているのですが、 Core側の実装になるかもしれませんが、accent_phraseから分割しても大丈夫な要素を切り出し、2スレッドごとに分担して起動する...のような芸当は難しいのでしょうか... ふわっとしたイメージ: |
なるほどです、onnxruntimeではなく、コアの性能を上げる感じでしょうか。 ただ、チューニングは至難の技だと思います。 VOICEVOXの技術的には、計算速度を上げるよりも、そもそも計算リソースを必要としない手法を目指すほうが現実的なため、注力するとしたらこちらになりそうです。 もし高速化にチャレンジされたい場合は仰って頂ければ・・・・・・! |
すみません。。。
を指定して起動すると並列で音声生成してくれる機能があるという理解でよろしいのでしょうか? |
4つまでで動かしてあとは機械を横に並べてロードバランスすればいけそうですね。 |
このIssueと このIssueの趣旨と関係ないためここでの議論は避けたいです。別途適切なIssueを見つけるか、なければ作成するとよさそうです。 参考情報ですが、長文の生成中に短文の生成をリクエストしたとき、先に短文の応答を返す、というような並列生成機能は、いまのVOICEVOXにはないと思います。 個人的な意見ですが、記事の著者のように、中継サーバで制御するのが手っ取り早いと思います(コストがかけられるならば、複数のVOICEVOX ENGINEサーバを用意してリクエストを分散するなど)。 将来的に、潤沢なRAM/VRAMを前提として、同じバージョンの音声合成コア(動的ライブラリ=VOICEVOX CORE)を複数利用可能にする機能が実装されれば、それぞれのコアに生成処理を分散する機能が提案されるかもしれません(仕様的に実現可能かはよくわかりません)が、あまり進んでいなさそうです(興味のある開発者がいれば進むかもです)。 |
issueのタイトルの内容に対する疑問は #291 (comment) で解消しているはずなので、closeしたいと思います。 @modeverv たしかにコア数4程度のマシンを大量に並べるのが効率良さそうに思います。 なにかおもしろい計測結果が得られたらissueやTwitterハッシュタグ #VOICEVOX などで知らせていただけると嬉しいです・・・!! |
@aoirint |
engine側で吸収して同時処理性能上がりました!私は満足です!時間がないのできちんとまとめることができません。ごめんなさい! |
@modeverv 動いてそうですね!! 単体起動した場合との速度差が気になりました。 |
内容
#282 にて、CPUスレッド数を指定できるようになりましたが、
CPUスレッド数に対して性能が上がらない、むしろ下がるという現象が発生しました。
環境によってがっつり左右されそうなので、今は実装して対応していくIssueというよりかは、
条件を変えて実験・計測したデータをココにコメントしていき、実装されている方の参考にしてほしいと思っています。
Pros 良くなる点
音声合成が早くなる。
Cons 悪くなる点
/特になし/
実現方法
上記の通り、まずは色々データをとってみて原因を考えたいと思っています。
VOICEVOXのバージョン
hiroshiba/voicevox_engine:cpu-ubuntu20.04-0.10.preview.11
OSの種類/ディストリ/バージョン
今予定している検証
The text was updated successfully, but these errors were encountered: