We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
cpu_num_threads
現在、cpu_num_threadsの値はonnxruntimeのintra_op_num_threadsに渡されるようになっていますが、0が渡された場合にINTRAスレッドの合計=物理コアの数になるため、「cpu_num_threadsが未指定または0」かつ「論理コア数=物理コア数のCPU」の場合にすべてのコアが使用されます。
intra_op_num_threads
すべてのコアが使用されると他のアプリケーションやOSの動作に影響が出る(重くなる)のと、コメントやエンジンのREADMEでは「論理コア数の半分」という表記があるので、「cpu_num_threadsが未指定または0」の場合は論理コア数の半分が使用されるようにするのが良さそうです。
論理コア数はnum_cpusで取得できそう?
The text was updated successfully, but these errors were encountered:
issue作成ありがとうございます! 補足説明と個人的な感想をコメントしてみます。
cpu_num_threadsの数ですが、スレッド数の半分ぐらいを超えるとパフォーマンスはそこまで上がらなかったという実験結果があります。 VOICEVOX/voicevox_engine#291 (comment)
たぶんエンジンは大体の環境でいい感じに動作してくれるデフォルト値を設定した方が良さそうに思います。 ただコアはデフォルト値をどうするべきかはちょっと迷います。 onnxruntimeのデフォルト値の「物理コア数」にするのは意図がはっきりしないので真似する必要はない気がします。 じゃあ論理コア数にするのか、論理コアの半分にするべきなのかは分からないです。
個人的にはスマホとかだと100%使われると結構いまいちそうなので、コアでもまあ論理コアの半分にしといていいんじゃないかなとちょっと思ってます。 あるいはまあ4分の3とか。
Sorry, something went wrong.
とりあえずメモとしてですが、Rustの標準ライブラリにはstd::thread::available_parallelismという面白いものがあります。通常は論理コアの数を返すみたいです。 (例えばrayonは以前論理コア数を使っていましたが、今はavailable_parallelismを使うようになっています)。
std::thread::available_parallelism
available_parallelism
まあ説明が難しいし、「論理コアの数の半分」がシンプルだとは思います。
なるほどです!!
ノートPC勢とかは画面が固まっちゃうので、できれば実装してあげたい気持ちがあります。 ただまぁエンジンには必須な機能だけど、コアはちょっと優先度下がるかも。 とはいえいい感じのプロダクトを作るためにこのパラメータを変えないとなのは気づきにくそうなので、デフォルトでいい感じに動いた方がやっぱり良さそう…かなぁ。
No branches or pull requests
内容
現在、
cpu_num_threads
の値はonnxruntimeのintra_op_num_threads
に渡されるようになっていますが、0が渡された場合にINTRAスレッドの合計=物理コアの数になるため、「cpu_num_threads
が未指定または0」かつ「論理コア数=物理コア数のCPU」の場合にすべてのコアが使用されます。すべてのコアが使用されると他のアプリケーションやOSの動作に影響が出る(重くなる)のと、コメントやエンジンのREADMEでは「論理コア数の半分」という表記があるので、「
cpu_num_threads
が未指定または0」の場合は論理コア数の半分が使用されるようにするのが良さそうです。Pros 良くなる点
Cons 悪くなる点
実現方法
論理コア数はnum_cpusで取得できそう?
その他
The text was updated successfully, but these errors were encountered: