本文主要是介绍【教程】设置GPU与CPU的核绑(亲和力Affinity),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]
如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~
简单来说,核绑,或者叫亲和力,就是将某个GPU与指定CPU核心进行绑定,从而尽可能提高效率。
推荐与进程优先级一起用:
【教程】Linux设置进程的优先级-CSDN博客文章浏览阅读420次,点赞17次,收藏7次。对于时间敏感的任务调整进程优先级很有必要https://blog.csdn.net/sxf1061700625/article/details/139721354
可以看NVIDIA推荐GPU与哪些CPU绑定:
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_gpuend_core = start_core + num_cores_per_gpu# 获取要绑定的CPU核列表cpu_affinity = core_ids[start_core:end_core]# 设置当前进程的CPU核绑定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
这篇关于【教程】设置GPU与CPU的核绑(亲和力Affinity)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!