GPUKernelContest/README.md

118 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# GPU 算子优化挑战赛GPUKernelContest
欢迎参加 **GPU 算子优化挑战赛** 🎯!
本比赛旨在通过优化深度学习框架中的核心计算模块,提升大模型的运行效率。在本仓库中,你可以提交你的优化代码、测试样例和使用说明。
---
## 🧠 比赛背景简介
随着大语言模型LLM, 如 ChatGPT 等)的广泛使用,其在运行推理时对计算资源的要求越来越高,出现了所谓的 “三高” 问题:
- **高延迟**:响应慢
- **高显存占用**:消耗大量显存
- **高生态依赖**:对系统和软件依赖复杂
本次挑战赛正是为了解决这些问题,鼓励选手**优化 GPU 上的底层算子(即最基础的数学运算模块)**,提高模型推理效率。
---
## 🔧 挑战方向
本次挑战主要有两个技术方向:
### 1. Test Time Scaling 算子优化
- 对深度学习框架中的基础算子(如 PyTorch 或 PaddlePaddle 中的矩阵乘法)进行性能优化。
### 2. Gemm 内核极致优化
- **GEMMGeneral Matrix Multiplication** 是大模型中的核心计算操作。
- 目标是对其内核Kernel进行精细调优提高执行效率。
👉 **项目目标:在不更换硬件的前提下,让推理速度提升 30%**
---
## 📥 如何参与提交?
### ✅ 参赛要求:
- 提交内容必须可以在沐曦自研 GPU **曦云 C500** 上运行。
- 所提交的优化代码将由主办方审核,**需成功合并Merge到官方 Gitee 仓库,才算有效提交。**
### 📦 提交内容包含:
- 算子优化后的代码
- 可运行的测试用例
- 使用说明文档
---
## 📈 评分机制
每次提交会按以下规则评分:
### 🎯 基础得分Level
| 等级 | 内容描述 | 分值 |
|------|----------|------|
| Level 1 | 优化一个 PyTorch / Paddle 算子 | 5 分 |
| Level 2 | 融合优化 2~9 个算子 | 10 分 |
| Level 3 | 含 MMA多维矩阵乘融合算子 | 50 分 |
| Level 4 | 用于大模型推理的复杂融合算子 | 50 分 |
| 合并至沐曦正式项目仓库 | - | 50 分 |
### ✨ 加分项:
| 内容 | 分值 |
|------|------|
| 代码规范、清晰 | +10 分 |
| 性能优化明显 | +10 分 |
| 记录优化过程、说明模型来源 | +20 分 |
| 使用 LLM Prompt 自动生成代码及样例 | +20 分 |
**注意:** 甲方只针对于在基础得分相同的情况下通过加分项来区分不同的排名和后续优秀选手的参考。
---
## 🏅 排名规则
- 比赛周期2 个月
- 排名按累计得分排序,取前 12 名!
若得分相同:
1. 提交次数多者优先
2. 提交时间早者优先
---
## 📚 官方参考项目仓库
你可以参考以下项目仓库,了解算子开发与提交格式:
- [FlashMLA](https://github.com/MetaX-MACA/FlashMLA)
- [mcTVM](https://github.com/MetaX-MACA/mcTVM)
- [mcEigen](https://github.com/MetaX-MACA/mcEigen)
- [mcPytorch](https://github.com/MetaX-MACA/mcPytorch)
---
## 🖥️ 可用资源
- 曦云 **C500 GPU 1/2卡**,主办方通过算力券的形式发放给报名的同学。
---
## 💡 术语解释
- **算子Operator**:指深度学习框架中的基本计算模块,例如矩阵乘法、卷积等。
- **GEMM**:全称 General Matrix Multiplication一种用于矩阵计算的核心算法是大模型中的基础运算。
- **MMA**Matrix Multiply-Accumulate多维矩阵乘加运算适用于复杂计算加速。
- **LLM**Large Language Model大语言模型如 GPT、BERT 等。
- **推理Inference**:模型训练完成后,用来“预测”或“使用”的过程。
- **Prompt**:用于引导大模型生成特定内容的输入提示词。
- **PRPull Request**:在 Git 仓库中提交你的修改请求,供维护者审查后合并。
---
## 📬 联系与帮助
如需帮助或有疑问,请联系主办方或在项目中发起 Issue。
祝你挑战顺利,优化出更快的大模型推理体验!🚀