当前位置: 首页 > news >正文

CANN/asc-devkit矩阵切K轴API

SetSplitK

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

功能说明

EnableMultiCoreSplitK接口功能与该接口相同,建议使用EnableMultiCoreSplitK。

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

函数原型

void SetSplitK(bool flag)

参数说明

表1参数说明

参数名输入/输出描述
flag输入是否开启切K轴。

true:开启切K轴

false:不开启切K轴

返回值说明

约束说明

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

调用示例

auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()) matmul_tiling::MultiCoreMatmulTiling tiling(ascendcPlatform); tiling.SetDim(useCoreNums); 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(M, N, K); tiling.SetOrgShape(M, N, K); tiling.SetBias(true); tiling.SetBufferSpace(-1, -1, -1); tiling.SetSplitK(true); optiling::TCubeTiling tilingData; int ret = tiling.GetTiling(tilingData);

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

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

http://www.jsqmd.com/news/1129959/

相关文章:

  • AI时代程序员生存指南:从编码到架构的职场进化
  • Kafka Streams实时会话分析实战:低延迟、强一致、可运维
  • OpenMetadata实战指南:构建企业级数据治理与AI就绪的元数据平台
  • 终极Datacore指南:3分钟在Obsidian中构建动态数据仪表板
  • 终极Testcontainers for .NET安全指南:5大容器权限管理策略与实战配置
  • 终极指南:如何用C++开源库让二次元角色开口说话
  • CANN/asc-devkit多核矩阵乘法缓冲区大小获取
  • ComfyUI-WanVideoWrapper架构解析:径向注意力与块交换技术驱动的长视频生成性能优化
  • QMCDecode:解锁QQ音乐加密格式的macOS终极解决方案
  • Umi-OCR:免费离线的文字识别终极解决方案,效率提升300%
  • ripgrep如何重新定义代码搜索范式:从设计哲学到工程实践的解构
  • 血糖数据管理神器:xDrip+ 让糖尿病监测变得简单高效
  • 如何在ComfyUI中快速部署SCAIL-2扩散模型:专业工作流优化指南
  • Python实现TEA加密算法:从原理到逆向识别的实战指南
  • 如何高效构建完整的抖音自动化互动系统:Python机器人实战指南
  • Flutter Planets测试指南:为行星应用编写Widget测试的完整流程
  • 如何优化Varnish Dashboard性能:减少资源消耗的3个关键配置
  • 5个高效技巧:进阶用户如何优化LaTeX-Workshop配置
  • Faster-Whisper终极指南:4倍速语音转录的完整教程
  • 如何在现代电脑上完美运行PS3游戏:RPCS3模拟器终极指南
  • 5分钟搭建专属AI音乐创作平台:Suno-API完全指南
  • 使用C语言实现面向对象程序设计
  • 如何在ComfyUI中快速部署SCAIL-2扩散模型:三种精度版本全解析
  • 一键搞定文档转换:如何用MarkItDown将PDF、Word等数十种格式智能转为Markdown
  • Runno沙盒安全深度剖析:为什么你的代码在浏览器中是安全的
  • cs-wiki揭秘:为什么它能成为后端面试与学习的终极资源
  • Real-Time C++模板元编程实战:提升嵌入式代码性能的10个技巧
  • Scan Tailor终极指南:如何让扫描文档处理效率提升500%
  • 如何快速上手Swirl:Android指纹动画库的5分钟入门教程
  • ZyPlayer:你的个人影视中心,重新定义跨平台观影体验