Prhub

#36742 [EPD] update EPD script arguments

原始 PR 作者 zhenwei-intel 合并时间 2026-03-31 20:02 文件变更 3 提交数 4 评论 7 代码增减 +58 / -15

执行摘要

更新 EPD 示例脚本以支持平台感知和参数化服务参数。

PR body中说明:'This PR updates EPD scripts to be platform-aware by switching device binding between CUDA_VISIBLE_DEVICES and ZE_AFFINITY_MASK via configurable platform settings. It also parameterizes serving arguments.' 目的是为了在Intel GPU上运行EPD示例时,能够正确设置设备绑定,并允许用户通过环境变量调整服务参数以提高配置灵活性。

对于涉及多平台部署或EPD功能的工程师,建议精读此PR以了解平台抽象的设计(如DEVICE_PLATFORM切换逻辑)和参数化配置的实现。关注JSON格式修复的细节,以确保类似脚本变更的正确性。

讨论亮点

review中,gemini-code-assist[bot]指出disagg_1e1p1d_example.sh中kv_buffer_device的JSON格式使用单引号导致无效JSON,建议改为双引号包裹变量以避免脚本失败,作者通过更新修复了此问题。NickLucche询问是否在文档中提到DEVICE_PLATFORM,作者回应已在README.md中添加说明并更新了文档,确保了文档完整性。

实现拆解

主要修改了三个文件:

1) README.md:添加了XPU使用示例和DEVICE_PLATFORM说明文档。
2) disagg_1e1p1d_example.sh 和 disagg_1e1pd_example.sh:引入DEVICE_PLATFORM变量(默认cuda),根据其值设置DEVICE_AFFINITY_ENV为CUDA_VISIBLE_DEVICES或ZE_AFFINITY_MASK;新增GPU_MEMORY_UTILIZATION_*、MAX_NUM_SEQS、MAX_MODEL_LEN等环境变量;将硬编码的CUDA_VISIBLE_DEVICES替换为env命令使用DEVICE_AFFINITY_ENV,并参数化相关服务参数。

文件 模块 状态 重要度
examples/online_serving/disaggregated_encoder/README.md disaggregated_encoder 示例 modified 3.0
examples/online_serving/disaggregated_encoder/disagg_1e1p1d_example.sh disaggregated_encoder 示例 modified 5.0
examples/online_serving/disaggregated_encoder/disagg_1e1pd_example.sh disaggregated_encoder 示例 modified 5.0

关键符号

DEVICE_PLATFORM DEVICE_AFFINITY_ENV GPU_MEMORY_UTILIZATION_E MAX_NUM_SEQS MAX_MODEL_LEN

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

评论区精华

JSON 格式错误修复 正确性

gemini-code-assist[bot] 指出 kv_buffer_device 的 JSON 使用单引号导致无效 JSON,建议改为双引号包裹变量。

结论:作者通过更新修复了此问题,确保 JSON 解析正确。 · 已解决

文档补充 documentation

NickLucche 询问是否在文档中提到 DEVICE_PLATFORM,作者回应已在 README.md 中添加说明。

结论:文档已更新,提供了 XPU 使用指南,增强了用户体验。 · 已解决

风险与影响

风险包括:

1) JSON格式错误可能导致脚本解析失败,但已在review中识别并修复。
2) 平台兼容性:DEVICE_PLATFORM变量仅支持cuda和xpu,未来扩展其他平台可能需要修改逻辑。
3) 环境变量设置依赖shell环境,可能在不同shell中行为不一致。
4) 缺少自动化测试覆盖:变更仅涉及示例脚本,无配套测试,可能引入回归问题。

对用户:EPD示例脚本现在支持Intel GPU(XPU),用户可以通过设置DEVICE_PLATFORM=xpu来运行;参数化使得GPU内存利用率、序列数等配置更灵活,易于调整优化。对系统:无直接影响,因为是示例脚本。对团队:简化了跨平台测试和部署流程,提升了代码可维护性和可重用性。

JSON 格式错误 平台兼容性限制 缺少测试覆盖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论