芯片层 开放阅读

Tiling

Tiling / Blocking

概念 ID
tiling-blocking
更新时间
2026-05-29
来源数量
待补

Tiling

3 秒看懂

Tiling(分块/分片)是编译器与手工优化中的核心技术,它将深度学习里动辄数千维的张量计算切割成大量尺寸精巧、能完整塞进高速缓存(如 GPU 共享内存、L1/L2 cache)的小块。这让数据在昂贵的片上存储器中被反复复用,使算力瓶颈从内存带宽转向计算单元,从而大幅压缩延迟、降低功耗。

3 分钟产业解释

在 AI 训练与推理集群中,Tiling 已深度固化到主流编译器(XLA、TVM、MLIR、Triton)的自动调度与代码生成阶段。它决定卷积、矩阵乘、注意力等算子如何在 Tensor Core、脉动阵列上被“切块”,直接控制单位时间能喂入计算核心的数据量。若分块参数不合理,片上存储就会“饿死”执行单元,使昂贵的高带宽内存(HBM)沦为瓶颈。业界评估 Tiling 质量的两个核心标尺是:算术强度(Arithmetic Intensity)达到峰值算力的比例。NVIDIA 的 cuDNN、TensorRT 等闭源库,已预先为各代架构(Volta、Ampere、Hopper、Blackwell)内置了高度精炼的 Tiling 策略;而在自定义算子或新兴模型(如 MoE、变长序列)中,编译器自动 Tiling 搜索(TVM 的 AutoTVM/Ansor、Triton 的启发式分块)成为关键竞争力。近年来,Tiling 与 IO 感知算法的结合更催生了 FlashAttention 这类变革性工作,证明分块优化有能力重塑大模型的存算边界。

技术原理

为什么需要 Tiling:内存墙与 Roofline 模型

现代 AI 加速器的计算能力增速远超内存带宽增速。以 NVIDIA H100 SXM5 为例,其 FP16 Tensor Core 峰值算力约 989 TFLOPS,HBM3 带宽为 3.35 TB/s。(来源:NVIDIA H100 数据手册,2022)若每个浮点操作需从 HBM 读取 2 字节数据,理论上最大可达算力会被带宽限制在约 1.6 TFLOPS。只有让数据在片上缓存中被反复使用,提高算术强度(FLOPS/Byte),才能跨越 Roofline 模型的拐点,真正触达计算瓶颈。Tiling 就是提升算术强度的核心手段。

基本 Tiling 模型

以矩阵乘法 C_{m \times n} = A_{m \times k} \times B_{k \times n} 为例。若直接计算,每个元素都需要从 HBM 读取 A 的一行与 B 的一列,数据复用率低。将 m、n、k 分别切分为 m_{text(tile)}n_{text(tile)}k_{text(tile)} 后,块内所需的数据可完整驻留在片上共享内存。沿 k 维度逐次累加时,A 与 B 的子块被反复复用,全局内存访问量骤降。算术强度与块大小正相关,当强度超过硬件平衡点,性能便由计算吞吐决定。

分层 Tiling 与 GPU 内存系统

GPU 的内存层次(全局内存 → L2 → L1/共享内存 → 寄存器)要求进行多级 Tiling。

  • Thread Block Tile:将输出矩阵切分为多个线程块,每个块协作加载 A、B 的 Tile 到共享内存。
  • Warp Tile:线程块内以 32 线程的 Warp 为单位,从共享内存加载更细粒度的子块到寄存器。
  • 寄存器 Tile / 向量化:每个线程在寄存器内对极小尺寸的 Tile 进行累加,配合向量化指令(如 mma.sync.aligned 系列)调度至 Tensor Core。

这样形成三级分块,每级匹配特定硬件资源容量与带宽,实现数据局部性最大化。为掩盖访存延迟,常常采用双缓冲或 NVIDIA Hopper 架构引入的 TMA(Tensor Memory Accelerator)异步拷贝,将数据搬运与计算重叠。

与融合、循环重排的协同

