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

CANN/ops-blas批量矩阵向量乘法算子实现

GemvBatched 算子实现

【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blas

概述

BLAS GemvBatched 算子实现。

GemvBatched(批量实数矩阵-向量乘法)实现了对一批矩阵分别进行矩阵-向量乘法的运算,是 BLAS Level 2 核心算子之一。针对 Ascend 950(arch35)架构,支持 S(FP32 入/出)、HSH(FP16 入/出)、HSS(FP16 入/FP32 出)三种精度。

支持的产品

产品是否支持
Ascend 950PR / Ascend 950DT

目录结构介绍

blas/gemv_batched/ ├── README.md // 说明文档 ├── arch35/ │ ├── gemv_batched_host.cpp // Host 侧实现(参数校验、Tiling 计算、Kernel 调用) │ ├── gemv_batched_kernel.cpp // Kernel 侧实现(AIV SIMD 批量运算 + SIMT 转置路径) │ └── gemv_batched_tiling_data.h // Tiling 数据结构(Host 和 Kernel 共用) └── cgemv_batched/ └── arch22/ // 复数批量 GEMV(arch22 实现)

算子描述

  • 算子功能:

GemvBatched 对每个 batch 独立完成矩阵-向量乘法。对应的数学表达式为:

y[i] = alpha * op(A[i]) * x[i] + beta * y[i]

其中op(A)可以是:

  • A(不转置,trans = N):维度 m×n,x 长度 n,y 长度 m
  • A^T(转置,trans = T):x 长度 m,y 长度 n

矩阵 A 采用行主序(row-major)存储。

  • 对应的接口为:
aclblasStatus_t aclblasSgemvBatched( aclblasHandle_t handle, aclblasOperation_t trans, int m, int n, const float *alpha, const float *A, int lda, const float *x, int incx, const float *beta, float *y, int incy, int batchCount); aclblasStatus_t aclblasHSHgemvBatched( aclblasHandle_t handle, aclblasOperation_t trans, int m, int n, const float *alpha, const uint16_t *A, int lda, const uint16_t *x, int incx, const float *beta, uint16_t *y, int incy, int batchCount); aclblasStatus_t aclblasHSSgemvBatched( aclblasHandle_t handle, aclblasOperation_t trans, int m, int n, const float *alpha, const uint16_t *A, int lda, const uint16_t *x, int incx, const float *beta, float *y, int incy, int batchCount);
Param.Memoryin/out含义
handleHostinops-blas 库上下文句柄
transHostin矩阵操作类型:ACLBLAS_OP_N / ACLBLAS_OP_T
m, nHostin矩阵 A 的行数 / 列数
alphaHostin标量乘数
ADevicein矩阵 A 数组(batch×m×n 行主序)
ldaHostinA 矩阵的 leading dimension
xDevicein向量 x 数组
incxHostinx 向量元素步长
betaHostin标量乘数
yDevicein/out向量 y 数组
incyHostiny 向量元素步长
batchCountHostin批量大小
  • 算子规格:

    算子类型SgemvBatched / HSHgemvBatched / HSSgemvBatched
    算子输入nameshapedata type
    Abatch × m × nfloat / uint16_t
    xbatch × (trans=N: n, trans=T: m)float / uint16_t
    算子输出ybatch × (trans=N: m, trans=T: n)float / uint16_t / float
    核函数名gemv_batched
  • 算子实现:

    trans=N(不转置):

    • 使用 AIV SIMD 向量指令实现行级点积(VEC_SCOPE),支持 m-tiling 和 n-tiling 分片策略
    • 多核并行:按 batch 数均匀分配到多个 AIV Core

    trans=T(转置):

    • 使用 SIMT 编程模型,每个线程处理一个输出元素
  • 调用实现: 使用gemv_batched_kernel_do()封装内核调用。

编译运行

  • 环境配置

    source /usr/local/Ascend/cann/set_env.sh
  • 编译算子

    bash build.sh --ops=gemv_batched --soc=ascend950
  • 编译并运行测试

    bash build.sh --ops=gemv_batched --soc=ascend950 --run

【免费下载链接】ops-blas本项目是CANN提供的高性能线性代数计算以及轻量化GEMM调用算子库。项目地址: https://gitcode.com/cann/ops-blas

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

http://www.gsyq.cn/news/1459589.html

相关文章:

  • Ableton Live 12.4.5 扩展程序公测:突破预期,无规则限制打造专属音乐工具!
  • 实战演练,基于快马AI构建一个技能匹配与团队协作平台
  • 基于CNN的异常流量监测系统的设计与实现
  • 手把手教你复现BUUCTF Easy Notes:从Session伪造到PHP反序列化拿Flag
  • 从SAML到OIDC:一次企业身份认证架构的‘现代化’升级踩坑实录
  • 编写程序,输入办公室空调温度,个人体感,分析温湿度对呼吸道,关节的影响并评级。
  • 用PHPStudy在Windows上复现phpMyAdmin 4.8.1文件包含漏洞(附详细配置与双倍编码绕过技巧)
  • 如何快速上手crt-animation-terminal-ltx-2.3-lora:5分钟创建复古CRT视频特效
  • 如何解决DLSS状态监控难题:DLSS Swapper完整配置指南
  • 从ONNX模型到实时音频处理:MOSS-Audio-Tokenizer-Nano-ONNX快速入门指南
  • 如何3秒破解百度网盘提取码:智能工具的终极效率革命
  • 用PHPStudy搭建phpMyAdmin 4.8.1靶场,手把手复现那个经典的文件包含漏洞
  • 如何在Android应用中快速集成WaveSideBar:3分钟实现波浪效果索引栏
  • 深入解析TeleChat2.5-35B架构设计:350亿参数的智能实现
  • 终极泰语文本生成模型:gpt2-base-thai如何彻底改变泰国NLP应用
  • 深度解析ZenTimings:AMD Ryzen平台内存时序监控关键技术
  • 2026永磁变频螺杆空压机厂家选型横评:资源禀赋与交付力深度解析指南 - 企师傅推荐官
  • GPT2_PMC-openmind:基于PubMed Central的医学问答AI模型完全指南
  • 如何用Mellum2-12B-A2.5B-Thinking实现69.9%代码通过率?LiveCodeBench实测
  • 小红书微信小程序数据采集工具包:mitmdump抓包+动态headers解析+去重CSV保存
  • 别再手动调参了!用OpenCV-Python的滑动条,5分钟搞定图片HSV/RGB阈值调试
  • 【科研党必收藏】2026年8月优质国际学术会议一览表 - 爱搞科研的小刘
  • 多机多卡训练Faster RCNN:超简单脚本实现64节点分布式训练(附性能数据)
  • OpenClaw深度解析:面向嵌入式AI的硬实时感知-执行中间件
  • 如何用PDF补丁丁一站式解决PDF编辑难题:从书签管理到文档优化的完整指南
  • 5个实用技巧:让WaveSideBar在你的App中发挥最大价值
  • 大模型版本号失效:从GPT-5.5看能力驱动的评估新范式
  • gelectra-large-germanquad-openmind与Transformers对比:为什么选择这个德语QA模型
  • 2026 年 6 月眉山防水维修机构甄选指南:卫生间免砸砖、屋顶阳台外墙地下室漏水检修与避坑全攻略 - 吉修匠
  • 抖音去水印教程:5大工具深度评测,新手必看指南 - 科技热点发布