background triton 是 使用 Python 来写 cuda + block内的优化交给 compiler numba 对比和triton类似的解决方案 numba BLOCK = 512 # This is a GPU kernel in Numba. @jit def add(X, Y, Z, N): # In Numba/CUDA, each kernel...
AI Compiler 中的Auto-Parallelism
AI编译器可以涉及的两种切图: (1)为了设备分布式执行切图,将计算图(静态图)切为子图, 为了在内存受限的独立设备上执行 例如:FlexFlow、Alpa (2)为了launch kernel切图(算子融合),子图对于硬件kernel可能过大,无法融合为1个kernel,为了便于在auto-scheduler时直接融(tile)为一个kernel,故将将子图切为适应硬件kernel大...
Triton 编译安装
配置python环境 建议使用conda配置,选择python3.10会稳定些 conda create -n triton_env python=3.10 根据cuda版本安装pytorch(gpu版) 例如我用的是cuda11.8,那么 conda install pytorch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 ...
GPU Arch Base Knowledge
Arch 基础 gpu层次结构图如下 thread, block, grid 1.关系 一个kernel有一个grid,一个grid有多个block,一个block有多个thread(按warp)分组 每个Grid可以最多创建65535个block,每个Block最多512个thread workgroup其实是onencl的术语,对应cuda就是逻辑上的block。 ...
Git 使用
显示当前分支 vim .bashrc 将下面的代码加入到文件的最后处 function git_branch { branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`" if [ "${branch}" != "" ];then if [ "${branch}" =...
MLIR CodeGen 总结
前言 在 MLIR Suvery 一文中较为详细地介绍了 Toy语言 接入 MLIR,经过多次 pass,最后 lower 成 LLVM IR的流程。 但 Toy 接入 MLIR 流程本质上还是高级语言的转换流程,对于深度学习框架接入 MLIR 后的 CodeGen 描述较少。 本文主要以 tensorflow 为例,介绍了其接入 MLIR 后的 CodeGen 过程,以及简要分析了一...
MLIR Survey
1. MLIR简介 MLIR 全称是 Multi-Level Intermediate Representation (多级中间表示),是一种全新的编译器框架。 1.1 IR是什么 IR即 Intermediate Representation,可以看作是一种数据格式,作为从端到端转换中的中间表示。例如深度学习模型一般表示为计算图,能够表示计算图的数据结果就可以称为一种IR,例如ONN...
IREE中的scheduler和tuning
相关项目和工具 mmperf 将测试性能的繁琐工作自动化以及可视化,常见的比较对象有TVM IREE HALIDE cublas 等,可惜已经没再更新了 SHARK 感觉像为IREE开发的tuning工具,将lowerconfig中的参数提取出来进行tuning dispatch_profiler IREE 有个调度探查器(dispatch_profiler),该调度探查器会使用...
IREE Survey
IREE 简介 IREE (Intermediate Representation Execution Environment)是一种基于MLIR的端到端编译器,可以将ML模型lower到统一的IR。 IREE具有它自己的高级表示以及一组 dialects,从代码生成的目的来说,这些 dialects 正在向 Linalg-on-tensors 的方向发展,严重依赖于tensor层级上的...
Mac 环境配置
homebrew 参考:https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/ 安装需求 对于 macOS 用户,系统自带 bash、git 和 curl,在命令行输入 xcode-select --install 安装 CLT for Xcode 即可。 对于 Linux 用户,系统自带 bash,仅需额外安装 git 和 curl。...