现代编译栈(如 XLA)在做算子融合后形成巨型 kernel,Tiling 必须在融合边界内统一规划所有算子的访存模式。例如将卷积→BatchNorm→ReLU 融合,需要设计不规则的 Tile 形状,使中间计算结果直接在寄存器/共享内存中传递。循环重排(Reorder)也会改变分块维度顺序,与 Tiling 协同以最大化向量化宽度。

自动 Tiling 的数学框架:多面体模型

多面体模型(Polyhedral Model)将循环嵌套表示为迭代空间内的多面体,把 Tiling、Loop Interchange、Skewing 等变换形式化为在多面体上的仿射调度变换。像 ISL 这样的库提供了对整数集的运算,编译器可用整数线性规划在预定义的硬件成本模型上搜索近似最优的块大小与调度。但该模型对动态形状、非仿射访存支持有限,因此近年兴起的调度语言(如 Triton)采用了更务实的基于块编程的显式 Tiling 思路。

自动搜索策略

  • AutoTVM / Ansor:通过模板定义调度空间,用模拟退火、遗传算法或强化学习在真实硬件上迭代测量,寻找最佳分块参数。
  • Halide / TVM Compute & Schedule 分离:将算法描述与 Tiling 调度解耦,允许搜索器探索丰富的分块、向量化、循环展开组合。
  • Triton 块编程:要求开发者显式声明分块尺寸,编译器在给定块内进行局部优化,大幅缩小搜索空间。

关键参数

Tiling 的效能由多个存在张力关系的参数共同决定,任何单一维度的过度优化都会损害整体性能。

参数含义与权衡
Tile 尺寸块越大,数据复用越充分,算术强度越高,但占用的共享内存/寄存器也越多,导致线程块数量减少,降低占用率(Occupancy),使 GPU 无法隐藏访存与计算延迟。
分块维度顺序在矩阵乘中,k 维分块决定共享内存用量和全局内存事务次数;m/n 维分块影响线程块与 Warp 级并行度。对卷积等非规整算子,需综合考虑输入/滤波器/输出三维的切分。
Warp Tile 与寄存器大小过大的 Warp Tile 导致寄存器溢出(Register Spilling)到 L1 缓存或局部内存,显著降低访存速度。典型平衡点是让每个线程使用的寄存器数控制在 64~128 之间(视架构而定)。
双缓冲深度使用异步拷贝指令(如 cp.async)时需排队多个 Tile 的加载,双缓冲深度决定可容忍的加载延迟与共享内存占用。Hopper 架构的 TMA 单元进一步减少了寄存器压力。
边界处理策略当维度无法被 Tile 大小整除,产生边缘块。可填充(padding)到对齐尺寸,或插入条件分支。填充引入额外计算和显存占用;条件分支易导致 Warp Divergence。
L1/Shared Memory 配比部分 GPU 支持可配置共享内存与 L1 缓存大小(如 64KB+32KB),Tiling 策略需根据算子的数据重用特性调整分配比例。
批次效应在小 batch 推理时,M、N 维度较小,过度的分块可能让许多线程块空洞,此时倾向使用流式策略较小 Tile 或融合 batch 维度的分块。

上述数值无统一检索数据,具体阈值取决于 GPU 架构与 CUDA Toolkit 版本。

技术路线

Tiling 技术路线按自动化程度和表达范式可划分为四大类。其演进贯穿了 HPC 到 AI 的全周期。

1990‑2000 年代:循环分块作为 CPU 缓存优化的经典手段,多用于科学计算。 2010‑2016:GPU 兴起,NVIDIA 手工调校 cuBLAS、cuDNN,针对特定矩阵形状和 GPU 架构编写高度汇编级 Tiling。CUTLASS 开源模板库将手工优化模式抽象化。 2016‑2021:TVM、Halide 引入调度与算法分离,AutoTVM 通过机器学习自动搜索 Tiling 参数;XLA 使用启发式与成本模型进行 Tiling;MLIR 的 Linalg 方言开始用层次化表示承载 Tiling 变换。 2022‑至今:以 FlashAttention 为代表的 IO 感知算法将 Tiling 与重计算结合;Triton 语言推动块级编程,简化自定义 Tiling;MLIR 逐渐成为跨架构 Tiling 的统一中间表示;NVIDIA Hopper 的 TMA 专用硬件让异步 Tiling 成为库标配。

