diff --git a/docs/TileLang.md b/docs/TileLang.md new file mode 100644 index 0000000..b3413d9 --- /dev/null +++ b/docs/TileLang.md @@ -0,0 +1,73 @@ +# TileLang 国产GPU开发项目文档(项目背景+快速上手+生态贡献) +## 一、项目背景 +### 1. 行业痛点:国产GPU生态的核心挑战 +当前智算与通用计算领域中,GPU内核开发面临双重困境:一方面,国际主流GPU开发语言学习成本高、代码量大,开发者需兼顾性能优化与生产力,门槛较高;另一方面,国产GPU虽在硬件性能上逐步追赶,但软件生态适配相对来说还有很大的进步空间,缺乏轻量化、高效的开发工具链,导致硬件算力难以充分释放,生态协同性不足。 + +### 2. 解决方案:TileLang的技术突破 +TileLang作为TileLang社区主导的GPU内核领域专用语言,以“高效开发+性能不妥协”为核心,针对性解决行业痛点: +- **开发效率革命**:采用Python式简洁语法,实现FlashAttention算子仅需80行代码,并保持了与官方版本持平的性能。这种代码量的大幅减少不仅降低了开发门槛,也提高了维护性和可读性。; +- **分层接口适配**:提供3个层次编程接口,覆盖从初学者到专家的全阶段需求,降低国产GPU开发门槛; +- **多硬件兼容**:已在MACA曦云C500、英伟达H100/A100、AMD MI250/MI300X等多类GPU上验证适配,支持“cuda/hip/cpu”多目标编译,兼容性广泛。 + +### 3. 生态协同:MACA与开源社区的落地支持 +为推动TileLang在国产GPU上的实际应用,MACA(国产高性能GPU代表厂商)与开源社区联合行动: +- **硬件适配**:MACA AI编译器团队和TileLang社区合作已提前参与该项目,探讨MACAGPU与TileLang的适配(开源仓库:[mcTileLang](https://gitee.com/metax-maca/mcTileLang)),通过MXMACA软件栈实现深度协同,核心算子(如DeepSeek_MLA FullCol)性能达国际主流产品的119.16%,部分场景实现超越; +- **在线环境搭建**:在模力方舟平台提供预配置的TileLang在线体验环境,开发者无需自行搭建硬件,直接基于曦云C500(64GB显存、Intel Xeon Gold 6530)来进行开发; +- **资源支持**:提供专属算力券降低体验成本,同时开源完整适配代码与文档,助力生态共建。 + +### 4. 项目意义 +本项目通过“语言工具+国产硬件+在线平台”的组合,打破国产GPU生态“硬件强、软件弱”的僵局,为开发者提供“开箱即用”的国产GPU开发方案,推动中国算力产业从“单点突破”转向“生态共荣”,助力智算、通用计算领域的国产化替代与创新发展。 + + +## 二、快速上手:TileLang国产GPU开发实践 +### 1. 环境准备:获取TileLang开发资源 +#### 在线体验 +1. 访问模力方舟算力市场:https://ai.gitee.com/compute; +2. 领取TileLang专属算力券,兑换曦云C500 GPU容器资源; +3. 选择“TileLang 0.1.5 / Python 3.10”镜像,启动容器。 + +### 2. 进阶探索:更多算子与工具 +- 查看`examples`目录:获取FlashAttention、Dequant GEMM、MLA Decoding等算子示例; +- 使用调试工具 +- 性能优化 + + +## 三、生态贡献指南:邀您共建TileLang国产GPU生态 +为持续完善mcTileLang仓库功能、降低开发门槛,诚邀所有开发者参与贡献,重点欢迎**Issue反馈**与**Docs/Example类型PR**,具体指南如下: + +### 1. 积极反馈:提交Issue助力仓库优化 +当您遇到以下场景时,欢迎通过仓库“Issues”模块提交反馈,帮助团队定位问题、明确方向: +- **功能需求**:需要新增算子示例(如卷积、稀疏注意力)、补充特定硬件适配文档; +- **Bug反馈**:运行示例代码报错、性能不符合预期、编译过程异常(需附报错日志与环境信息); +- **文档疑问**:现有文档(如安装步骤、API说明)不清晰、存在疏漏; +- **优化建议**:对内核性能、接口易用性、编译速度的改进想法。 + +> 提交Issue时,请选择对应标签(如“feat request”“bug”“doc”),描述清晰场景与需求,便于社区快速响应。 + +### 2. 主动共建:提交Docs/Example类型PR +mcTileLang仓库的`docs`(文档)与`examples`(示例)目录是生态核心组成部分,尤其欢迎以下类型PR,共建更易用的开发资源: + +#### (1)Docs类型PR:完善文档体系 +- **教程迁移**:将已有的基于cuda的教程文档迁移到metax上 +- **新增教程**:补充“TileLang布局优化实战”“MACAGPU性能调优指南”等进阶教程; +- **更新说明**:同步API变更(如新增的接口)、修正安装步骤中的过时信息; +- **补充案例**:在文档中添加“常见问题排查”(如容器启动失败、编译报错解决)。 + +#### (2)Example类型PR:丰富算子示例 +- **新增算子**:提交RetNet、Mamba等新兴模型的TileLang实现,或补充现有算子的优化版本(如支持不同精度或者混合精度的算子); +- **硬件适配**:提供算子在GPU(如曦云C500)上的适配示例与性能分析。 + +#### (3)PR提交流程 +1. Fork mcTileLang仓库到个人账号; +2. 创建专属分支(如`doc/update-install-guide`、`example/add-fp8-gemm`); +3. 完成修改后,提交PR并关联相关Issue(如没有可以自己提交Issue并进行关联); +4. 参考仓库`CONTRIBUTING.md`确保代码风格、文档格式符合规范,等待审核合并。 + + +## 四、资源汇总 +- 仓库地址:https://gitee.com/metax-maca/mcTileLang +- 在线体验:https://ai.gitee.com/compute(模力方舟曦云C500环境) +- 文档参考:《曦云系列_通用计算GPU_快速上手指南》 +- 社区交流:加入社区参与讨论(仓库README有入口) + +