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

CANN/ops-nn Swish激活函数

aclnnSwish

【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品×
Atlas 推理系列产品
Atlas 训练系列产品

功能说明

  • aclnnSwish:对输入 Tensor 执行 Swish 激活计算,并将结果写入独立输出 Tensor。
  • experimental/activation/swish_v2目录对外导出的 ACLNN 接口名与当前实现保持一致。
  • 当前仅导出普通接口,未导出任何 inplace 接口。
  • betaOptional为空时使用默认缩放系数1.0

计算公式:

$$ y = \frac{x}{1 + e^{-\text{scale} \times x}} $$

函数原型

每个算子分为两段式接口,必须先调用aclnnSwishGetWorkspaceSize获取执行器和 workspace 大小,再调用第二段接口执行计算。

aclnnStatus aclnnSwishGetWorkspaceSize( const aclTensor *self, const aclScalar *betaOptional, aclTensor *out, uint64_t *workspaceSize, aclOpExecutor **executor);
aclnnStatus aclnnSwish( void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, const aclrtStream stream);

aclnnSwishGetWorkspaceSize

  • 参数说明:

    参数名输入/输出描述使用说明数据类型数据格式维度(shape)非连续Tensor
    self(aclTensor*)输入待进行 Swish 计算的输入张量,公式中的 `x`。
    • 支持空Tensor。
    • shape 必须与 out 完全一致。
    • 数据类型必须与 out 完全一致。
    BFLOAT16(仅 Ascend910B 及后续同代 SoC 支持)、FLOAT16、FLOAT32ND0-8
    betaOptional(aclScalar*)输入可选缩放系数。
    • 允许传空,空值时默认使用 1.0。
    • 非空时需要能转换到 `FLOAT`。
    可转换到 FLOAT 的标量类型Scalar--
    out(aclTensor*)输出计算的出参。
    • 支持空Tensor。
    • shape 必须与 self 完全一致。
    • 数据类型必须与 self 完全一致。
    BFLOAT16(仅 Ascend910B 及后续同代 SoC 支持)、FLOAT16、FLOAT32ND0-8
    workspaceSize(uint64_t*)输出返回需要在 Device 侧申请的 workspace 大小。-----
    executor(aclOpExecutor**)输出返回 op 执行器,包含算子计算流程。-----
  • 返回值:

    aclnnStatus:返回状态码,具体参见aclnn返回码。

    第一段接口会完成入参校验,出现以下场景时报错:

    返回码错误码描述
    ACLNN_ERR_PARAM_NULLPTR161001传入的 self 或 out 是空指针。
    ACLNN_ERR_PARAM_INVALID161002self 或 out 的数据类型不在支持范围内。
    self 和 out 的数据类型不一致。
    self 和 out 的 shape 不一致。
    self 或 out 的维度大于 8,或 betaOptional 无法转换为 FLOAT。

aclnnSwish

  • 参数说明:

    参数名输入/输出描述
    workspace输入在 Device 侧申请的 workspace 内存地址。
    workspaceSize输入在 Device 侧申请的 workspace 大小,由第一段接口 aclnnSwishGetWorkspaceSize 获取。
    executor输入op 执行器,包含算子计算流程。
    stream输入指定执行任务的 Stream。
  • 返回值:

    aclnnStatus:返回状态码,具体参见aclnn返回码。

实现说明

  • 当前实现先对selfContiguous,再调用l0op::SwishV2AscendC kernel 完成计算,最后通过ViewCopy将结果回写到out
  • betaOptional非空时会先转换为 host 侧float标量,再作为scale属性传入 kernel。
  • FLOAT16BFLOAT16路径在 kernel 中升精度到float32计算后回写。

调用示例

#include "aclnnop/aclnn_swish.h" aclnnStatus RunSwish(const aclTensor *self, const aclScalar *betaOptional, aclTensor *out, aclrtStream stream) { uint64_t workspaceSize = 0; aclOpExecutor *executor = nullptr; auto ret = aclnnSwishGetWorkspaceSize( self, betaOptional, out, &workspaceSize, &executor); if (ret != ACL_SUCCESS) { return ret; } void *workspace = nullptr; if (workspaceSize > 0) { ret = aclrtMalloc(&workspace, workspaceSize, ACL_MEM_MALLOC_HUGE_FIRST); if (ret != ACL_SUCCESS) { return ret; } } ret = aclnnSwish(workspace, workspaceSize, executor, stream); if (workspace != nullptr) { aclrtFree(workspace); } return ret; }

【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn

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

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

相关文章:

  • Perplexity医疗搜索效能跃迁(FDA黑框警告级误检率下降76%实测报告)
  • Windows 11性能监控终极指南:实时跟踪系统资源使用情况的完整教程
  • CANN/asc-devkit AllGather通信接口
  • AI招聘工具怎么选?直接推荐前程无忧的3个理由
  • elec-ops-simulation实战教程:5步实现电网稳态运行仿真
  • KDiff3文件比较与合并工具:从新手到高手的完整指南
  • 无王无帝定乾坤,来自田间第一人:凰标永存昭后世
  • 别再乱设时钟裕量了!手把手教你用set_clock_uncertainty搞定DC/PT时序收敛
  • 终极指南:如何使用Harepacker复活版轻松打造你的MapleStory游戏世界
  • 3DSident深度技术解析:逆向工程工具与硬件诊断套件的系统级实现
  • NS-USBLoader终极指南:一站式解决Switch玩家的三大痛点
  • Codex 安装与 VS Code 联动:手把手配置指南
  • 【HarmonyOS 6.1 全场景实战】《灵犀厨房》实战(十七):【语音识别】免提声控启动播报——动口不动手
  • CANN/asc-devkit HCCL批量写入接口
  • 终极指南:如何用YOLOv8 AI自瞄系统快速提升游戏瞄准精度
  • 终极知识管理模板:快速搭建你的Obsidian笔记系统
  • CANN/Ascend C GroupBarrier Arrive函数
  • KDiff3技术深度解析:高效文件比较与合并的架构设计与算法实现
  • 用Simulink复现VSG自适应控制:从理论模型到完整仿真(附2018b+源码)
  • 通过 TaoToken CLI 工具一键配置开发环境提升团队协作效率
  • Perplexity体育新闻搜索失效真相大起底(2024赛季高频故障TOP5深度归因)
  • 如何零成本获取全球金融数据?开源工具AKShare终极指南
  • 告别‘听完再说’:聊聊LAS语音识别模型为啥不能实时转文字,以及现在有啥新方案
  • 3步精通FanControl:打造Windows平台智能风扇控制系统
  • 【Perplexity语法查询终极指南】:20年DBA亲授5大隐藏技巧,90%开发者至今不知!
  • 2026年青岛欧式起重机制造厂优选榜单揭晓 - 品牌企业推荐师(官方)
  • 在自动化工作流中集成Taotoken为OpenClaw提供稳定模型服务
  • CANN/asc-devkit Tiling注册API
  • 5分钟掌握Unlock Music:浏览器音乐解密转换终极指南
  • i.MX6ULL电容触摸驱动开发:从硬件原理到Linux输入子系统实战