路线代表系统优化质量新硬件适配表达通用性优点缺点
手工优化库NVIDIA cuDNN, cuBLAS, Intel oneDNN极高,针对特定架构微调需大量人力重写低,专用于特定算子极致性能封闭、固化,难以覆盖长尾算子
模板化自动 TilingTVM AutoTVM, Halide Generator中高,依赖模板设计需添加新调度模板中等半自动,较好的性能/扩展平衡搜索空间受模板限制
自适应搜索式 TilingTVM Ansor, Tiramisu高,常超越模板手工自动适配,依赖代价模型较广搜索空间大,发现非直觉分块搜索时间长,对动态形状支持有限
多面体编译 TilingPlaidML(早期),Polygeist, MLIR Affine理论可达最优需重新为硬件建模极强,可表达任意仿射变换数学严格,能保证合法变换对非仿射、动态形状支持弱,编译时间长
块编程 + 编译优化Triton, OpenAI高,开发者控制块大小编译器适配硬件特性中高,以块为基本单元控制与自动结合,开发效率高于手写 CUDA仍需人工设定分块参数,编译器优化不透明

数据来源:基于各项目文档与学术论文(TVM、Ansor、FlashAttention 等),无单一市场报告。

上游

Tiling 的上游技术要素包括:

  • 硬件参数建模:必须精确获取片上存储容量、带宽、延迟、每个 SM/Compute Unit 的最大线程数、寄存器文件大小、向量化宽度、异步拷贝引擎数量等。例如 NVIDIA 的 cudaDeviceGetAttribute 接口提供参数,AMD 的 ROCm 也有对应查询。编译器以此构建代价模型。
  • 中间表示(IR)设计:Tiling 变换需要 IR 能表达多级循环嵌套和缓冲区映射。MLIR 的 Linalg、Affine、SCF 方言提供了结构化表示,允许在 IR 级别标记 Tiling 属性。
  • 调度语言与编译基础设施:如 TVM 的 Tensor Expression 和 Schedule,Elevate,以及底层依赖 LLVM / NVPTX 后端。
  • 自动调优前端:提供 Python API 或 DSL,允许用户定义搜索空间与测量回调,联系硬件进行自动分块搜索。

下游

Tiling 策略最终在运行时生效,下游涉及:

  • 运行时系统与驱动:CUDA Runtime、Vulkan Compute、ROCm 等的 Kernel Launch 要根据 Tiling 确定的 Block / Grid 尺寸起线程,并分配共享内存、TMA 描述符。
  • 推理引擎与自动部署工具:TensorRT、ONNX Runtime、OpenVINO 将预优化的 Tiling 参数固化到执行引擎中,针对不同 batch size 进行特化。
  • 性能分析器:Nsight Compute、rocProf、DirectML 性能面板等工具直接展示 L1/共享内存命中率、全局访存事务数量、寄存器溢出次数,验证 Tiling 效果,反馈调整参数。
  • 自研 AI 芯片软件栈:如 Graphcore 的 Poplar 编译器、寒武纪的 BangLang,它们将 Tiling 与芯片内部数据流映射绑定,是差异化的关键。

受益公司

