SetBufferSpace

功能说明

设置Matmul计算时可用的L1 Buffer/L0C Buffer/Unified Buffer/BiasTable Buffer空间大小,单位为字节。

函数原型

1
int32_t SetBufferSpace(int32_t l1Size = -1, int32_t l0CSize = -1, int32_t ubSize = -1, int32_t btSize = -1)

参数说明

表1 参数说明

参数名

输入/输出

描述

l1Size

输入

设置Matmul计算时,能够使用的L1 buffer大小,单位为字节。默认值-1,表示使用AI处理器L1 Buffer大小。

l0CSize

输入

设置Matmul计算时,能够使用的L0C buffer大小,单位为字节。默认值-1,表示使用AI处理器L0C Buffer大小。

ubSize

输入

设置Matmul计算时,能够使用的UB buffer大小,单位为字节。默认值-1,表示使用AI处理器UB Buffer大小。

btSize

输入

设置Matmul计算时,能够使用的BiasTable buffer大小,单位为字节。默认值-1,表示使用AI处理器BiasTable Buffer大小。

返回值

-1表示设置失败; 0表示设置成功。

约束说明

调用示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo());
matmul_tiling::MatmulApiTiling tiling(ascendcPlatform); 
tiling.SetAType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16); 
tiling.SetBType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT16);  
tiling.SetCType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT);
tiling.SetBiasType(matmul_tiling::TPosition::GM, matmul_tiling::CubeFormat::ND, matmul_tiling::DataType::DT_FLOAT);   
tiling.SetShape(1024, 1024, 1024);
tiling.SetOrgShape(1024, 1024, 1024);   
tiling.SetBias(true);
tiling.SetBufferSpace(-1, -1, -1);  // 设置计算时可用的L1/L0C/UB/BT空间大小
optiling::TCubeTiling tilingData;   
int ret = tiling.GetTiling(tilingData);