asc.lib.host
Ascend C提供一组Matmul Tiling API,方便用户获取Matmul kernel计算时所需的Tiling参数。 用户只需要传入A/B/C矩阵的Position位置、Format格式和DType数据类型等信息,调用API接口,即可获取到Init中TCubeTiling结构体中的相关参数。
MatmulApiTiling/MultiCoreMatmulTiling/BatchMatmulTiling共有接口列表
|
设置Bias是否参与运算,设置的信息必须与Kernel侧保持一致。 |
获取Tiling计算得到的baseK值。 |
|
获取Tiling计算得到的baseM值。 |
|
获取Tiling计算得到的baseN值。 |
|
|
获取Tiling参数。 |
|
设置A矩阵的Layout轴信息,包括B、S、N、G、D轴。对于BSNGD、SBNGD、BNGS1S2 Layout格式,调用IterateBatch接口之前, 需要在Host侧Tiling实现中通过本接口设置A矩阵的Layout轴信息。 |
|
设置A矩阵的位置,数据格式,数据类型,是否转置等信息,这些信息需要和kernel侧的设置保持一致。 |
|
设置B矩阵的Layout轴信息,包括B、S、N、G、D轴。对于BSNGD、SBNGD、BNGS1S2 Layout格式,调用IterateBatch接口之前, 需要在Host侧Tiling实现中通过本接口设置B矩阵的Layout轴信息。 |
|
设置B矩阵的位置,数据格式,数据类型,是否转置等信息,这些信息需要和kernel侧的设置保持一致。 |
设置A/B矩阵的M/N/K轴信息,以及A/B矩阵的Batch数。Layout类型为NORMAL的场景, 调用IterateBatch或者IterateNBatch接口之前,需要在Host侧Tiling实现中通过本接口设置A/B矩阵的M/N/K轴等信息。 |
|
|
设置多Batch计算的最大Batch数,最大Batch数为A矩阵batchA和B矩阵batchB中的最大值。 调用IterateBatch接口之前,需要在Host侧Tiling实现中通过本接口设置多Batch计算的Batch数。 |
|
设置Bias的位置,数据格式,数据类型,是否转置等信息,这些信息需要和kernel侧的设置保持一致。 |
|
设置Matmul计算时可用的L1 Buffer/L0C Buffer/Unified Buffer/BiasTable Buffer空间大小,单位为字节。 |
|
设置C矩阵的Layout轴信息,包括B、S、N、G、D轴。对于BSNGD、SBNGD、BNGS1S2 Layout格式,调用IterateBatch接口之前, 需要在Host侧Tiling实现中通过本接口设置C矩阵的Layout轴信息。 |
|
设置C矩阵的位置,数据格式,数据类型,是否转置等信息,这些信息需要和kernel侧的设置保持一致。 |
|
该接口用于设置量化或反量化的模式。 |
|
设置A/B/C/Bias是否使能double buffer功能,以及是否需要做ND2NZ或者NZ2ND的转换,主要用于Tiling函数内部调优。 |
|
设置A/B/C/Bias是否使能double buffer功能,以及是否需要做ND2NZ或者NZ2ND的转换,主要用于Tiling函数内部调优。 |
|
设置是否使能HF32模式。当前版本暂不支持。 |
Overloaded function. |
|
|
Overloaded function. |
|
设置Matmul计算的形状m、n、k,该形状可以为原始完整矩阵或其局部矩阵,单位为元素。该形状的矩阵乘可以由单核或多核计算完成。 |
|
设置Matmul的使用场景是否为Sparse Matmul场景。 |
|
设置baseM/baseN/baseK的最大值和最小值。 目前Tiling暂时不支持该功能。 |
|
设置固定的Matmul计算方向,M轴优先还是N轴优先。 |
MultiCoreMatmulTiling其他接口
多核场景,通过该接口使能切K轴。不调用该接口的情况下,默认不切K轴。在GetTiling接口调用前使用。 |
|
获得多核切分所使用的BlockNum参数。 |
|
获取计算后的single_core_m/single_core_n/single_core_k。 |
|
|
多核切分时, 设置single_core_m/single_core_n/single_core_k的对齐值。比如设置single_core_m的对齐值为64(单位为元素),切分出的singleCoreM为64的倍数。 |
|
设置多核Matmul时,参与运算的核数。 |
设置single_core_m/single_core_n/single_core_k的最大值与最小值。 |
|
设置Matmul单核计算的形状single_m_in,single_n_in,single_k_in,单位为元素。 |
BatchMatmulTiling其他接口
获得多核切分所使用的BlockNum参数。 |