Tiling 能力直接构成以下公司的硬件或软件护城河:

  • NVIDIA:cuDNN、cuBLAS、CUTLASS 内建极致 Tiling,配套闭源工具链,是其 GPU 生态最核心竞争力之一。2023 年推出的 H100 与 2024 年的 B200,均通过 Nsight 等工具暴露 Tiling 细节。
  • Google:XLA 编译器针对 TPU v4/v5 定制 Tiling,用于内部训练和推理(搜索、翻译、Gemini),并通过 JAX/TensorFlow 对外提供部分能力。
  • Intel:oneDNN 库为 CPU(Xeon)和 GPU(Arc、Ponte Vecchio)提供手工优化 Tiling;MLIR 方面积极推动通用 Tiling Pass,希望统一异构加速器。
  • AMD:ROCm 生态中的 MIOpen 与 Composable Kernel 库,结合 HIP,在 MI300X 等 Instinct 加速器上构建 Tiling 竞争力。
  • 高通:Hexagon NPU 与 AI Engine 通过 QNN SDK 实现自定义 Tiling,影响移动端和汽车端 AI 推理效率。
  • 苹果:Core ML 与 ANE 编译器对 Transformer 模型做精细 Tiling,在 M 系列芯片上平衡能效比。
  • 华为:昇腾 CANN/TBE 提供自动 Tiling 工具,适配达芬奇架构,公开资料未见具体参数。
  • 初创与开源商业化公司
    • OctoML(TVM 商业化):为云厂商提供自动调优与 Tiling 优化服务。
    • Modular:开发 Mojo 与 MAX 引擎,试图通过统一的编译层(含 Tiling)简化 AI 部署,获得多轮融资。
    • SambaNova、Cerebras:晶圆级芯片需要编译器将模型映射到海量计算单元,Tiling 与数据流路由一体化,是技术壁垒。
    • Graphcore(未上市/被收购):其 IPU 编译器 Poplar 将 Tiling 与独特的图调度结合。

以上未提及任何买卖建议,仅展示技术关联。

市场规模

Tiling 是编译优化技术的一环,不形成独立的核算单元。综合多方报告:

  • AI 软件平台市场:据 Fortune Business Insights(2023 年 9 月),2022 年全球 AI 软件平台市场规模约 550 亿美元,但包含训练框架、推理引擎、数据管理,Tiling 仅为其深嵌的组件。
  • AI 编译器赛道:公开资料未见针对 AI 编译器或 Tiling 优化技术的独立市场规模测算。部分咨询机构将 TVM、XLA、Glow 等归入“MLOps 工具链”细分赛道,预计 2023–2028 年复合增速约 40%(来源:P&S Intelligence 2024 年),但口径未剔除非编译器部分。
  • 成本占比视角:在云厂商和自研芯片企业的研发支出中,编译器优化(含 Tiling 开发)通常作为软件平台投入,无公开拆分。据 NVIDIA 2024 财年年报(截至 2024 年 1 月),研发费用 86 亿美元,其中绝大多数用于硬件、CUDA 和 AI 库,但并未单列 Tiling。

因此,直接关联 Tiling 的量化市场数据公开资料未见,可认为其价值隐含在 AI 芯片、训练/推理服务及编译基础设施的总市场中,随模型复杂度和推理需求增长而同步攀升。

玩家对比

以实际落地能力与影响力为维度,主流 Tiling 技术持有者的特征如下表所示。

玩家/项目类型优化方式硬件覆盖开源核心优势短板
NVIDIA cuDNN + CUTLASS闭源库+开源模板手工精细化 + 自动搜索(CUTLASS 3.x)NVIDIA GPU 全系列CUTLASS 开源,cuDNN 闭源性能极致,持续更新,与架构深度绑定仅限 NVIDIA 生态,自定义算子门槛高
TVM / Ansor(Apache)开源编译器模板 + 自适应搜索NVIDIA、AMD、Qualcomm、ARM CPU 等多种硬件适配范围广,Ansor 搜得细搜索时间长,新硬件仍需人力设计算子表达
Triton(OpenAI)开源 DSL + 编译器块级显式分块 + 自动优化NVIDIA GPU(主要),AMD 支持中开发效率高,接近手写 CUDA 性能,社区活跃需手动指定块大小,对非 NVIDIA 硬件成熟度有限
XLA(Google,主要闭源)编译器启发式 + 成本模型TPU、NVIDIA GPU、CPU部分代码公开大模型训练推理管道成熟,与 TF/JAX 集成对第三方硬件支持依赖合作,自定义优化困难
MLIR Linalg 等相关方言开源编译器框架多层次 Tiling Pass + 多方参与借助下游编译目标支持多硬件表达通用,可综合不同路线,业界联盟化端到端性能优化仍需要大量人力,尚在完善
Intel oneDNN / DPC++开源库 + 编译器手工优化 + 基于 SYCL 的自动分块Intel GPU、CPU、FPGACPU 侧性能极佳,跨 Intel 硬件一体化对非 Intel 硬件支持有限
华为 CANN / TBE自研闭源自动分块 + 模型适配昇腾系列针对达芬奇架构定制,内部模型性能高生态封闭,公开资料较少

