课程项目:AI 编译器 #7
一、算子接入
涉及仓库
InfiniTensor 仓库及分支:https://github.com/InfiniTensor/InfiniTensor/tree/refactor_kernels
统一算子库仓库及分支:https://github.com/PanZezhong1725/operators/tree/dev
开发流程
- 在统一算子库开发 kernel 的实现及测试(新增算子需要给出接口文档,
算子库接口文档示例.md,要求返回值信息详细描述错误码对应的错误情况,参考 cudnnConvolutionBackwardBias); - 在 InfiniTensor 中接入统一算子库,接入步骤参见 AI 编译器第五节课介绍;
- 先 fork 各仓库,然后以 pr 的方式向对应分支提交修改。(pr 名称请以 【训练营】开头,且指定 reviewer 为 kilinchange。或者将 pr 链接作为邮件内容发送至 duanchenjie@qiyuanlab.com)
算子列表
- clip(clip)(精度要求:atol=0,rtol=0)
- where(bool 类型按 uint8_t 类型存储)(where)(精度要求:atol=0,rtol=0)
- gather(gather)(精度要求:atol=0,rtol=0)
- reduceMin/reduceMax/reduceMean(参考算子库里 pool 系列算子实现方式)(reduceMax,reduceMean,reduceMin)(精度要求:fp16( atol = 0,rtol = 1e-3 ), fp32( atol = 0, rtol = 1e-5),atol 可视情况放宽,具体和导师沟通)
通过标准(实现 cpu 算子即可,感兴趣可以选择更多硬件 kernel 实现)
- 统一算子库测试通过(新增算子的测试需开发者自行添加,与 pytorch 进行精度对齐,具体参见 operators/operatorspy/tests/ 目录下已有算子测试实现);
- InfiniTensor 测试通过(新增算子的测试需开发者自行添加,cpu 只测试调用流程是否正常不报错,其余硬件与 cpu 进行对比,具体参见 InfiniTensor/test/kernels/infiniop/ 目录下已有算子测试实现)。
优秀标准
代码达到合入标准。(即经过仓库维护者进行 pr review 且开发者根据 review comment 完成修改,最后由仓库维护者 approve 该 pr)
二、硬件适配
导师:kilinchange
涉及仓库
InfiniTensor 仓库及分支:https://github.com/InfiniTensor/InfiniTensor/tree/master
项目说明
已申请天数/沐曦硬件的学员尝试将 InfiniTensor 适配到各自硬件上,可能需要修改 runtime 相关实现。
通过标准
向仓库提 pr,且全部测试通过,并给出适配过程文档(在 pr comment 里上传文档附件)。
优秀标准
代码达到合入标准;或者两种硬件均适配完成。
三、领域调研
本选题希望大家把涉及的技术讲清楚,不用凑字数,突出重点就行,所以没有给大家定模板和字数要求。
可以参考
PagedAttention 介绍.pdf。
报告发送至 duanchenjie@qiyuanlab.com。
论文研读
导师:kilinchange
OSDI, SOSP, PPoPP, SC, ATC, EuroSys, ASPLOS, PLDI, MLSys 会议 ML 相关 track。
从上述会议选取 AI 系统相关论文进行深入研读
trt tuning 机制调研
导师:Ziminli
调研 trt 的 tuning 机制以及操作流程。
通过标准
对上述主题进行调研,也可以自行选择 AI sys 领域新技术/框架进行调研,形成报告提交。(导师评价判断是否达到通过标准)
优秀标准
InfiniTensor 团队针对报告内容筛选出优秀报告。
All reactions
Replies: 4 comments
更新了领域调研主题和通过标准。
All reactions
更新了【一、算子接入】各算子的精度标准
All reactions
更新:
- 更新了【硬件适配】选题的通过标准和优秀标准;
- 补充了【领域调研】选题的要求、示范文档和邮箱信息。
All reactions
更新了项目一提 pr 时的名称要求,和 reviewer 指定。