# Init

#### 功能说明

Init主要用于对Matmul对象中的Tiling数据进行初始化，根据Tiling参数进行资源划分，tiling参数的具体介绍请参考Matmul Tiling。

开发者可以先通过REGIST\_MATMUL\_OBJ初始化单个Matmul对象，不传入tiling参数，后续通过Init接口单独传入Tiling参数，对Tiling数据进行调整。比如，Tiling参数可变的场景下，可以通过多次调用Init来重新设置Tiling参数。

不需要Tiling变更的场景下，推荐使用REGIST\_MATMUL\_OBJ传入tiling参数进行初始化。

#### 函数原型

```
__aicore__ inline void Init(const TCubeTiling* __restrict cubeTiling, TPipe* tpipe = nullptr)
```

#### 参数说明

**表1** 接口参数说明

| 参数名 | 输入/输出 | 描述 |
| --- | --- | --- |
| cubeTiling | 输入 | Matmul tiling参数，TCubeTiling结构体定义请参见TCubeTiling结构体表1。 Tiling参数可以通过host侧GetTiling接口获取，并传递到kernel侧使用。 |
| tpipe | 输入 | Tpipe对象。 |

#### 返回值

无

#### 支持的型号

Kirin9020系列处理器

#### 注意事项

无

#### 调用示例

```
// 开发者可以先通过REGIST_MATMUL_OBJ初始化单个matmul对象，不传入tiling参数，后续通过Init接口单独传入Tiling参数，对Tiling数据进行调整。
REGIST_MATMUL_OBJ(&pipe, GetSysWorkSpacePtr(), mm);
mm.Init(&tiling);
```