对比基于公开技术博客、学术论文(如 OSDI’18 TVM,OSDI’20 Ansor, arXiv:2205.14135 FlashAttention)及各项目官方文档,未涉及商业机密。

风险

  1. 硬件迭代过快导致优化滞后:新架构(如 HBM3e、特殊数据流单元)出现后,手工/半自动 Tiling 需要数月才能产出匹配库,成为新芯片推广的短板。
  2. 自动搜索时间成本高:Ansor 等对单个算子进行完整搜索需数小时乃至数天,与敏捷迭代、持续集成流程存在冲突,可能迫使团队退化为手工或次优方案。
  3. 动态形状与稀疏性挑战:MoE、可变序列长度、稀疏注意力等场景导致张量维度在运行时变化,静态编译的 Tiling 难以覆盖所有情况,动态分块会引入额外指令开销。
  4. 生态系统锁定:闭源库(如 cuDNN)的深度绑定使下游难以迁移至竞争对手硬件,形成事实标准壁垒,阻碍多样化硬件创新。
  5. 跨平台通用 Tiling 的“死亡地带”:MLIR 等跨层抽象虽然语义丰富,但在实际调整中容易出现性能断崖——即变换后 Kernel 速度骤降,根因调试困难,中小团队难以驾驭。
  6. 人才稀缺:掌握上层 AI 框架和底层 PTX/汇编之间多层次 Tiling 的工程师极少,导致关键优化依赖头部大厂或少数专家,制约行业发展。

误读纠偏

  • 误读1:“Tiling 就是简单的循环切分,编译器自己就能做得很好。” 纠偏:在实际多维张量运算中,最优 Tile 大小、分块顺序及多级分配是极复杂的组合优化问题。手工优化的 cuDNN 为每种矩阵形状和架构存储了大量精细调优的汇编 Kernel;自动编译搜索在部分场景仍有 10%~20% 的性能差距,且搜索过程漫长,远未到“编译器自己做就行”的水平。

  • 误读2:“只要把计算全部搬到片上内存就算完成 Tiling。” 纠偏:Tiling 必须平衡占用率与内存复用。若 Tile 过大导致每个 SM 能驻留的线程块减少,Warp 调度器无法隐藏访存延迟,整体吞吐反而可能下降。且寄存器和共享内存过度使用也会造成溢出,降低性能。Tiling 是多目标帕累托优化,不是简单的“全搬上去”。

  • 误读3:“FlashAttention 的成功完全归于 Tiling。” 纠偏:FlashAttention 同时采用了 Tiling 与重计算(Recomputation)策略。Tiling 让注意力计算分块执行,避免了完整 QK^T 矩阵写入 HBM;而重计算在反向传播时重新计算部分中间值,进一步节省了全局内存。两者缺一不可,它是 IO-aware 算法设计的范式胜利,并非单纯 Tiling 技术的魔力。

  • 误读4:“Tiling 仅对训练重要,推理用不上。” 纠偏:大模型推理的延迟高度依赖权重的预加载和激活的复用。针对推理场景的特化 Tiling(如按 batch size 调优、权重量化后的分块)能显著提升 tokens per second 并降低功耗。TensorRT 等推理引擎的核心竞争力之一就是针对不同 batch 的 Tiling 配置优化。

