ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

150、MLIR的Tensor Core与Matrix Core指令映射

150、MLIR的Tensor Core与Matrix Core指令映射 MLIR的Tensor Core与Matrix Core指令映射从一次诡异的性能回退说起去年在调一个BERT推理的MLIR编译流程时,遇到了一个让我抓狂的问题:同样的模型,同样的batch size,在A100上跑得好好的,换到H100上反而慢了30%。直觉告诉我,这跟Tensor Core到Matrix Core的指令映射脱不了干系。翻看生成的PTX代码,发现MLIR编译器把原本应该映射到H100的mma.sync.aligned.m16n8k16指令,硬生生降级成了mma.sync.aligned.m16n8k8,然后通过循环拼接。这相当于你开着一辆法拉利,变速箱却只给你挂二档。Tensor Core与Matrix Core:不只是名字不同很多人以为Tensor Core和Matrix Core只是NVIDIA和AMD对同一类硬件的不同叫法,这是个大坑。Tensor Core是NVIDIA从Volta架构引入的专用矩阵乘累加单元,而Matrix Core是AMD在CDNA架构中推出的对标方案。两者在指令集、数据布局、Warp协作方式上都有本质差异。在MLIR的LLVM方言中,Tensor Core的指令映射走的是nvvm.mma.sync路径,而Matrix Core对应的是rocdl.mfma路径。如果你在MLIR的gpu方言中写了一
返回列表