Prhub

#7363 [CI] Modify 4-card container startup config and move test case

PaddlePaddle/FastDeploy · 作者 EmmonsCurse · 合并时间 2026-04-13 20:23

分析状态 已生成
文件变更 2提交数 1 · 评论 2
代码增减 +14 / -4
CI infra Optimization

执行摘要

优化 4 卡 CI 容器启动配置,支持 RDMA 环境并重组测试用例。

根据PR body,动机是"Improve stability and compatibility of 4-card CI jobs with RDMA-enabled environments"和"Ensure proper device mounting and resource limits for multi-card inference tests",即提升RDMA环境下4卡CI作业的稳定性与兼容性,确保多卡推理测试的正确设备挂载和资源限制。

该PR变更直接,适合快速浏览以了解CI配置优化细节,重点关注RDMA环境支持的具体配置(如设备挂载、ulimit设置)和测试重组逻辑。对于负责CI或RDMA测试的工程师值得参考。

讨论亮点

review中仅有fastdeploy-bot的AI代码审查和yuanlehome的批准。fastdeploy-bot指出PR符合规范,变更合理,并给出非阻塞性建议:注意到PORTS数组未包含新增的FD_ROUTER_PORT、FD_CONNECTOR_PORT、FD_RDMA_PORT,可能需要后续补充端口清理逻辑。没有争议或深度讨论。

实现拆解

实现分为两部分:1. 更新CI工作流配置(.github/workflows/_gpu_4cards_case_test.yml):添加RDMA设备自动检测与挂载(RDMA_DEVICES)、挂载/dev/infiniband/rdma_cm、设置ulimit memlock=-1:-1支持RDMA内存锁定、添加SYS_PTRACE和IPC_LOCK权限、调整共享内存为64G、新增环境变量(FD_ROUTER_PORT、FD_CONNECTOR_PORT、FD_RDMA_PORT)并启用CLEAN_CUDA=1。2. 重组测试用例:将test_ernie_03b_pd_router_v1_rdma_tp2.py从tests/e2e/移动到tests/e2e/4cards_cases/目录,并修正导入路径和CUDA_VISIBLE_DEVICES设置。

文件 模块 状态 重要度
.github/workflows/_gpu_4cards_case_test.yml CI modified 8.0
tests/e2e/4cards_cases/test_ernie_03b_pd_router_v1_rdma_tp2.py 测试 renamed 5.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

端口清理逻辑缺失 正确性

fastdeploy-bot 指出 PORTS 数组未包含新增的 FD_ROUTER_PORT、FD_CONNECTOR_PORT、FD_RDMA_PORT,可能需要后续补充端口清理逻辑。

结论:非阻塞性问题,建议后续处理。 · 未解决

风险与影响

风险较低:1. 配置变更可能影响CI作业的稳定性,但已在RDMA环境下针对性优化,风险可控。2. 测试文件移动可能导致导入路径错误,但PR中已修正相关导入(从utils.serving_utils改为e2e.utils.serving_utils)。3. 新增环境变量和权限可能引入安全风险(如IPC_LOCK),但仅限于CI环境,影响有限。4. fastdeploy-bot提到的端口清理逻辑缺失可能导致端口冲突,但非阻塞性问题。

影响范围:1. 对用户:无直接影响,属于内部CI优化。2. 对系统:提升4卡CI作业在RDMA环境下的可靠性和性能,支持更稳定的多卡推理测试。3. 对团队:简化测试管理,通过目录重组使测试用例更清晰。影响程度:中等,主要影响CI流程和测试执行。

配置变更影响稳定性 测试路径修正风险 端口清理逻辑缺失

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

执行摘要

本次PR优化了FastDeploy仓库中4卡CI作业的容器启动配置,通过添加RDMA设备支持、内存锁定权限和环境变量,提升了在RDMA环境下的测试稳定性和兼容性,同时重组了e2e测试用例以改善代码组织。变更属于基础设施优化,对用户无直接影响,但有助于团队更可靠地执行多卡推理测试。

功能与动机

PR的动机明确:提升4卡CI作业在RDMA环境下的稳定性和兼容性,并确保正确的设备挂载和资源限制。作者在PR body中写道:"Improve stability and compatibility of 4-card CI jobs with RDMA-enabled environments"和"Ensure proper device mounting and resource limits for multi-card inference tests"。这反映了团队在分布式推理测试中遇到的环境配置问题,需要通过CI优化来保证测试的可靠性。

实现拆解

实现分为两个关键部分:

  1. CI工作流配置更新(.github/workflows/_gpu_4cards_case_test.yml):

    • 添加RDMA设备自动检测与挂载:export RDMA_DEVICES=$(find /dev/infiniband/uverbs* -maxdepth 1 -not -type d | xargs -I{} echo '--device {}:{}')
    • 挂载RDMA通信设备:--device=/dev/infiniband/rdma_cm
    • 设置内存锁定无限制:--ulimit memlock=-1:-1
    • 添加必要权限:--cap-add=SYS_PTRACE --cap-add=IPC_LOCK
    • 调整共享内存大小:--shm-size=64G
    • 新增环境变量:FD_ROUTER_PORTFD_CONNECTOR_PORTFD_RDMA_PORTCLEAN_CUDA=1
  2. 测试用例重组(tests/e2e/4cards_cases/test_ernie_03b_pd_router_v1_rdma_tp2.py):

    • 将文件从tests/e2e/移动到tests/e2e/4cards_cases/目录
    • 修正导入路径:从from utils.serving_utils import改为from e2e.utils.serving_utils import
    • 调整GPU设备分配:CUDA_VISIBLE_DEVICES"1"改为"2"

评论区精华

review讨论较少,主要亮点来自fastdeploy-bot的AI代码审查:

虽然不在本次PR变更范围内,但注意到.github/workflows/_gpu_4cards_case_test.yml:158PORTS数组未包含本次新增的FD_ROUTER_PORTFD_CONNECTOR_PORTFD_RDMA_PORT,可能需要后续补充端口清理逻辑。

这指出了潜在的正确性问题,但被标记为非阻塞性建议。yuanlehome直接批准了PR,表明变更被认可。

风险与影响

风险分析

  • 配置变更可能引入不稳定性,但针对RDMA环境优化,风险可控。
  • 测试文件移动可能导致导入错误,但PR中已修正路径。
  • 新增权限(如IPC_LOCK)在CI环境中安全风险有限。
  • 端口清理逻辑缺失可能引发端口冲突,需后续关注。

影响分析

  • 对用户无直接影响,属于内部CI改进。
  • 提升4卡CI作业在RDMA环境下的可靠性,支持更稳定的多卡推理测试。
  • 测试重组使代码更清晰,便于团队维护。

关联脉络

从近期历史PR看,本PR与多个CI优化PR相关:

  • PR #7335和#7315都涉及容器清理和资源管理,与本PR的基础设施优化目标一致。
  • 整体趋势显示团队持续改进CI流程,特别是在多卡和RDMA环境下的测试稳定性。

本PR是这一系列优化的一部分,专注于4卡RDMA配置,反映了FastDeploy在分布式推理测试基础设施上的演进。

参与讨论