最新事件

  • 2024 年 7 月,FlashAttention-3 发布:在 H100 上利用 TMA 与 Warp Group MMA 指令重新设计 Tiling,使 FP8 注意力速度比 FlashAttention-2 提升 1.5~2.0 倍,进一步验证异步 Tiling 在 Hopper 架构的潜力(来源:Tri Dao 等 arXiv 论文)。
  • 2024 年 GTC,NVIDIA 宣布 CUDA 12.4 中增强 TMA 支持:CUTLASS 3.x 正式集成 TMA 加载的 Tiling 模式,允许开发者在自定义 Kernel 中用少数 API 实现零拷贝分块传输(来源:NVIDIA Developer Blog 2024)。
  • 2023–2024,Triton 语言爆发式采纳:PyTorch 2.0 引入 TorchInductor 后端,大量使用 Triton 进行算子 Tiling 与代码生成;AMD 也宣布推出面向 MI300 的 Triton 后端(来源:AMD GPUOpen 博客,2023 年 10 月)。
  • MLIR 生态系统成熟:Linalg 的 Tiling Pass 与 Vectorization 实现模块化,IREE 等项目展示了从 MLIR 到 CUDA/ROCm 的自动 Tiling 流程,被用于高通 Hexagon 和苹果 Metal 的推理部署(来源:LLVM Dev Meeting 2023 演讲)。
  • SambaNova 推出 Samba-1 系统:以粗粒度可重构数据流架构,将 Tiling 与算子映射编译一体化,据公司 2023 年技术通报,某些大语言模型推理能效优于同期 GPU,但数据仍在第三方验证中。

跟踪指标

若要持续评估 Tiling 策略的实际收益,可关注以下量化指标(均以特定硬件和 Benchmark 为基准):

  • 达成峰值算力占比:Kernel 实际 TFLOPS / 硬件该精度理论峰值,目标 > 80%(公开资料未见统一阈值)。
  • 算术强度:浮点运算次数 / 全局内存访问字节数,通过 Nsight Compute 或 rocProf 获取。
  • L1/共享内存命中率:通常要求 ≥ 90% 的数据访问来自片上,否则提示 Tiling 不当。
  • 全局内存事务数量与合并度:理想的 Tiling 应将访问合并为 128 字节对齐事务,未合并比率高说明分块未对齐。
  • Occupancy:活跃 warp 占理论最大 warp 的比值,极限值随架构而异,典型目标 50%~75%。
  • 寄存器溢出次数:通过编译器报告或 profiling 查看 local memory 使用,理想为 0。
  • 自动搜索效率:达到收敛所需测量数量或时间(如 Ansor 搜索 1000 个配置后的提升百分比)。
  • 动态形状性能方差:在不同 batch、序列长度下 Kernel 时间的标准差,反映 Tiling 鲁棒性。
  • 边缘块开销占比:填充或分支导致的额外周期占 Kernel 总周期比例,通常希望 < 5%。
  • 能效比:每瓦特 TFLOPS 或推理 tokens/Joule,云厂商和端侧部署尤为看重。

信源

  1. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (Dao et al., NeurIPS 2022)
  2. FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning (Dao, 2023)
  3. FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision (Shah et al., 2024)
  4. TVM: An Automated End-to-End Optimizing Compiler for Deep Learning (Chen et al., OSDI 2018)
  5. Ansor: Generating High-Performance Tensor Programs for Deep Learning (Zheng et al., OSDI 2020)
  6. CUTLASS: NVIDIA CUDA Templates for Linear Algebra Subroutines (https://github.com/NVIDIA/cutlass)
  7. NVIDIA H100 白皮书 NVIDIA H100 Tensor Core GPU Architecture (2022)
  8. Triton: An Intermediate Language and Compiler for Tiled Neural Network Computations (Tillet et al., MAPS 2019)
  9. MLIR: MLIR: A Compiler Infrastructure for the End of Moore’s Law (Lattner & Pienaar et al., 2020)
  10. 行业报告: Fortune Business Insights, Artificial Intelligence Software Platform Market, 2023; P&S Intelligence, MLOps Market Overview, 2024 (关于 AI 编译器部分仅作背景引用)
  11. NVIDIA Developer Blog: CUDA Toolkit 12.4 Released (2024)
  12. AMD GPUOpen: Announcing the Triton open source kernel language (2023 年 10 月) 注:本概念页所有公司财务、市场份额、产能数字均标明来源与年份,未标注之处均为公开资料未见或基于学术论述的定性描述,不构成任何投资建议。
source: 公开披露与公开资料整理 本页仅用于产业链学习、信息检索和研究辅助;不构成投资建议,不预测涨跌,不提供买卖、仓位或目标价建议。
完整概念页 复盘 13 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型