问题域/PD-382

硬件平台抽象

Hardware Platform Abstraction

统一抽象层适配多种硬件平台,实现设备无关的推理引擎

子问题

1.平台检测与能力查询

2.设备通信器适配

3.attention后端选择

4.OOT插件扩展机制

5.CUDA context 过早初始化导致 Ray worker 设备绑定失败

6.Attention 后端按设备代际动态优先级选择

7.ROCm GCN arch 字符串到 capability 元组的解析映射

8.平台特定配置默认值的自动注入与校验

各项目的解法1 solutions

Signals

横向对比

维度vLLM
抽象层级单基类 40+ classmethod,子类覆写差异方法
平台检测优先级链自动检测:OOT > TPU > CUDA > ROCm > XPU > CPU
插件扩展Python entry_points 注册 OOT 平台,无需修改源码
设备查询策略NVML 优先避免 CUDA 初始化,NonNvml 降级兜底
后端选择每平台独立优先级列表,按设备代际和 MLA 模式动态选择
通信器适配字符串路径延迟导入,NCCL/XCCL/Gloo 按平台切换
配置校验check_and_update_config 原地修改 VllmConfig,平台特定默认值

最佳实践

1.通过Platform接口隔离硬件差异

2.使用entry_points注册自定义硬件插件

3.用 NVML/amdsmi 替代 torch.cuda 查询设备信息避免 CUDA 初始化

4.后端选择返回字符串路径而非类引用避免循环导入

5.模块级 __getattr__ 实现懒加载确保 OOT 插件注册时序