-
Notifications
You must be signed in to change notification settings - Fork 120
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
NvOptimusEnablement
とAmdPowerXpressRequestHighPerformance
を宣言
#322
Conversation
|
PRありがとうございます!! ちなみに |
AMDのグラボ+その他のグラボの組み合わせにおいて、 世のOSSでは |
あとは実際に効いているか確認できるといいのですが、GPU2枚のPCを持っているのが自分だけみたいなのでWindows環境構築頑張ります... |
なるほどです!!対応ありがとうございます!!
すみません、こちらもありがとうございます 🙇 |
検証ありがとうございます!!!! おっと・・・・・・・予想外ですね・・・。 原因の切り分け・・・・というより追証方法ですが、いくつか挙げてみます。
|
あーーー なるほどです。dllではなくexe側で定義しないとダメという感じでしょうか。 |
ですね。 ただwinapiでGPUの情報を取得してみたところ、うまくいったし、この voicevox_core/crates/voicevox_core/src/status.rs Lines 184 to 188 in 3714a1b
|
詳細な検証ありがとうございます!!
仰る通りこちらの方法もありだと考えています。 まず、UX考えると、「大多数の人が意図した挙動になり、意図しない挙動をする場合は変更可能になっている」というのが良いのかなと思いました。 メンテナンス性に関して言えばシンボル側が楽な気がします。 最後に実装コストの面ですが、↑の理由でいろんなデバイスでメモリを取得するのが大変そうに感じました。 @qryxip さんの調査のおかげでいろんな手段とコストが見えてきました、ありがとうございます!!! |
こちらについてですが、シンボルを宣言した実行バイナリではNVIDIA Control Panelで統合GPUを使うように指示したとしてもGeForceが一番最初に来るようになります。つまりおそらくはユーザ側での制御はできなくなります。
こちらには同意します。現在VOICEVOX COREは
の3通りでしかGPUの利用をサポートしていないため、今問題を解決するにはx86_64のWindows上でGeForce (or Radeon)を探し当てられさえすればいいのですが、将来サポート対象を増やすことを視野に入れると
に対してこれだけのproviderがあることを考えなくてはなりません。macOSのGPUを使えるようになるのは今後も望めなさそうだしスマホに複数のGPUは無いでしょうから、WindowsとLinuxだけ考えればよさそうではあるのですが。 あとはPyInstaller側での実装とメンテが楽ならいいのですが。公式で方法が紹介されているので、いけるんじゃないかとは思ってます。 (ところでPyInstaller側の対処を選択肢に入れるなら、そろそろengineの方にissueを作るか、Discordで呼びかけるかした方がいいんじゃないかと) |
なるほど・・・・・・。これは勘違いしていました、ありがとうございます。
リストアップありがとうございます!
仰るとおりだと思います。まあ先に僕たちの間で握っておかないと話がこんがらがるので! そちらのissueはpyinstaller化がメインなので、別でissueを作ると優しいのかなと感じました。 |
issue立てたのでこのPRは閉じます(題名の通りの実装は不可能であるため)。 |
issue作成と、あと詳細な検証も本当にありがとうございました・・・!!! |
内容
NvOptimusEnablement
とAmdPowerXpressRequestHighPerformance
を宣言し、DirectMLで良い方のGPUが使われるようにします。関連 Issue
Fixes #309.
その他
Optimusの環境はおろか、まだ通常のWindowsの環境でも実際に動かしてません。そのためdraftとします。