---
title: EnableMultiCoreSplitK
description: "多核场景，通过该接口使能切K轴。不调用该接口的情况下，默认不切K轴。在GetTiling接口调用前使用。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendcopapi/atlasascendc_api_07_0682.html
sourcePath: /source/zh/canncommercial/900/API/ascendcopapi/atlasascendc_api_07_0682.html
indexId: e35b169e775f87383a066c17f4a5e8aa51acd2bb93a63ca6e88b457d57c57ecf76
---
# EnableMultiCoreSplitK

#### 功能说明

多核场景，通过该接口使能切K轴。不调用该接口的情况下，默认不切K轴。在GetTiling接口调用前使用。


#### 函数原型

```
void EnableMultiCoreSplitK(bool flag)
```


#### 参数说明


**表1 参数说明**

| 参数名 | 输入/输出 | 描述 |
| --- | --- | --- |
| flag | 输入 | 是否使能切K轴。 true：使能切K轴 false：不使能切K轴 |


#### 返回值说明

无


#### 约束说明

- 在算子中使用该接口时，获取C矩阵结果时仅支持输出到Global Memory。
- 在算子中使用该接口时，需在Kernel侧代码中首次将C矩阵分片的结果写入Global Memory之前，先清零Global Memory，随后在获取C矩阵分片的结果时，再开启AtomicAdd累加。如果不预先清零Global Memory，可能会因为累加Global Memory中原始的无效数据而产生精度问题。
- 在算子中使用该接口时，不支持Bias参与矩阵乘计算。


#### 调用示例

完整的算子样例请参考多核切K场景的算子样例(https://gitcode.com/cann/asc-devkit/tree/9.0.0/examples/01_simd_cpp_api/03_libraries/00_matrix/matmul_splitk)。

```
auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo());
matmul_tiling::MultiCoreMatmulTiling tiling(ascendcPlatform);  

tiling.EnableMultiCoreSplitK(true);  // 使能切K轴
```
