Skip to content
版 本

C API

C API开 放 芯 片 完 备 编 程 能 力,支 持以 数 组 形 式 分 配 内 存,一 般 基 于 指 针 编 程。提 供 与 业 界 一 致 的C语 言 编 程 体 验。

需 要 包 含 的 头 文 件

说 明

包 含asc_simd.h文 件 来 调 用C API相 应 接 口。如 无 特 殊 说 明,包 含 该 头 文 件 即 可 满 足 接 口 调 用 需 求。 若API文 档 中 有 特 殊 说 明,则 应 遵 循API的 具 体 说 明。

C++
#include "c_api/asc_simd.h"

API类 型 介 绍

  • 前n个 数 据 计 算:该 类 型API在 计 算 时 采 用“紧 密 排 布”的 数 据 读 取 方 式,即 从 起 始 位 置 开 始,按 顺 序 连 续 获 取 所 需 数 据。例 如,若 需 处 理N个 数 据,则 从 源 操 作 数 的 第0个 位 置 开 始,依 次 取 至 第N-1个 位 置。
  • 高 维 切 分 计 算:该 类 型API按 照 设 定 的 规 则“跳 过 部 分 数 据”。适 合 处 理 需 要 间 隔 采 样 的 场 景,灵 活 度 高,但 需 要 额 外 配 置 相 关 参 数。
  • 同 步 计 算:该 类 型API内 部 自 动 插 入 同 步 操 作,易 用 性 更 强。

关 键 字

名 称描 述
__gm__存 储 空 间 定 义 修 饰 符,表 示 被 修 饰 的 变 量 位 于Global Memory地 址 空 间。
__ubuf__存 储 空 间 定 义 修 饰 符,表 示 被 修 饰 的 变 量 位 于Unified Buffer地 址 空 间。
__aicore__执 行 空 间 限 定 符。表 示 该 函 数 只 能 在Ai Core上 执 行。
__cbuf__存 储 空 间 定 义 修 饰 符,表 示 被 修 饰 的 变 量 位 于L1 Buffer地 址 空 间。
__simd_callee__执 行 空 间 限 定 符。表 示 该 函 数 只 能 在Reg上 执 行。

流 水 类 型

NPU内 部 有 不 同 的 计 算 单 元,在 计 算 时 往 往 需 要 把 计 算 数 据 搬 运 到 计 算 单 元 上。不 同 计 算 单 元 上 的 计 算 过 程、数 据 搬 运 过 程 可 划 分 为 不 同 的 流 水 线。在AI Core上 执 行 的 操 作 会 被 分 配 到 不 同 的 流 水 线(PIPE)上 执 行,包 括 以 下 几 种:

  • PIPE_S:标 量 流 水 线,负 责 指 令 分 发 和 标 量 计 算。
  • PIPE_V:矢 量 计 算 流 水 线。
  • PIPE_M:矩 阵 计 算 流 水 线。
  • PIPE_MTE1:搬 运 操 作。包 括 从L1 Buffer到L0A Buffer或L0B Buffer,从L1 Buffer到UB的 搬 运 操 作 和L0A Buffer或L0B Buffer的 初 始 化 操 作。
  • PIPE_MTE2:搬 运 操 作。包 括 从GM到L1 Buffer、从GM到L0A Buffer或L0B Buffer、从GM到UB的 搬 运 操 作 和L1 Buffer的 初 始 化 操 作。
  • PIPE_MTE3:搬 运 操 作。包 括 从UB到GM、从UB到L1 Buffer的 操 作 和 从UB到UB的 搬 运 操 作。
  • PIPE_FIX:Fixpipe流 水 线。
  • PIPE_ALL:所 有 流 水 线。

可 通 过同 步 控 制类API控 制 同 一 流 水 线 内 的 运 行 顺 序 和 不 同 流 水 线 间 的 执 行 顺 序。

API列 表

目 录
数 据 结 构
矢 量 计 算
数 据 搬 运
标 量 操 作
矩 阵 计 算
同 步 控 制
系 统 变 量
缓 存 控 制
原 子 操 作
其 他 操 作
Reg数 据 搬 运
Reg矢 量 计 算

参 考 样 例

Atlas A3 训 练 系 列 产 品/Atlas A3 推 理 系 列 产 品 的C API样 例 请 参 考C API Add样 例。 Ascend 950PR/Ascend 950DT的C API样 例 请 参 考C API Add样 例

免 责 声 明:本 站 内 容 由 asc-devkit 仓 master 分 支 自 动 编 译 生 成,属 于 持 续 开 发 版 本,可 能 存 在 缺 陷,仅 供 预 览 与 参 考。如 需 稳 定 及 商 用 资 料,请 查 阅 官 方 昇 腾 社 区