ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

164、MLIR的HBM(高带宽内存)与GDDR优化

164、MLIR的HBM(高带宽内存)与GDDR优化 MLIR的HBM与GDDR优化:一次带宽踩坑实录去年在调一个AI推理引擎的MLIR后端时,遇到一个诡异的性能问题:同样的计算图,在A100上跑出理论带宽的85%,换到H100上反而掉到60%。当时盯着nvidia-smi的带宽利用率,百思不得其解。后来扒开MLIR的affine loop tiling和memory space映射,才发现问题出在HBM的bank conflict和GDDR的page burst上。今天就把这些坑掰开揉碎,聊聊MLIR里怎么针对高带宽内存做优化。从一次bank conflict说起先看一个典型的MLIR片段,这是某个卷积算子的tiling后代码:#map = affine_map(d0, d1) - (d0 * 64 + d1) func.func @conv_tiled(%input: memref1024x1024xf16, 3, %output: memref1024x1024xf16, 3) { affine.for %i = 0 to 1024 step 64 { affine.for %j = 0 to 1024 step 64 { // 这里踩过坑:直接按行连续访问,HBM bank冲突爆炸 affine.for %ii = 0 to 64 { affine.for %jj = 0 to 64 { %val = affine.load %in
返回列表