cann/asc-devkit: L1 Bank冲突优化检测
2026/7/17 8:25:52 网站建设 项目流程

EnableL1BankConflictOptimise

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

功能说明

根据GetTiling接口计算出的Tiling参数,获取是否可以开启L1 Bank冲突优化功能。若可以开启该功能,则与TilingKey机制配合使用,通过增加TilingKey,关联Host侧与Kernel侧实现,并在Kernel侧增加代码实现分支,将MatmulConfig中的enableL1BankConflictOptimise设置为true,即可优化L1上的Bank冲突。

函数原型

bool EnableL1BankConflictOptimise()

参数说明

返回值说明

  • false:Kernel侧不能开启L1 Bank冲突优化。
  • true:Kernel侧可以开启L1 Bank冲突优化。

约束说明

使用创建的Tiling对象调用本接口,且需在完成Tiling计算(GetTiling)后调用本接口。

调用示例

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); optiling::TCubeTiling tilingData; int ret = tiling.GetTiling(tilingData); // Kernel侧是否可以开启L1 Bank冲突优化,可与TilingKey机制结合使用 bool enableL1BankConflictOptimise = tiling.EnableL1BankConflictOptimise();

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询