| @@ -1 +1,116 @@ | |||
| # GPUKernelContest | |||
| # GPU 算子优化挑战赛 | |||
| 欢迎参加 **GPU 算子优化挑战赛** 🎯! | |||
| 本比赛旨在通过优化深度学习框架中的核心计算模块,提升大模型的运行效率。在本仓库中,你可以提交你的优化代码、测试样例和使用说明。 | |||
| --- | |||
| ## 🧠 比赛背景简介 | |||
| 随着大语言模型(LLM, 如 ChatGPT 等)的广泛使用,其在运行推理时对计算资源的要求越来越高,出现了所谓的 “三高” 问题: | |||
| - **高延迟**:响应慢 | |||
| - **高显存占用**:消耗大量显存 | |||
| - **高生态依赖**:对系统和软件依赖复杂 | |||
| 本次挑战赛正是为了解决这些问题,鼓励选手**优化 GPU 上的底层算子(即最基础的数学运算模块)**,提高模型推理效率。 | |||
| --- | |||
| ## 🔧 挑战方向 | |||
| 本次挑战主要有两个技术方向: | |||
| ### 1. Test Time Scaling 算子优化 | |||
| - 对深度学习框架中的基础算子(如 PyTorch 或 PaddlePaddle 中的矩阵乘法)进行性能优化。 | |||
| ### 2. Gemm 内核极致优化 | |||
| - **GEMM(General 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 单卡**(支持图形显示 + 性能评估) | |||
| --- | |||
| ## 💡 术语解释 | |||
| - **算子(Operator)**:指深度学习框架中的基本计算模块,例如矩阵乘法、卷积等。 | |||
| - **GEMM**:全称 General Matrix Multiplication,一种用于矩阵计算的核心算法,是大模型中的基础运算。 | |||
| - **MMA**:Matrix Multiply-Accumulate,多维矩阵乘加运算,适用于复杂计算加速。 | |||
| - **LLM**:Large Language Model,大语言模型,如 GPT、BERT 等。 | |||
| - **推理(Inference)**:模型训练完成后,用来“预测”或“使用”的过程。 | |||
| - **Prompt**:用于引导大模型生成特定内容的输入提示词。 | |||
| - **PR(Pull Request)**:在 Git 仓库中提交你的修改请求,供维护者审查后合并。 | |||
| --- | |||
| ## 📬 联系与帮助 | |||
| 如需帮助或有疑问,请联系主办方或在项目中发起 Issue。 | |||
| 祝你挑战顺利,优化出更快的大模型推理体验!🚀 | |||