使用说明
Ascend C提供一组Conv3DBackpropFilter Tiling API,方便用户获取Conv3DBackpropFilter Kernel计算时所需的Tiling参数。用户只需要传入Input/GradOutput/GradWeight的Position位置、Format格式和DType数据类型及相关参数等信息,调用API接口,即可获取Init中TConv3DBpFilterTiling结构体中的相关参数。
Conv3DBackpropFilter Tiling API提供一个GetTiling接口获取Tiling参数,获取Tiling参数的流程如下:
- 创建一个单核Tiling对象。
- 设置Input、GradOutput、GradWeight的参数类型信息以及Shape信息,如果存在Padding、Stride参数,通过SetPadding、SetStride接口设置。
- 调用GetTiling接口,获取Tiling信息。
使用Conv3dBackpropFilter Tiling接口获取Tiling参数的样例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include "tiling/conv_backprop/conv3d_bp_filter_tiling.h" optiling::Conv3DBackpropFilterTilingData tilingData; auto ascendcPlatform = platform_ascendc::PlatformAscendCManager::GetInstance(); ConvBackpropApi::Conv3dBpFilterTiling conv3dBpDwTiling(*ascendcPlatform); conv3dBpDwTiling.SetWeightType(ConvCommonApi::TPosition::CO1, ConvCommonApi::ConvFormat::FRACTAL_Z_3D, ConvCommonApi::ConvDtype::FLOAT32); conv3dBpDwTiling.SetInputType(ConvCommonApi::TPosition::GM, ConvCommonApi::ConvFormat::NDC1HWC0, ConvCommonApi::ConvDtype::FLOAT16); conv3dBpDwTiling.SetGradOuptutType(ConvCommonApi::TPosition::GM, ConvCommonApi::ConvFormat::NDC1HWC0, ConvCommonApi::ConvDtype::FLOAT16); conv3dBpDwTiling.SetGradOutputShape(n, c, d, h, w); conv3dBpDwTiling.SetInputShape(c, d, h, w); conv3dBpDwTiling.SetWeightShape(d, h, w); conv3dBpDwTiling.SetPadding(padFront, padBack, padUp, padDown, padLeft, padRight); conv3dBpDwTiling.SetStride(strideD, strideH, strideW); conv3dBpDwTiling.SetDilation(dilationD, dilationH, dilationW); int ret = con3dBpDwTiling.GetTiling(tilingData); // 如果 ret = -1, 获取tiling 结果失败 |