Windows 10
パーソナル コンピューターとタブレットで実行される Microsoft オペレーティング システム。
85 件の質問
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Xeon Platinum 8351Nを使用している環境です。
ハイパースレッディングが有効で72コアとして認識しているためグループ0=64コア、グループ1=8コアとなっています。
アプリケーションを起動したときグループ0側のコアで起動すれば最大64コアまで使用できますが、グループ1側で起動してしまうと8コアまでしか使用できない為、処理速度が低下してしまいます。
プログラム起動時にスレッドのアフィニティ設定を行っていますが、グループ1側で起動してしまうとグループ1側のコアが選択できません。
グループ0側で動作するように設定する方法は無いでしょうか。
現在試しているプログラムコード
WORD groupNumber = *reinterpret_cast<WORD*>(lpParam);
GROUP_AFFINITY groupAffinity = {0};
groupAffinity.Group = groupNumber;
groupAffinity.Mask = (KAFFINITY)-1;
if (!SetThreadGroupAffinity(GetCurrentThread(), &groupAffinity, nullptr))
{
std::cerr << "Failed to set thread group affinity: " << GetLastError() << std::endl;
return 1;
}
肝心のPCのメーカーやマザーボードが不明なので「回答」にはならないかも知れませんが、Windows の問題というよりは、ざっと検索すると、マザーボードやBIOSの作りが原因の様です。