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

CANN asc-devkit矢量广播矩阵函数

BroadCastVecToMM(ISASI)

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

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

x

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

x

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

x

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品 AI Core

Atlas 推理系列产品 Vector Core

x

Atlas 训练系列产品

x

功能说明

将矢量数据广播到矩阵中,每个数据块中的每16个elements会被连续复制16次;当前支持的数据传输通路:VECIN/VECCALC/VECOUT->CO1。

图 1功能示例
![](https://raw.gitcode.com/cann/asc-devkit/raw/68eb55191616e7a7b08961a5c82a706272353b5f/docs/api/figures/功能示例.png "功能示例"?utm_source=gitcode_repo_files)

函数原型

template <typename T, typename U> __aicore__ inline void BroadCastVecToMM(const LocalTensor<T> &dst, const LocalTensor<U> &src, const int32_t blockCount, const uint8_t blockLen, const uint8_t srcGap, const uint8_t dstGap)

参数说明

表 1模板参数说明

参数名

描述

T

dst的数据类型。

Atlas 推理系列产品 AI Core,支持的数据类型为:half/int16_t/uint16_t

U

src的数据类型。

Atlas 推理系列产品 AI Core,支持的数据类型为:half/int16_t/uint16_t

表 2参数说明

参数名称

类型

说明

dst

输出

目的操作数,结果矩阵,类型为LocalTensor,支持的TPosition为CO1。

LocalTensor的起始地址需要256个元素对齐。

支持的数据类型为:half/float/int32_t。

src

输入

源操作数,输入矢量,类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。

支持的数据类型需要与dst一致。

blockCount

输入

指定该指令包含的连续广播数据块个数,取值范围:blockCount∈[1, 255]。

blockLen

输入

指定该指令每个连续广播数据块长度,单位为16个elements。取值范围:blockLen∈[1, 255]。

srcGap

输入

源操作数,相邻连续数据块的间隔(前面一个数据块的尾与后面数据块的头的间隔),单位为datablock(32Bytes)。

dstGap

输入

目的操作数,相邻连续数据块间的间隔(前面一个数据块的尾与后面数据块的头的间隔),单位为256个elements。

约束说明

  • 操作数地址对齐要求请参见通用地址对齐约束。

调用示例

本示例中,输入bias形状为[1, 32],输出c的形状为[32, 32],格式为Nz。

图 2调用示例图
![](https://raw.gitcode.com/cann/asc-devkit/raw/68eb55191616e7a7b08961a5c82a706272353b5f/docs/api/figures/调用示例图.png "调用示例图"?utm_source=gitcode_repo_files)

本示例仅展示样例中的部分代码。如需运行,请参考BroadCastVecToMM样例实现完整的代码。

// brcLocal为TPosition::CO1上的float类型的LocalTensor,srcLocal为TPosition::VECIN上的float类型的LocalTensor // blockCount = 1, blockLen = 1. 连续广播的数据块个数为1,每个数据块包含16个elements,共输出256个elements // srcGap = 0, dstGap = 1. 源操作数与目的操作数之间连续 AscendC::BroadCastVecToMM(brcLocal, srcLocal, 1, 1, 0, 1)

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

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

http://www.cnnetsun.cn/news/2465023.html

相关文章:

  • Perplexity图标搜索突然失效?紧急修复手册(含Chrome DevTools实时调试+CDN缓存穿透方案)
  • 别再只问ChatGPT答案了!试试这个Prompt技巧,让大模型把解题思路‘说’给你听
  • NCE外汇:服务体验与平台稳定性的协同提升
  • CANN/asc-devkit InitStartBufHandle函数说明
  • CANN/asc-devkit 设置梯度输出类型
  • HermesAgent工具连接Taotoken自定义模型提供方的完整流程
  • cann/asc-devkit SetGradOutput接口
  • ARM SPE Profiling Buffer机制与性能分析实践
  • 树莓派Web IDE:零配置云端编程环境与Python硬件模拟实践
  • Firebase JobDispatcher源码深度剖析:从调度到执行的完整链路
  • Linux存储核心:块设备与分区表的本质区别及实践指南
  • 量子门合成技术GULPS:异构硬件下的高效量子电路编译
  • Go语言事件驱动:CloudEvents
  • AmazingHand高级演示:手部追踪与逆运动学控制
  • Ormar 高级特性完全指南:字段加密、UUID 和约束条件详解
  • 54 深入解析poll多路复用技术
  • MySQL进阶
  • 【软考中级备考日记|系统集成项目管理工程师Day11:项目资源管理核心精讲\+团队建设冲突解决\+20道专项必刷题(带解析)】
  • 数据不会说谎:园区智能化带来的五个变化
  • PLINK实战:用--genome参数搞定GWAS数据中的“亲戚”排查(附pihat阈值选择心得)
  • 【Perplexity行业分析搜索终极指南】:2024年全球Top 5垂直领域实战数据+3大避坑红线
  • 临床决策倒计时:Perplexity医生信息搜索如何将循证检索从15分钟压缩至22秒?
  • 【原创】智询管理系统操作说明
  • 从伺服报警到产线停机:一个EtherCAT状态机跳变引发的故障诊断实录
  • GIS技巧100例23-ArcGIS像元统计实战:从月度栅格到年度气候指标
  • 从‘老王’到动态数据:C# Winform中Label控件如何优雅地绑定和更新显示内容
  • 实测 DeepSeek-V4 接入 Hermes:一句话爬取几十个网页,真的丝滑!
  • 技术动态 | 大模型驱动情报领域知识图谱构建新范式:ERC-KG方法精确率高达94.32% - 解放军网络空间部队信工大等
  • 基于双CNN架构的实时神经信号处理与FPGA实现
  • 5分钟快速合并B站缓存视频:m4s-converter终极使用指南