---
title: Conv3DBackpropFilter Tiling构造函数
description: "用于创建一个Conv3DBackpropFilter 单核Tiling对象。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendcopapi/atlasascendc_api_07_0906.html
sourcePath: /source/zh/canncommercial/900/API/ascendcopapi/atlasascendc_api_07_0906.html
indexId: 434f35250e87861e9f39c77f2b43ca70d90be9988b347b0d5cdd8f6d917bd89476
---
# Conv3DBackpropFilter Tiling构造函数

#### 功能说明

用于创建一个Conv3DBackpropFilter 单核Tiling对象。


#### 函数原型

- 带参构造函数，需要传入硬件平台信息，推荐使用这类构造函数来获得更好的兼容性。

  - 使用PlatformAscendC类传入信息
    1 explicit Conv3dBpFilterTiling(const platform_ascendc::PlatformAscendC& ascendcPlatform)

  - 使用PlatformInfo传入信息
    当platform_ascendc::PlatformAscendC无法在Tiling运行时获取时，需要用户自己构造PlatformInfo结构体，透传给Conv3dBpFilterTiling构造函数。 1 explicit Conv3dBpFilterTiling(const PlatformInfo& platform)

- 无参构造函数
  1 Conv3dBpFilterTiling()

- 基类构造函数
  Conv3dBpFilterTiling继承自基类Conv3dBpFilterTilingBase，其构造函数如下：

  1 Conv3dBpFilterTilingBase()

  1 explicit Conv3dBpFilterTilingBase(const platform_ascendc::PlatformAscendC& ascendcPlatform)

  1 explicit Conv3dBpFilterTilingBase(const PlatformInfo& platform)


#### 参数说明


**表1 参数说明**

| 参数名 | 输入/输出 | 描述 |  |  |
| --- | --- | --- | --- | --- |
| ascendcPlatform | 输入 | 传入硬件平台的信息，PlatformAscendC定义请参见构造及析构函数。 |  |  |
| platform | 输入 | 传入硬件版本以及AI Core中各个硬件单元提供的内存大小。PlatformInfo构造时通过构造及析构函数获取。 PlatformInfo结构定义如下，socVersion通过GetSocVersion获取并透传，各类硬件存储空间大小通过GetCoreMemSize获取并透传。 1 2 3 4 5 6 7 8 struct PlatformInfo { platform\_ascendc::SocVersion socVersion; uint64\_t l1Size = 0; uint64\_t l0CSize = 0; uint64\_t ubSize = 0; uint64\_t l0ASize = 0; uint64\_t l0BSize = 0; }; 不推荐通过直接填值构造PlatformInfo的方式调用构造函数，例如PlatformInfo(, 1024, 1024, ..); | 1 2 3 4 5 6 7 8 | struct PlatformInfo { platform\_ascendc::SocVersion socVersion; uint64\_t l1Size = 0; uint64\_t l0CSize = 0; uint64\_t ubSize = 0; uint64\_t l0ASize = 0; uint64\_t l0BSize = 0; }; |
| 1 2 3 4 5 6 7 8 | struct PlatformInfo { platform\_ascendc::SocVersion socVersion; uint64\_t l1Size = 0; uint64\_t l0CSize = 0; uint64\_t ubSize = 0; uint64\_t l0ASize = 0; uint64\_t l0BSize = 0; }; |  |  |  |


在实现Host侧的Tiling函数时，platform_ascendc::PlatformAscendC用于获取一些硬件平台的信息，来支撑Tiling的计算，比如获取硬件平台的核数等信息。PlatformAscendC类提供获取这些平台信息的功能。

和platform_ascendc::PlatformAscendC不同的是，PlatformInfo则用于获取芯片版本以及AI Core中各个硬件单元提供的内存大小等只针对单个AI Core的信息。


#### 约束说明

无


#### 使用样例

- 无参构造函数
  1 2 3 4 5 6 Convolution3DBackprop::Conv3dBpFilterTiling tiling; tiling.SetWeightType(ConvCommonApi::TPosition::GM,ConvCommonApi::ConvFormat::FRACTAL_Z_3D,ConvCommonApi::ConvDtype::FLOAT32); ... optiling::Conv3DBackpropFilterTilingData tilingData; int ret = tiling.GetTiling(tilingData); // if ret = -1, gen tiling failed ...


- 带参构造函数
  1 2 3 4 5 6 auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); ConvBackpropApi::Conv3dBpFilterTiling tiling(ascendcPlatform); tiling.SetWeightType(ConvCommonApi::TPosition::GM,Convolution3DBackprop::ConvFormat::FRACTAL_Z_3D,ConvCommonApi::ConvDtype::FLOAT32); ... optiling::Conv3DBackpropFilterTilingData tilingData; int ret = tiling.GetTiling(tilingData); // if ret = -1, gen tiling failed
