Advertisement

Auto-TensorCore代码生成优化matmul

阅读量:

本节将展示如何借助TVM Auto TensorCore CodeGen工具,在Volta及Turing架构的GPU上实现高效矩阵乘法(matmul)的调度方案。该方法提供了一种透明的解决方案,能够自动生成在IR转换过程中完成的大部分TensorCore内核代码。同时,用户也可以通过编写带有tensorize操作的调度策略,手动生成TensorCore代码。两种方式均依赖于相同的TensorCore内部函数。如需进一步了解,可参考关于如何利用TensorCores优化卷积运算的相关文档。

准备工作与算法说明
当前方案支持两种输入数据类型:float16和int8。针对float16类型,累加器采用float32;而对于int8类型,则使用int32作为累加器。在数据布局方面,“N”代表不进行转置操作,“T”表示需要转置。

import logging
import sys

import numpy as np
import tvm
from tvm import te

from tvm import autotvm
from tvm.contrib import nvcc

def matmul_nn(A, B, L, dtype="float16", layout="NN"):
k = te.reduce_axis((0, L)

全部评论 (0)

还没有任何评论哟~