登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
Gitee 2025 年度开源项目评选中
代码拉取完成,页面将自动刷新
开源项目
>
开发工具
>
测试工具
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
12
Star
94
Fork
38
anolis
/
ancert
代码
Issues
6
Pull Requests
13
Wiki
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
GPU测试: 以新增厂商为契机,优化加速卡测试架构组织方式
意向
#ICMQF8
需求
lijiuhao
创建于
2025-07-16 16:15
### 0. 引言 本次提交主要目的是: 以新增厂商为契机,解决当前存在的两个问题 **①GPU作为一级目录不准确 ②GPU目录下的内容划分不清晰,** 探索一种更清晰、易维护、利于扩展的 “加速器” 测试架构组织方式。  改为  ### 1. 背景 **“加速卡(Accelerator)概念”** “加速卡”是指在通用 CPU 之外,专用于加速特定类型计算(如图形处理、AI 推理、机器学习训练、通用并行计算等)的硬件设备。它们通常以独立 PCIe 卡形式存在,并配有各自的驱动、运行时环境和编程模型。 常见的加速卡包括: ----GPU(Graphics Processing Unit):NVIDIA、AMD、Intel 等,支持图形渲染和 GPGPU; ----MLU(Machine Learning Unit):寒武纪,专为 AI 推理加速设计; ----TPU(Tensor Processing Unit):Google,自研 AI 训练/推理芯片; ----NPU(Neural Processing Unit):华为、地平线等 AI 加速器; ----其他国产 AI 卡:如海光、天数智芯等提供的深度学习加速器。 **问题一: 为什么不应该将 GPU 作为一级目录?** ①GPU 不再是唯一主流加速器 --------当前主流服务器已普遍支持多种异构加速器,不再局限于 GPU。 --------MLU、TPU、NPU 等已广泛部署于 AI、云计算、边缘计算等场景。 ②归类不准确,造成概念混淆 --------将寒武纪(MLU)、天数智芯等芯片放在 GPU 目录下,容易误导用户认为它们是某种 GPU,这在技术上是错误的。 --------各类加速器具有不同的硬件架构、编程模型、驱动栈,不具备通用性。 ③阻碍架构扩展和统一调度 --------GPU 为一级目录,会导致其他加速卡难以合理嵌入,必须“借壳”挂在 GPU 下,带来维护困难。 --------无法统一管理加速器状态、调度、指标采集等公共逻辑。 **问题二:为什么需要按厂商划分子目录,进行测例隔离?** 当前 gpu/目录下集成了多个厂商(如 NVIDIA、Haiguang 等)的测试源码与工具,但缺乏清晰的边界划分,不同厂商的测试用例存在一定耦合现象。 例如,Iluvatar和NVIDIA都使用了gpu_burn下的源码和编译链,但是Iluvatar通过编译前通过替换指令,编译出了不同的测试工具。 这种情况下一方修改了源码,另一方就会受影响, 如果保持现在糅合的状态,不仅使得结构难以维护,也对新增厂商支持带来了门槛。 因此,需要按厂商划分子目录, **将源码-编译过程解耦合,各自独立,来保证安全和易维护**   ### 2. 重要性/优先级 - 修改一级目录为加速卡,避免了误会,使其他厂商更容易接入 - 分离不同厂商的测试代码和工具,有助于降低模块耦合度,提升整体可维护性和扩展性。 从 ancert 长期可扩展性角度来看,进行本优化是重要性较高的 ### 3. 目标/计划 ②:修改一级目录为Accelerator,把程序中原本gpu相关的代码,例如类名,最好都改成accelerator或accel ①:按厂家建立二级子目录,每个厂家管理自己的子目录,由通用脚本检查vendor_id后进入对应的子目录执行测试,具体可参照PR里新增的cambricon的测例设计 ### 4. 影响 - 避免了命名误会,使其他厂商更容易接入 - 不同厂商测试逻辑完全独立,减少冲突,提升代码可维护性 - 新厂商接入更简单,只需添加子目录和脚本 - 日志输出、错误处理等更容易统一规划 ### 5. 其他说明 ①本问题对应的MR只是通过新增accelerator/Cambricon目录做一个例子, **如果采纳本ISSUE,还需要把程序中原本gpu相关的代码,例如类名,最好都改成accelerator或accel** ②按厂家规划好后,还可以统一各厂家测试的输出日志的格式、位置等,例如都要统一错误记录日志 例如:ERR_COLLECT_LOG="${TESTLOG_DIR}/cambricon/err_collect.log"
### 0. 引言 本次提交主要目的是: 以新增厂商为契机,解决当前存在的两个问题 **①GPU作为一级目录不准确 ②GPU目录下的内容划分不清晰,** 探索一种更清晰、易维护、利于扩展的 “加速器” 测试架构组织方式。  改为  ### 1. 背景 **“加速卡(Accelerator)概念”** “加速卡”是指在通用 CPU 之外,专用于加速特定类型计算(如图形处理、AI 推理、机器学习训练、通用并行计算等)的硬件设备。它们通常以独立 PCIe 卡形式存在,并配有各自的驱动、运行时环境和编程模型。 常见的加速卡包括: ----GPU(Graphics Processing Unit):NVIDIA、AMD、Intel 等,支持图形渲染和 GPGPU; ----MLU(Machine Learning Unit):寒武纪,专为 AI 推理加速设计; ----TPU(Tensor Processing Unit):Google,自研 AI 训练/推理芯片; ----NPU(Neural Processing Unit):华为、地平线等 AI 加速器; ----其他国产 AI 卡:如海光、天数智芯等提供的深度学习加速器。 **问题一: 为什么不应该将 GPU 作为一级目录?** ①GPU 不再是唯一主流加速器 --------当前主流服务器已普遍支持多种异构加速器,不再局限于 GPU。 --------MLU、TPU、NPU 等已广泛部署于 AI、云计算、边缘计算等场景。 ②归类不准确,造成概念混淆 --------将寒武纪(MLU)、天数智芯等芯片放在 GPU 目录下,容易误导用户认为它们是某种 GPU,这在技术上是错误的。 --------各类加速器具有不同的硬件架构、编程模型、驱动栈,不具备通用性。 ③阻碍架构扩展和统一调度 --------GPU 为一级目录,会导致其他加速卡难以合理嵌入,必须“借壳”挂在 GPU 下,带来维护困难。 --------无法统一管理加速器状态、调度、指标采集等公共逻辑。 **问题二:为什么需要按厂商划分子目录,进行测例隔离?** 当前 gpu/目录下集成了多个厂商(如 NVIDIA、Haiguang 等)的测试源码与工具,但缺乏清晰的边界划分,不同厂商的测试用例存在一定耦合现象。 例如,Iluvatar和NVIDIA都使用了gpu_burn下的源码和编译链,但是Iluvatar通过编译前通过替换指令,编译出了不同的测试工具。 这种情况下一方修改了源码,另一方就会受影响, 如果保持现在糅合的状态,不仅使得结构难以维护,也对新增厂商支持带来了门槛。 因此,需要按厂商划分子目录, **将源码-编译过程解耦合,各自独立,来保证安全和易维护**   ### 2. 重要性/优先级 - 修改一级目录为加速卡,避免了误会,使其他厂商更容易接入 - 分离不同厂商的测试代码和工具,有助于降低模块耦合度,提升整体可维护性和扩展性。 从 ancert 长期可扩展性角度来看,进行本优化是重要性较高的 ### 3. 目标/计划 ②:修改一级目录为Accelerator,把程序中原本gpu相关的代码,例如类名,最好都改成accelerator或accel ①:按厂家建立二级子目录,每个厂家管理自己的子目录,由通用脚本检查vendor_id后进入对应的子目录执行测试,具体可参照PR里新增的cambricon的测例设计 ### 4. 影响 - 避免了命名误会,使其他厂商更容易接入 - 不同厂商测试逻辑完全独立,减少冲突,提升代码可维护性 - 新厂商接入更简单,只需添加子目录和脚本 - 日志输出、错误处理等更容易统一规划 ### 5. 其他说明 ①本问题对应的MR只是通过新增accelerator/Cambricon目录做一个例子, **如果采纳本ISSUE,还需要把程序中原本gpu相关的代码,例如类名,最好都改成accelerator或accel** ②按厂家规划好后,还可以统一各厂家测试的输出日志的格式、位置等,例如都要统一错误记录日志 例如:ERR_COLLECT_LOG="${TESTLOG_DIR}/cambricon/err_collect.log"
评论 (
0
)
登录
后才可以发表评论
状态
意向
意向
进行中
已完成
已拒绝
负责人
未设置
标签
未设置
项目
未立项任务
未立项任务
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (2)
标签 (4)
master
sw
v2.0
v1.2
v1.1
v1.0
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(1)
Python
1
https://gitee.com/anolis/ancert.git
git@gitee.com:anolis/ancert.git
anolis
ancert
ancert
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册