|
|
||
|---|---|---|
| .gitee/ISSUE_TEMPLATE | ||
| S1 | ||
| example | ||
| images | ||
| FAQ.md | ||
| GPUCodeForces代码解读.md | ||
| GPUCodeForces赛题入门.md | ||
| LICENSE | ||
| README.md | ||
| how-to-contribute.md | ||
README.md
子赛题一、评测数据集生成挑战赛
欢迎参加 评测数据集生成挑战赛 📊! 本比赛旨在构建一个标准化、可用于 GPU 性能测试的评测数据集,帮助开发者更高效地比较不同硬件和框架的性能表现。
💻 比赛背景简介
在 AI 模型开发和部署中,GPU 性能评测是一个非常重要的环节。 不同 GPU、不同深度学习框架(如 PyTorch、TensorFlow、PaddlePaddle 等)在运行相同任务时,速度、吞吐量、内存占用等表现差异很大。 本次挑战赛希望通过社区的力量,构建一个标准化、带权重的评测数据集,让 GPU 性能比较更加科学、公正。
🎯 比赛目标
-
从 PyTorch、PaddlePaddle、TensorFlow、Jax、MMCV、Transformers 等框架中收集并生成评测样本。
-
为每个样本提供标准输出和性能指标,确保结果可复现。
-
最终形成 GPU CodeForces 数据集和评价方法。
初次了解本类比赛的小伙伴可以查看以下两份文档,希望帮助你快速入门和上手: 赛题入门、代码解读。
📥 参赛流程
一句话概括:进入GPUCodeForces赛事首页,完成一份成功合并到仓库内的提交即为参赛成功!时间自由,方法自由,只要有灵感就可以动手开code~
🌰举个栗子
- 登录or注册自己的Gitlink账号后,进入赛事首页初步查看仓库内的文件内容:
.
├── S1(说明:第一季比赛名称,该目录下文件需选手自建)
│ ├── issue id 1(选手提交算子前创建的issue对应的id)
│ │ ├── cudacode.py(必要提交文件)
│ │ ├── torchcode.py(必要提交文件)
│ │ ├── run_code.py(必要提交文件)
│ │ ├── prompt.txt(必要提交文件)
│ ├── issue id 2
│ ├── issue id ...
├── example(样例提供,供大家上手)
│ ├── 001-example(文件结构与 issue id x 一致)
│ ├── 002-example
├── images(图片文件夹,参赛选手可忽略)
├── FAQ.md(社区收集的问题与解答)
├── LICENSE(证书,参赛选手可忽略)
├── README.md(赛题baseline)
├── how-to-contribute.md(提交指南看这里)
-
在S1文件夹的文件即为参赛选手需要提交的文件,其余文件夹和文件皆为辅助参赛选手了解比赛、提供思路、排忧解难之用。
-
我们将当前赛题的项目clone到本地电脑上(建议使用git clone + 链接的方式),在S1文件夹下创建一个以自己issue id命名的文件夹,待提交的参赛代码文件都放在这里面。
Tips:issue id ≠ issue名称,名称建议为对该算子的概括性描述。创建了issue后,链接末尾处的数字即为issue id。同时,也可以在issue界面的醒目位置查看如"#123"这样的数字标识。
-
做好了准备工作,就可以开始尽情发挥,去寻找算子亦或是优化算子。在example文件夹中提供了算子样例,如果想简单上手可以查看该文件夹。虽然有效的算子优化也算一次提交,但我们鼓励大家发现新的算子✨真正与其他选手拉开差距。
🔧简单介绍一下样例代码:
example_torchcode.py: 基准模型(Baseline)。示例提供一个简单的PyTorch模型,只包含一个ReLU激活函数。
example_cudacode.py:优化模型。示例使用PyTorch的load_inline功能直接编译和加载CUDA代码,创建了一个新的模型类,使用自定义CUDA实现替代PyTorch的ReLU。
run_code.py:验证和性能测试脚本。验证自定义CUDA实现与原始PyTorch实现的数值精度一致性,比较两种实现的性能,计算加速比。
prompt.txt:提示词文本。提供类似 “融合算子 CUDA 设计” 的 prompt 编写思路。
💡如何将一个example变为自己的一份提交,具体的算子优化思路可参考:GPUCodeForces赛题解读
-
为了测试代码最终的跑通结果,需要使用规定的GPU。在模力方舟平台上准备了大家此次需要的算力资源,使用免费的算力券购买实例,接着便可以在云端实例上进行代码修改和测试。
相关算力券的领取方式请见算力平台使用说明、算力券兑换发放和兑换。
Tips:进行云端服务器的实例选择有库存的即可,点击进入后需要确定配置。其余选项保持默认,只需更改镜像处的选择:基础镜像-->CV-CUDA-->PyTorch2.4.0-->Python任意-->maca 3.0.0.5 -
代码测试运行没有问题后,便可以准备提交了(记得将所有必要文件保存到提交文件夹)。提交流程如下,全程使用git:
# cd到自己克隆到本地的项目路径下,如:C:\Users\Desktop\ODTC AI Infra\GPUCodeForces git remote -v # 检查是否链接到自己的Gitlink仓库 git checkout -b dev # 新建一个分支,dev即分支名字可以任取 git add . # 将文件的变更操作暂存 git commit -m "输入你本次提交的目的" # 目的简洁明了最好 git push origin dev # 提交你的修改到分支上对git与远程仓库操作的疑问可以点击how-to-contribute.md查看详情。
-
顺利提交后的代码还只在你自己fork的仓库下,还需要和主仓库合并才能真正让管理员看到你的代码。
fork仓库(你自己的仓库)与主仓库之间关系如下:
ODTC AI Infra/GPUCodeForces(main) ├── ... ├── folders your_name/GPUCodeForces(main) # 自己仓库下的main分支内容与主仓库一致 ├── ... ├── folders your_name/GPUCodeForces(dev) # dev分支才是你修改后的代码存放处 ├── ... │ ├── your codes ├── folders进入自己的仓库,点击上方选项栏:
合并请求(PR)-->+新建合并请求-->源分支选择dev(名称任取)-->填写下方选框-->标题为自己的issue标题-->描述填请简明扼要,描述内关联自己的issue id(如“fixes #001”)提交后便能看到自己的PR记录了,在对应记录的评论区会有测试结果的告知,请留意查看~
🌳一份完整的提交流程如上,期待各位自由发挥,赛出风采与水平!
⏺如仍有疑问,请点击提交流程演示视频
⭐审核流程
- 你提交的PR都会得到回复,大概存在的几种情况如下
也就是说,除了能够自己在算力平台的实例上运行得到算子测算的初步结果外,还可以在这里看到最终的测算结果。这里显示测试通过才能进入后续审核流程,并最终上传至比赛的算子仓库。提交PR-->测试通过✔️-->已合并-->有效提交 ヽ(✿゚▽゚)ノ 提交PR-->测试通过✔️-->已关闭-->代码重复/相似-->无效提交 (;′⌒`) 提交PR-->测试失败✖️-->已关闭-->代码不合格-->无效提交 (;′⌒`)
✅ 参赛资格
- 你提交的PR样本中,至少有 1 个样本被评审通过并正式整合到“GPU CodeForces” 数据集,即可算作有效参赛。
⚠️注意事项
-
请勿抄袭他人代码或成果
-
请勿恶意提交(如相同算子多次提交、相近优化重复提交)
---相近优化:即指同一份参赛用例在优化后加速比没有提升或更低的用例提交 -
请遵守提交的格式要求、内容规范
🏅 竞赛排名机制
-
优先按接受数量从高到低排序作为排名,取前12名。
-
若接受数量相同:
-
比较总基础评分高者优先
-
若仍相同,比加分项得分高者优先
-
接受数量 = 提交并被评审通过的样本总数
接受数量相同需要区分排名时如下的评分规则才会生效
📈 评分规则
📊 基础得分
| 内容 | 分值 |
|---|---|
| 提供标准 GT 输出生成函数(Numpy-CPU / 原始框架实现) | +2 分 |
| CUDA 执行时间评估 | +5 分 |
| CUDA 吞吐量评估 | +4 分 |
| CUDA 内存带宽评估 | +3 分 |
✨ 加分项
| 内容 | 分值 |
|---|---|
| 提供 Prompt 让 LLM 生成对应的 CUDA 代码,并同样进行性能评价 | 额外加分 |
📚 术语解释
-
评测数据集:用来测试 GPU 性能的一组标准化样本,包括代码、输入数据和预期结果。
-
GT(Ground Truth):标准参考答案或结果,用来验证程序运行是否正确。
-
吞吐量(Throughput):每秒钟能处理的数据量,越高表示 GPU 处理能力越强。
-
内存带宽(Memory Bandwidth):单位时间内 GPU 内存与计算核心之间的数据传输速度。
-
Prompt:引导大语言模型(LLM)生成代码或内容的提示词。
-
LLM:Large Language Model,大语言模型,如 ChatGPT、LLaMA 等。
📬 联系与帮助
如需更多信息或格式说明,请查看官方文档或在本仓库提交想法进行讨论,或直接在交流群内与主办团队进行沟通。
祝各位挑战成功,贡献出高质量的 GPU 评测数据集!🚀