UE5.6:Hordeを用いた分散シェーダーコンパイルでCPU利用制限がかからない

お世話になっております

<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に入れるかどうか検討しているようです。もし進行があったら、ここで報告させていただきます。

お手数ですが、よろしくお願いします。