绑核优化
适用于运行过程中出现跨NUMA访问较多、线程切换开销大、Host下发任务慢等场景。下列绑核方法可以有效提升vLLm框架的运行效率,建议根据具体场景情况选择使用。
绑核过程中,NUMA节点对应的CPU核组可以通过命令lscpu查看。
方法一:细粒度绑核(推荐使用)
将主要任务锚定在NUMA节点的某固定CPU核心上,可以减少大部分情况下核间切换的开销。
export CPU_AFFINITY_CONF=2
方法二:粗粒度绑核
由vLLM框架自动将所有任务绑定在NPU对应NUMA的CPU核心上,避免跨NUMA节点的内存访问,并同时支持粗粒度绑核上的自定义绑核。
export CPU_AFFINITY_CONF=1
方法三:自定义绑核
支持用户自定义NPU的绑核范围,且支持对部分NPU对应的进程进行单独绑核。
例如,目前有4张卡可用,分别为npu0、npu1、npu2、npu3,参考指令如下:
export CPU_AFFINITY_CONF=1,npu0:0-1
- 其中<value1>:<value2>-<value3> 表示第value1张卡绑定在value2到value3的闭区间CPU核心上。例如,npu0:0-1表示运行在编号为0的NPU上的进程会绑定到编号为0、1的CPU核心。其余卡的绑核策略与CPU_AFFINITY_CONF=1时相同。
- CPU_AFFINITY_CONF=1时此项设置生效。
父主题: 性能调优