核隔离使能方法
在执行核动态隔离前,请保证智算任务以及其他通算任务已经启动。当前只支持以vLLM作为推理引擎的智算任务。
- 获取AIHost-Turbo代码。
1 2 3
git clone https://gitcode.com/openeuler/AIHost-turbo.git cd AIHost-turbo/a-sched pip install .
- 执行亲和脚本。参考指令如下:
1sudo python examples/affinity_vllm.py -dp-size 4 -dp-size-local 4 -dp-start-rank 0 -tp-size 4 -ep -r
执行完成后,即可实现vLLM推理服务亲和执行,将智算任务与通算任务的核心资源隔离,提升推理性能。
表1 脚本执行参数说明 参数
说明
-r/--run
运行亲和调度。
-d/--dry-run
试运行,仅做方案决策,不影响实际的执行结果。
-p/--print
打印当前实际的亲和信息。
-restore
恢复亲和性到调度前状态。
--tp-size
张量并行(TP)大小(必填),该参数与vLLM启动时参数相同。
--dp-size
数据并行(DP)大小(必填),该参数与vLLM启动时参数相同。
--dp-size-local
当前节点的DP大小(单节点时取值与--dp-size相同即可)。
--dp-start-rank
当前节点的DP起始rank(单节点时取0即可)。
-ep/--enable_ep
使能专家并行(EP)。
示例输出如下:

示例输出解释:
- 进程与线程条目:描述了主要计算进程或内部线程的资源分配范围。
1- PROCESS[2024621]: name=VLLM::EngineCore_DP0, priority=NORMAL, socket=[0, 1, 2, 3], numa=[0-7], cluster=[0-79], cpu=[0-319]
表2 输出参数说明 字段
示例数值
说明
类型
[PROCESS] / [Thread]
标识该条目是进程还是线程。
PID
2024621
操作系统分配的唯一标识符(Process ID)。
Name
VLLM::EngineCore_DP0
进程名称。DP0通常表示数据并行组0;TP表示张量并行;EP表示专家并行。
Priority
NORMAL
进程/线程的调度优先级。
Socket
[0, 1, 2, 3]
允许运行的CPU插槽(物理CPU)编号。
NUMA
[0-7]
允许访问的NUMA节点范围。
CPU
[0-319]
允许运行的CPU逻辑核心范围。
- 硬件中断条目:描述了硬件中断(IRQ)的具体绑定位置,是性能调优的关键,决定了哪个CPU核心负责处理NPU的通信。
1- Irq[2062](sq_send_trigger_irq): numa=[6], cluster=[62], cpu=[249]
表3 输出参数说明 字段
示例数值
说明
类型
Irq[2062]
标识这是一个中断请求,后跟中断号。
描述
(sq_send_trigger_irq)
中断类型名称,通常代表特定的硬件通信事件。
NUMA
[6]
该中断被绑定到的具体NUMA节点。
Cluster
[62]
逻辑核心所属的集群编号(逻辑分组)。
CPU
[249]
最关键的字段:该中断被精确绑定到的具体CPU核心ID。
- AIHost-Turbo修改进程/线程亲和性需要root权限,在执行时需要显式添加sudo,或使用root用户。
- 完成亲和使能后,会生成一个JSON文件,该文件记录了恢复使能亲和状态前使用的信息,删除后将无法使用脚本恢复亲和前状态。
- 进程与线程条目:描述了主要计算进程或内部线程的资源分配范围。
- 恢复到调度前状态。
1sudo python examples/affinity_vllm.py -dp-size 4 -dp-size-local 4 -dp-start-rank 0 -tp-size 4 -ep -restore
示例输出:

恢复状态时,依然需要输入启动时的dp-size和tp-size参数,否则将无法正常识别需要恢复的进程和线程。