转载请注明出处:Теория большого взрыва старшего Сяо Фэна[xfxuezhagn.cn] Если эта статья поможет вам,добро пожаловать[Ставь лайк, в избранное, подписывайся]ой~
Проще говоря, привязка ядра или близость — это привязка определенного графического процессора к определенному ядру ЦП для максимизации эффективности.
Рекомендуется использовать с приоритетом процесса:
https://blog.csdn.net/sxf1061700625/article/details/139721354
Вы можете увидеть, к каким процессорам NVIDIA рекомендует привязывать графический процессор:
nvidia-smi topo -m
Установка ссылки на код в Python:
def set_cpu_affinity(rank, num_cores_per_gpu=4, start_core_index=0):
num_cores = psutil.cpu_count(logical=True)
core_ids = list(range(num_cores))
# Вычислить индекс начального и конечного ядер
start_core = start_core_index + rank * num_cores_per_gpu
end_core = start_core + num_cores_per_gpu
# Получить список ядер ЦП, которые необходимо привязать
cpu_affinity = core_ids[start_core:end_core]
# Установите привязку ядра ЦП текущего процесса
p = psutil.Process(os.getpid())
p.cpu_affinity(cpu_affinity)
print(f">> GPU {rank} is bound to CPU cores {cpu_affinity}")
set_cpu_affinity(rank)
Демонстрация эффекта:
htop