AI 编译器准备

B站影视 日本电影 2025-04-21 00:40 1

摘要:4年图形驱动(熟悉 GPU 架构,Shader instruction,以及大量 Shader debug 经验) 加一年图形编译器(LLVM)经验,想转 AI 编译器。下面是自己的准备内容。

4年图形驱动(熟悉 GPU 架构,Shader instruction,以及大量 Shader debug 经验) 加一年图形编译器(LLVM)经验,想转 AI 编译器。下面是自己的准备内容。

(准备内容只针对特定 JD 岗位)

准备优先级:编译原理 = LLVM = 项目经历 > MLIR = AI model = CUDA / HIP > 其他 AI 编译器技术

一 名词理解图优化循环优化多面体优化用仿射变换将多层循环中的下标组合映射为高维空间中的多面体中的点。再用仿射变换可以得到下标到 statement 用到的 memory 的映射关系。通过分析依赖关系确定哪些可以并行,以及如何利用 cache。对相同或不同的 statement,不同的下标映射后的 memory 相同,则说明该或这些 statement 不同的循环中访问的是相同的 memory,可以尽量缩短执行间隔,或改成同样的下标,增加 cache hit rate。使用仿射变换改变循环结构(将老的下标映射为新的下标),实现优化。Ref: 内存访问优化和向量化Loop Interchange (外大内小,或许可以 cache 每次内循环的结果)tiling(分块,同理,增加 cache hit rate)循环向量化,利用 SIMD 同时执行所有 thread 中的操作。指令调度SelectionDAGIsel -> MachineScheduler-> PostMachineScheduler -> Post-Register Allocation SchedulerList, Fast, vliw列表调度 + 启发式,选择当前优先级最高的指令进行调度:关键路径优先(关键路径上表示执行的时间最长)执行周期较长的指令优先依赖关系较少的指令优先有更多后继节点的指令优先(这样后续参与调度的指令更多)减少寄存器压力的指令优先Ref: , ,内存分配 数据传输MLIRAffine Dialectisl 线代库JAXopenXLAHloMOE二 编译原理复习

理解后端的流程。

能自己讲解整个编译过程以及各个优化在 LLVM 中的对应 pass

三 项目经历复习

回顾部分 Training,TTV,RGP

回顾 MSAA copy perf drop cases. Bank conflict cases.

回顾硬件架构

能够快速口述编译器相关的经验。

四 MLIR toy 实现

五 模型和 CUDA 复习

能自己写一个 attention 的 CUDA code

和 MOE?

复习 flash attention

来源:鼠meme

相关推荐