我正在尝试在 x86-64(4 核)和 Ubuntu 22.04 上的屏蔽核心上运行基准测试。屏蔽核心3运行良好:
paul@cube-ubuntu-22:~/simd-agner/build$ sudo cset shield -c 3
cset: --> activating shielding:
cset: moving 714 tasks from root into system cpuset...
[==================================================]%
cset: "system" cpuset of CPUSPEC(0-2) with 714 tasks running
cset: "user" cpuset of CPUSPEC(3) with 0 tasks running
但尝试对其运行基准测试失败了:
paul@cube-ubuntu-22:~/simd-agner/build$ cset shield -e ./bench-native-icx
cset: **> 1 tasks are not movable, impossible to move
cset: --> last message, executed args into cpuset "/user", new pid is: 10578
并且基准测试在核心 1 而不是核心 3 上运行。当我使用时没有问题taskset
:
taskset -c 3 ./bench-native-icx
它按预期在核心 3 上运行基准测试。我正在查看另一个正在运行的终端watch grep \"cpu MHz\" /proc/cpuinfo
以确定正在使用哪个核心。它明确地表明了这一点。