お世話になっております
<br/>
主題の通り、UE5.6.1でHordeを用いた分散シェーダーコンパイルの実行テストを行っています。
(検証時はエディタ起動時に-noshaderddc -noxgeshadercompilerの引数を付けて確認)
<br/>
ですが、C:\Program Files\Epic Games\Horde\Agent にあるappsettings.jsonのCpuCountや
UnrealToolBoxのCPU Utilizationで設定したCPU Countを無視して、
分散先のリモートPCのCPUをフルに使われてしまう状況に陥っています
<br/>
こちら分散ビルド時と同じようにCPUの利用制限をかける方法をご教授頂きたいです
すみませんがご回答宜しくお願い致します
お世話になっております。
Horde AgentはCPUコア数をUnreal Build Acceleratorに渡していますが、シェーダーコンパイルではappsettings.jsonやUnrealToolBoxのCPU設定は直接反映されません。そのため、CPUを制限したい場合は各エージェントのagent.jsonで制御を行う必要があります。
UE_HORDE_CPU_COUNT(CpuCount)はコードコンパイル向けの環境変数であり、シェーダーコンパイルには適用されません。ShaderCompileWorkerはマルチスレッドで動作するため、UBA側では自動的に1コアに制限されることはありません。
結論として、分散シェーダーコンパイルでCPU使用率を抑えたい場合は、各リモートエージェントごとにagent.jsonでCPU数を指定してください。ShaderCompileWorker専用の特別な設定を追加する必要はないと思います。
お手数ですが、よろしくお願いします。
ご回答ありがとうございます
重ねての質問となり恐縮なのですが、cpuCount以外にもagent側で出来るcpuの利用可能コア数設定項目があるという事でしょうか?
https://dev.epicgames.com/documentation/ja\-jp/unreal\-engine/horde\-settings\-for\-unreal\-engine?application\_version\=5\.5\#agentjson(agent)
HordeAgentのドキュメントを確認したのですが、それらしい設定項目を見つけられませんでした
具体的にどの設定でAgentがCPUの利用可能数を指定できるのか教えていただけないでしょうか?
お世話になっております。
すみません、ENVの設定は完全にUBT側の設定で、ShaderのコンパイルはC++からUBAにいくリクエストなので繋がりが違うと思います。
公式に見対応ですが、Guthubで対応しているPRをありますので、貴社のニーズに合っているかどうかご確認お願いできますか?
https://github.com/EpicGames/UnrealEngine/pull/13771/files
お手数ですが、よろしくお願いします。
ご回答ありがとうございます。
Githubの対応内容を拝見し、ニーズに合っていそうだったのでローカルで差分を取り込んでみた所、うまく分散シェーダーコンパイル時もCpu制限がかかるようになりました、ありがとうございます
こちらの変更に関して、UE5.7にはまだマージされていないようですが5.7で正式対応されるという認識で合っていますでしょうか?
お世話になっております。
本件については、ニーズに応える方法を見つけてよかったです!
残念ながら5.7に間に合わないと思いますが、Hordeチームが5.8に入れるかどうか検討しているようです。もし進行があったら、ここで報告させていただきます。
お手数ですが、よろしくお願いします。