C API
C API文 档 目 录,整 体 使 用 时 可 以 引 入asc_simd.h,C API列 表 如 下:
数 据 结 构
| 结 构 名 | 说 明 |
|---|---|
| asc_load3d_v2_config | Load3Dv2接 口 的repeat参 数。 |
| asc_store_atomic_config | 原 子 操 作 启 用 位 与 原 子 操 作 类 型 的 值。 |
| asc_fill_value_config | fill_value的 初 始 化 参 数 结 构 体,包 含asc_fill_l0a/asc_fill_l0b/asc_fill_l1接 口 需 要 配 置 的 各 种 初 始 化 参 数。 |
| asc_l13d_fmatrix_config | 用 于 设 置asc_copy_l12l0a/asc_copy_l12l0b3D格 式 搬 运 接 口 的Feature map属 性 参 数。 |
| asc_ndim_pad_count_config | 用 于asc_set_ndim_pad_count接 口 中,设 置asc_ndim_copy_gm2ub接 口 的 各 个 维 度 左 右 侧 的padding元 素 个 数。 |
矢 量 计 算
矢 量 计 算 类API,单 独 使 用 时 可 以 引 入vector_compute.h,此 类API列 表 如 下:
| API名 称 | 说 明 |
|---|---|
| asc_get_cmp_mask | 获 取Compare操 作 的 比 较 结 果。 |
| asc_set_cmp_mask | 为Select操 作 设 置 用 于 选 择 的 掩 码。 |
| asc_get_rsvd_count | 获 取GatherMask操 作 后 剩 余 的 元 素 数 量。 |
| asc_set_mask_count | 设 置Mask模 式 为Counter模 式。 |
| asc_set_mask_norm | 设 置Mask模 式 为Normal模 式。 |
| asc_set_vector_mask | 设 置Mask值。 |
| asc_add | 按 元 素 求 和。 |
| asc_add_scalar | 矢 量 内 每 个 元 素 与 标 量 求 和。 |
| asc_sub | 按 元 素 求 差。 |
| asc_sub_scalar | 矢 量 内 每 个 元 素 与 标 量 求 差。 |
| asc_mul | 按 元 素 求 积。 |
| asc_mul_scalar | 矢 量 内 每 个 元 素 与 标 量 求 积。 |
| asc_div | 按 元 素 求 商。 |
| asc_exp | 按 元 素 取 自 然 指 数。 |
| asc_relu | 按 元 素 做 线 性 整 流Relu。 |
| asc_max | 按 元 素 求 最 大 值。 |
| asc_max_scalar | 矢 量 内 每 个 元 素 与 标 量 求 最 大 值。 |
| asc_min | 按 元 素 求 最 小 值。 |
| asc_datablock_reduce_sum | 对 每 个DataBlock内 所 有 元 素 求 和。 |
| asc_datablock_reduce_max | 对 每 个DataBlock内 所 有 元 素 求 最 大 值。 |
| asc_datablock_reduce_min | 对 每 个DataBlock内 所 有 元 素 求 最 小 值。 |
| asc_repeat_reduce_sum | 对 每 个Repeat内 所 有 元 素 求 和。 |
| asc_repeat_reduce_max | 对 每 个Repeat内 所 有 元 素 求 最 大 值。 |
| asc_repeat_reduce_min | 对 每 个Repeat内 所 有 元 素 求 最 小 值。 |
| asc_get_reduce_max_cnt | 获 取 执 行asc_repeat_reduce_max操 作 后 的 最 大 值,以 及 第 一 个 最 大 值 时 的 索 引。 |
| asc_get_reduce_min_cnt | 获 取 执 行asc_repeat_reduce_min操 作 后 的 最 小 值,以 及 第 一 个 最 小 值 时 的 索 引。 |
| asc_brcb | 将 源 操 作 数 中 的 每 一 个 数 填 充 到 目 的 操 作 数 的 一 个DataBlock中。 |
| asc_duplicate | 将 一 个 变 量 或 立 即 数 填 充 到 一 个 矢 量 中。 |
| asc_select | 根 据 掩 码,从 两 个 源 操 作 数 中 选 取 元 素,输 出 到 目 的 操 作 数。 |
| asc_bfloat162float | 数 据 类 型 转 换。将bfloat16_t类 型 的 数 据 转 换 为float类 型。 |
| asc_bfloat162int32 | 数 据 类 型 转 换。将bfloat16_t类 型 的 数 据 转 换 为int32_t类 型。 |
| asc_float2bfloat16 | 数 据 类 型 转 换。将float类 型 的 数 据 转 换 为bfloat16_t类 型。 |
| asc_float2float | 数 据 类 型 转 换。将float类 型 的 数 据 转 换 为float类 型。 |
| asc_float2half | 数 据 类 型 转 换。将float类 型 的 数 据 转 换 为half类 型。 |
| asc_half2float | 数 据 类 型 转 换。将half类 型 的 数 据 转 换 为float类 型。 |
| asc_half2int4 | 数 据 类 型 转 换。将half类 型 的 数 据 转 换 为int4b_t类 型。 |
| asc_half2int8 | 数 据 类 型 转 换。将half类 型 的 数 据 转 换 为int8_t类 型。 |
| asc_half2int16 | 数 据 类 型 转 换。将half类 型 的 数 据 转 换 为int16_t类 型。 |
| asc_half2int32 | 数 据 类 型 转 换。将half类 型 的 数 据 转 换 为int32_t类 型。 |
| asc_int42half | 数 据 类 型 转 换。将int4b_t类 型 的 数 据 转 换 为half类 型。 |
| asc_int82half | 数 据 类 型 转 换。将int8_t类 型 的 数 据 转 换 为half类 型。 |
| asc_uint82half | 数 据 类 型 转 换。将uint8_t类 型 的 数 据 转 换 为half类 型。 |
| asc_int162float | 数 据 类 型 转 换。将int16_t类 型 的 数 据 转 换 为float类 型。 |
| asc_int322int16 | 数 据 类 型 转 换。将int32_t类 型 的 数 据 转 换 为int16_t类 型。 |
| asc_int322int64 | 数 据 类 型 转 换。将int32_t类 型 的 数 据 转 换 为int64_t类 型。 |
| asc_int642int32 | 数 据 类 型 转 换。将int64_t类 型 的 数 据 转 换 为int32_t类 型。 |
| asc_deq_int162b8 | 将int16_t类 型 转 换 为int8_t或uint8_t类 型,并 将 数 据 存 放 在 每 个DataBlock的 上 半 块 或 下 半 块。 |
| asc_set_deq_scale | 设 置DEQSCALAR寄 存 器 的 值。 |
| asc_eq | 比 较src0与src1在 对 应 索 引 位 置 的 元 素 大 小。若 比 较 结 果 为 真,则 输 出 结 果 的 对 应 比 特 位 设 为1,否 则 设 为0。 |
| asc_transpose | 用 于 实 现16*16的 二 维 矩 阵 数 据 块 转 置。 |
| asc_sqrt | 对 元 素 进 行 开 方。 |
| asc_lt | 按 元 素 判 断src0 < src1是 否 成 立,若 成 立 则 输 出 结 果 上 的 对 应 比 特 位 为1,否 则 为0。 |
| asc_ne_scalar | 按 元 素 判 断 是 否 不 等 于 输 入 标 量,若 成 立 则 输 出 结 果 上 的 对 应 比 特 位 为1,否 则 为0。 |
| asc_gather_datablock | 根 据 偏 移 地 址 按 照DataBlock的 粒 度 将 源 操 作 数 收 集 到 目 的 操 作 数 中。 |
| asc_int162half | 数 据 类 型 转 换。将int16_t类 型 的 数 据 转 换 为half类 型。 |
| asc_rcp | 执 行 矢 量 的 取 倒 数 运 算。 |
| asc_shiftright | 对 源 操 作 数 中 的 每 个 元 素 执 行 右 移。 |
| asc_mul_add | 执 行 矢 量 的 乘 加 运 算。 |
| asc_eq_scalar | 执 行 矢 量 与 标 量 的 比 较 运 算,如 果 值 相 等 则 输 出1,否 则 输 出0。 |
| asc_gather | 将 源 操 作 数 按 照 给 定 的 偏 移 按 元 素 收 集 到 目 的 操 作 数 中。 |
| asc_min_scalar | 源 操 作 数 矢 量 逐 元 素 与 标 量 相 比,取 较 小 值。 |
| asc_gt | 按 元 素 比 较 两 个 矢 量 的 大 小 关 系,若 比 较 后 的 结 果 为 真,则 输 出 结 果 的 对 应 比 特 位 为1,否 则 为0。 |
| asc_vdeq_int162b8 | 将int16_t类 型 转 换 为int8_t或uint8_t类 型,并 将 数 据 存 放 在 每 个DataBlock的 上 半 块 或 下 半 块。 |
| asc_int322float | 将int32_t类 型 数 据 转 换 为float类 型。 |
| asc_abs | 按 元 素 取 绝 对 值。 |
| asc_add_relu | 按 元 素 求 和,再 进 行Relu计 算(结 果 和0对 比 取 较 大 值),并 提 供 转 换 最 终 结 果 的 数 据 类 型 的 功 能(s162s8、f322f16、f162s8)。 |
| asc_and | 执 行 矢 量 与 运 算。 |
| asc_axpy | 源 操 作 数src中 每 个 元 素 与 标 量value求 积 后 和 目 的 操 作 数dst中 的 对 应 元 素 相 加。 |
| asc_bitsort | Score和Index分 别 存 储 在src0和src1中,按Score进 行 排 序(Score大 的 元 素 排 前 面),排 序 后 的Score与 其 对 应 的Index一 起 以(Score,Index)的 结 构 存 储 在dst中。 |
| asc_deq_int322half | 对 输 入 的int32_t类 型 的 数 据 按 元 素 做 量 化 并 转 换 为half类 型。 |
| asc_float2int16 | 将float类 型 数 据 转 换 为int16_t类 型。 |
| asc_float2int32 | 将float类 型 数 据 转 换 为int32_t类 型。 |
| asc_float2int64 | 将float类 型 数 据 转 换 为int64_t类 型。 |
| asc_ge | Ge(greater than or equal to),逐 元 素 比 较src0 >= src1是 否 成 立,成 立 则 输 出 结 果 为1,否 则 输 出 结 果 为0,每 个 元 素 的 比 较 结 果 占 一 个bit。 |
| asc_ge_scalar | 按 元 素 判 断src >= value是 否 成 立,若 成 立 则 输 出 结 果 为1,否 则 为0。 |
| asc_gt_scalar | src中 的 每 个 元 素 逐 个 与 标 量value比 较 大 小,如 果 某 个 位 置 上 的 元 素 大 于value,则 输 出 结 果dst上 的 对 应 比 特 位 为1,否 则 为0。 |
| asc_half2uint8 | 将half类 型 数 据 转 换 为uint8_t类 型,支 持 多 种 舍 入 模 式。 |
| asc_int642float | 将int64_t类 型 数 据 转 换 为float类 型。 |
| asc_le | 按 元 素 判 断src0 <= src1是 否 成 立,若 成 立 则 输 出 结 果 为1,否 则 为0。 |
| asc_leakyrelu | 执 行 矢 量Leaky Relu运 算。 |
| asc_le_scalar | 按 元 素 判 断src <= value是 否 成 立,若 成 立 则 输 出 结 果 为1,否 则 为0。 |
| asc_log | 按 元 素 取 自 然 对 数。 |
| asc_lt_scalar | 执 行 矢 量 中 每 个 位 置 和 标 量 比 较,如 果 值 小 于 标 量 值 则 为1,否 则 为0,结 果 为 每 个bit位 按 小 端 序 排 布。 |
| asc_mrgsort4 | 将 已 经 排 好 序 的 最 多4条 队 列,合 并 排 列 成1条 队 列,结 果 按 照score域 由 大 到 小 排 序。 |
| asc_get_vms4_sr | 获 取 执 行asc_mrgsort4操 作 后 的 队 列 中,每 个 队 列 已 经 理 过 的Region Proposal个 数。 |
| asc_fma | 按 元 素 将src0和src1相 乘 并 和dst相 加,将 最 终 结 果 存 放 进dst中。 |
| asc_mul_add_relu | 按 元 素 将src0和dst相 乘 并 加 上src1,再 进 行Relu计 算(结 果 和0对 比 取 较 大 值),最 终 结 果 存 放 进dst中。 |
| asc_mul_cast_half2int8 | 按 元 素 求 积,并 将 结 果 转 换 为int8_t类 型。 |
| asc_mul_cast_half2uint8 | 按 元 素 求 积,并 将 结 果 转 换 为uint8_t类 型。 |
| asc_ne | 按 元 素 判 断src0 != src1是 否 成 立,若 成 立 则 输 出 结 果 为1,否 则 为0。 |
| asc_not | 按 元 素 做 按 位 取 反,计 算 公 式 如 下。 |
| asc_or | 每 对 元 素 按 位 或 运 算。 |
| asc_reduce | 以 内 置 固 定 模 式 对 应 的 二 进 制 或 者 用 户 自 定 义 输 入 的 数 值 对 应 的gather mask(数 据 收 集 的 掩 码),从 源 操 作 数 中 选 取 元 素 写 入 目 的 操 作 数 中。 |
| asc_rsqrt | 按 元 素 进 行 开 方 后 取 倒 数 的 计 算。 |
| asc_set_va_reg | 用 于 设 置transpose的 地 址,将 操 作 数 地 址 序 列 与 地 址 寄 存 器 关 联。 |
| asc_shiftleft | 将 所 有 元 素 左 移distance位。 |
| asc_sub_relu | 按 元 素 求 差,再 进 行Relu计 算(结 果 和0对 比 取 较 大 值),并 提 供 转 换 最 终 结 果 的 数 据 类 型 的 功 能(s162s8、f322f16、f162s8)。 |
| asc_transto5hd | 数 据 格 式 转 换,一 般 用 于 将NCHW格 式 转 换 成NC1HWC0格 式。 |
| asc_pair_reduce_sum | 对 输 入 数 据 做 归 约 操 作,得 到 数 据 总 和。 |
| asc_copy | 将 数 据 从Unified Buffer搬 运 到Unified Buffer。支 持 高 维 切 分。 |
| asc_squeeze | 通 过 比 较 掩 码src1,将src0中 的 向 量 压 缩 成 更 短 的 向 量,存 储 到dst中。 |
数 据 搬 运
数 据 搬 运 类API,单 独 使 用 时 可 以 引 入vector_datamove.h和cube_datamove.h,此 类API列 表 如 下:
| API名 称 | 说 明 |
|---|---|
| asc_copy_gm2l0a | 将GM中 的 数 据 搬 运 到L0A中。 |
| asc_copy_gm2l0b | 将GM中 的 数 据 搬 运 到L0B中。 |
| asc_copy_gm2l1 | 将GM中 的 数 据 搬 运 到L1中。 |
| asc_copy_gm2l1_nd2nz | 将GM中 的 数 据 搬 运 到L1中。 |
| 将GM中 的 数 据padding后 搬 运 到L1中。 | |
| 将GM中 的 数 据 搬 运 到L1中。 | |
| 将GM中 的 数 据 搬 运 到L1中,在 此 过 程 中 执 行DN->NZ/NCHW->NC1HWC0/NCHW->C1HWNC0操 作。 | |
| asc_copy_l12gm | 将 数 据 从L1搬 运 到GM。 |
| asc_copy_l0c2gm | 将L0C中 的 数 据 搬 运 到GM中。 |
| asc_copy_l0c2ub | 将L0C中 的 数 据 搬 运 到UB中。 |
| asc_copy_l0c2l1 | 矩 阵 计 算 完 成 后,对 结 果 进 行 量 化 处 理,之 后 将 处 理 结 果 搬 运 到L1中。 |
| asc_set_l13d_rpt | 用 于 设 置Load3Dv2接 口 的repeat参 数。 |
| asc_fill_l0a | 将L0A Buffer的Local Memory初 始 化 为 某 一 具 体 数 值。 |
| asc_fill_l0b | 将L0B Buffer的Local Memory初 始 化 为 某 一 具 体 数 值。 |
| asc_fill_l1 | 将L1 Buffer的Local Memory初 始 化 为 某 一 具 体 数 值。 |
| asc_set_l13d_size | 设 置asc_copy_l12l0a/asc_copy_l12l0b的3D格 式 搬 运 接 口 在L1 Buffer的 边 界 值。 |
| asc_load_image_to_cbuf | 将 图 像 数 据 从Global Memory搬 运 到L1 Buffer。 |
| asc_copy_l12bt | 将MMAD指 令 的Bias数 据 从L1 Buffer搬 运 到BiasTable Buffer中。 |
| asc_copy_l12fb_arch_2201 | 将 数 据 从L1 Buffer搬 运 到Fixpipe Buffer中,Fixpipe Buffer用 于 存 放 量 化 参 数。 |
| asc_copy_l12fb_arch_3510 | 将 数 据 从L1 Buffer搬 运 到Fixpipe Buffer中,Fixpipe Buffer用 于 存 放 量 化 参 数。 |
| asc_copy_l12l0a | 用 于 搬 运 存 放 在L1 Buffer里 的512B大 小 的 矩 阵 到L0A Buffer里。 |
| 将 数 据 从L1 Buffer搬 运 到Unified Buffer中。 | |
| asc_copy_l12l0b | 用 于 搬 运 存 放 在L1 Buffer里 的512B大 小 的 矩 阵 到L0B Buffer里。 |
| asc_copy_l12l0c | 将 矩 阵 由L1 Buffer搬 运 到L0C Buffer中。 |
| asc_copy_l12l0b_sparse | 用 于 搬 运 存 放 在L1 Buffer里 的512B大 小 的 稠 密 权 重 矩 阵 到L0B Buffer里,同 时 读 取128B大 小 的 索 引 矩 阵 用 于 稠 密 矩 阵 的 稀 疏 化。 |
| asc_copy_l12l0b_trans | 该 接 口 实 现 带 转 置 的2D格 式 数 据 从L1 Buffer到L0B Buffer的 加 载。 |
| asc_copy_l12l0a_trans | 该 接 口 实 现 带 转 置 的2D格 式 数 据 从L1 Buffer到L0A Buffer的 加 载。 |
| asc_set_l0c_copy_params | DataCopy(CO1->GM、CO1->A1)过 程 中 进 行 随 路 格 式 转 换(NZ格 式 转 换 为ND格 式)时,通 过 调 用 该 接 口 设 置 格 式 转 换 的 相 关 配 置。 |
| asc_set_l0c_copy_prequant | 数 据 搬 运 过 程 中 进 行 随 路 量 化 时,通 过 调 用 该 接 口 设 置 量 化 流 程 中 的 标 量 量 化 参 数。 |
| 将Mx scale矩 阵 从L1 Buffer搬 运 到L0A Buffer。 | |
| 将Mx scale矩 阵 从L1 Buffer搬 运 到L0B Buffer。 | |
| asc_set_l13d_padding | 设 置Pad属 性 描 述,用 于 在 调 用asc_copy_l12l0a接 口 时 配 置 填 充 数 值。 |
| asc_set_l13d_fmatrix | 设 置Feature map属 性 描 述,用 于 在 调 用asc_copy_l12l0a/asc_copy_l12l0b的3D格 式 搬 运 接 口 时 配 置 填 充 数 值。从 左 矩 阵 获 取FeatureMap的 属 性 时 使 用 该 接 口。 |
| asc_set_l13d_fmatrix_b | 设 置Feature map属 性 描 述,用 于 在 调 用asc_copy_l12l0a/asc_copy_l12l0b的3D格 式 搬 运 接 口 时 配 置 填 充 数 值。从 右 矩 阵 获 取FeatureMap的 属 性 时 使 用 该 接 口。 |
| asc_set_l0c2gm_lrelu_alpha | 用 于 设 置asc_copy_l0c2l1或asc_copy_l0c2gm接 口 计 算 过 程 中 使 用 的Leaky ReLU alpha值。该 值 只 支 持half和float两 种 数 据 类 型。 |
| asc_copy_ub2ub | 将 数 据 从Unified Buffer搬 运 到Unified Buffer。 |
| asc_copy_gm2ub | 将 数 据 从Global Memory搬 运 到 Unified Buffer。 |
| asc_copy_gm2ub_align | 提 供 数 据 非 对 齐 搬 运 的 功 能,将 数 据 从Global Memory搬 运 到 Unified Buffer,并 支 持8位/16位/32位 数 据 类 型 搬 运。 |
| asc_copy_ub2gm | 将 数 据 从Unified Buffer搬 运 到 Global Memory。 |
| asc_copy_ub2gm_align | 将 数 据 从Unified Buffer搬 运 到 Global Memory,支 持8位/16位/32位 分 块 拷 贝 操 作。 |
| asc_set_copy_pad_val | 和asc_copy_gm2ub_align或asc_copy_ub2gm_align接 口 配 合 使 用,设 置 连 续 搬 运 数 据 块 左 右 两 侧 需 要 填 补 的 数 据 值。 |
| asc_copy_ub2l1 | 将 数 据 从Unified Buffer (UB) 搬 运 到L1 Buffer。 |
| asc_ndim_copy_gm2ub | 多 维 数 据 搬 运 接 口,将 数 据 从Global Memory (GM) 搬 运 到 Unified Buffer (UB)。 |
| asc_set_gm2ub_loop1_stride | 使 用asc_copy_gm2ub_align将 数 据 从Global Memory (GM) 搬 运 到 Unified Buffer (UB)时,设 置 内 层 循 环 中 相 邻 迭 代 数 据 块 间 的 间 隔。 |
| asc_set_gm2ub_loop2_stride | 使 用asc_copy_gm2ub_align将 数 据 从Global Memory (GM) 搬 运 到 Unified Buffer (UB)时,设 置 外 层 循 环 中 相 邻 迭 代 数 据 块 间 的 间 隔。 |
| asc_set_gm2ub_loop_size | 使 用asc_copy_gm2ub_align将 数 据 从Global Memory (GM) 搬 运 到 Unified Buffer (UB)时,设 置 数 据 搬 运 流 程 中 的 循 环 次 数。 |
| asc_set_ub2gm_loop1_stride | 使 用asc_copy_ub2gm_align将 数 据 从Unified Buffer (UB) 搬 运 到 Global Memory (GM)时,设 置 内 层 循 环 中 源 操 作 数 在 相 邻 迭 代 间 的 数 据 块 间 隔,以 及 目 的 操 作 数 在 相 邻 迭 代 间 的 数 据 块 间 隔。 |
| asc_set_ub2gm_loop2_stride | 使 用asc_copy_ub2gm_align将 数 据 从Unified Buffer (UB) 搬 运 到 Global Memory (GM)时,设 置 外 层 循 环 中 源 操 作 数 在 相 邻 迭 代 间 的 数 据 块 间 隔,以 及 目 的 操 作 数 在 相 邻 迭 代 间 的 数 据 块 间 隔。 |
| asc_set_ub2gm_loop_size | 使 用asc_copy_ub2gm_align将 数 据 从Unified Buffer (UB) 搬 运 到 Global Memory (GM)时,设 置 内 层 循 环 和 外 层 循 环 的 次 数。 |
| asc_set_ndim_loop_stride | 设 置asc_ndim_copy_gm2ub在 进 行 多 维 搬 运 时 每 个 维 度 内 的 源 操 作 数 与 目 的 操 作 数 的 元 素 之 间 的 间 隔,最 多 设 置5个 维 度。 |
| asc_set_ndim_pad_value | 设 置asc_ndim_copy_gm2ub接 口Padding的 填 充 固 定 值。 |
标 量 操 作
标 量 操 作 类API,单 独 使 用 时 可 以 引 入scalar_compute.h,此 类API列 表 如 下:
| API名 称 | 说 明 |
|---|---|
| asc_clz | 计 算 参 数 前 导 零 的 数 量(二 进 制 从 最 高 位 到 第 一 个1共 有 多 少 个0)。 |
| asc_set_nthbit | 计 算 一 个uint64_t类 型 数 字 的 指 定 二 进 制 位 置 为1,其 余 位 保 持 不 变。 |
| asc_sflbits | 计 算 一 个int64_t类 型 数 字 的 二 进 制 中,从 最 高 数 值 位 开 始 与 符 号 位 相 同 的 连 续 比 特 位 的 个 数。 |
| asc_clear_nthbit | 位 操 作 函 数,用 于 将 一 个uint64_t整 数bits的 第idx位 设 置 为0。 |
| asc_ffs | FindFirstSet接 口,输 入 数 据 的 二 进 制 表 示 中 从 最 低 位 向 最 高 位 查 找 第 一 个 值 为1的 位,并 返 回 其 位 置,如 果 没 找 到 则 返 回-1。 |
| asc_ffz | 获 取 一 个uint64_t类 型 数 字 的 二 进 制 表 示 中 从 最 低 有 效 位 开 始 的 第 一 个0出 现 的 位 置,如 果 没 找 到 则 返 回-1。 |
| asc_popc | 获 取 一 个uint64_t类 型 数 字 的 二 进 制 中1的 个 数。 |
| asc_zero_bits_cnt | 获 取 一 个uint64_t类 型 数 字 的 二 进 制 中0的 个 数。 |
| asc_store_dev | 不 经 过DCache向GM地 址 上 写 数 据。 |
| asc_float2int32 | 将float类 型 转 化 为int32_t类 型,并 支 持 多 种 舍 入 模 式。 |
矩 阵 计 算
矩 阵 计 算 类API,单 独 使 用 时 可 以 引 入cube_compute.h,此 类API列 表 如 下:
| API名 称 | 说 明 |
|---|---|
| asc_set_mmad_direction_m | 设 置mmad计 算 时 优 先 通 过M/N中 的N方 向,然 后 通 过M方 向 产 生 结 果,M为 矩 阵 的 行,N为 矩 阵 的 列。 |
| asc_set_mmad_direction_n | 设 置mmad计 算 时 优 先 通 过M/N中 的M方 向,然 后 通 过N方 向 产 生 结 果,M为 矩 阵 的 行,N为 矩 阵 的 列。 |
| asc_enable_hf32_trans | 设 置HF32模 式 取 整 方 式,需 要 先 使 用asc_enable_hf32开 启HF32取 整 模 式。 |
| asc_mmad | 完 成 矩 阵 乘 加 操 作。 |
| asc_mmad_sparse | 完 成 矩 阵 乘 加 操 作,传 入 的 左 矩 阵A为 稀 疏 矩 阵,右 矩 阵B为 稠 密 矩 阵。 |
| asc_set_fp32_mode | 用 于 设 置Mmad计 算 开 启FP32模 式,开 启 该 模 式 后L0A Buffer/L0B Buffer中 的FP32数 据 在 参 与Mmad计 算 之 前 不 做 舍 入 处 理。 |
| asc_set_l0c2gm_config | 数 据 搬 运 过 程 中 进 行 随 路 量 化 时,通 过 调 用 该 接 口 设 置 量 化 流 程 中 的 矢 量 量 化 参 数。 |
| asc_get_l0c2gm_relu | 数 据 搬 运 过 程 中 进 行 随 路 量 化 时,通 过 调 用 该 接 口 获 取ReLU操 作 前 矢 量 的 起 始 地 址。 |
| asc_get_l0c2gm_unitflag | 数 据 搬 运 过 程 中 进 行 随 路 量 化 时,通 过 调 用 该 接 口 获 取unit_flag设 置。 |
| asc_get_l0c2gm_prequant | 数 据 搬 运 过 程 中 进 行 随 路 量 化 时,通 过 调 用 该 接 口 获 取 量 化 操 作 前 矢 量 的 起 始 地 址。 |
| asc_enable_hf32 | 用 于 设 置Mmad计 算 开 启HF32模 式,开 启 该 模 式 后L0A Buffer/L0B Buffer中 的FP32数 据 将 在 参 与Mmad计 算 之 前 被 舍 入 为HF32。 |
同 步 控 制
同 步 控 制 类API,单 独 使 用 时 可 以 引 入sync.h,此 类API列 表 如 下:
| API名 称 | 说 明 |
|---|---|
| 释 放 缓 存。 | |
| 用 于AI Core内 部 异 步 流 水 线 同 步 的 接 口。 | |
| asc_sync_notify | 设 置 同 步 标 志。 |
| asc_sync_wait | 等 待 同 步 标 志。 |
| asc_sync_pipe | 等 待 指 定 流 水 线 操 作 完 成。 |
| asc_sync | 等 待 所 有 流 水 线 操 作 完 成。 |
| asc_sync_vec | 同 步 所 有 流 水 线。 |
| asc_sync_mte3 | 等 待PIPE_MTE3流 水 完 成。 |
| asc_sync_mte2 | 等 待PIPE_MTE2流 水 完 成。 |
| asc_sync_data_barrier | 用 于 阻 塞 后 续 的 指 令 执 行,直 到 所 有 之 前 的 内 存 访 问 指 令(需 要 等 待 的 内 存 位 置 可 以 通 过 参 数 控 制)执 行 结 束。 |
| asc_sync_block_arrive | 该 指 令 用 于 发 送 同 步 信 息 数 据 到 核 间 同 步 寄 存 器,设 置 同 步 点。 |
| asc_sync_block_wait | 和asc_sync_block_arrive配 合 使 用(通 过flagID关 联),用 于 等 待 所 有 同 步 对 象 到 达flagID对 应 的 同 步 点。 |
| 等 待 核 间 同 步 寄 存 器 同 步 标 志。 | |
| 向 核 间 同 步 寄 存 器 发 送 同 步 信 号。 | |
| 等 待block内 同 步 标 志。 |
系 统 变 量
系 统 变 量 类API,单 独 使 用 时 可 以 引 入sys_var.h,此 类API列 表 如 下:
| API名 称 | 说 明 |
|---|---|
| asc_get_block_num | 获 取AI核 数。 |
| asc_get_block_idx | 获 取 当 前 运 行 核 的 索 引。 |
| asc_get_core_id | 获 取 当 前 核 的 编 号。 |
| asc_get_sub_block_id | 获 取AI Core上Vector核 的ID。 |
| asc_get_sub_block_num | 分 离 模 式 下,获 取 一 个AI Core上Cube Core(AIC)或 者Vector Core(AIV)的 数 量。 |
| asc_set_ctrl | 设 置CTRL寄 存 器(控 制 寄 存 器)的 值。 |
| asc_get_ctrl | 读 取CTRL寄 存 器(控 制 寄 存 器)的 值。 |
| asc_get_phy_buf_addr | 基 于 偏 移 量 获 取 片 上 实 际 物 理 地 址。 |
| asc_get_system_cycle | 获 取 当 前 系 统cycle数。 |
| asc_get_arch_ver | 获 取 当 前AI处 理 器 架 构 版 本 号。 |
| asc_get_program_counter | 获 取 程 序 计 数 器 的 指 针,程 序 计 数 器 用 于 记 录 当 前 程 序 执 行 的 位 置。 |
| asc_get_ffts_base_addr | 获 取 核 间 同 步 寄 存 器 的 基 地 址。 |
| asc_set_ffts_base_addr | 在asc_sync_block_arrive和asc_sync_block_wait之 前 使 用,设 置 核 间 同 步 寄 存 器 的 基 地 址。 |
| asc_get_phy_stack_base | 获 取 物 理 堆 栈 基 地 址。 |
| asc_get_smmu_tag_version | 获 取SMMU(System Memory Management Unit)版 本 信 息。 |
| asc_get_status | 获 取 状 态 信 息。 |
| asc_get_sys_virtual_base | 获 取 系 统 虚 拟 基 地 址。 |
| asc_get_vf_len | 获 取Tensor位 宽VL(Vector Length)的 大 小。 |
| 设 置MTE2_NZ_PARA寄 存 器 的 值。 | |
| 设 置PADDING_B寄 存 器 的 值。 | |
| 设 置QUANT_POST寄 存 器 的 值。 | |
| 设 置RELU_ALPHA寄 存 器 的 值。 | |
| asc_set_l0c2gm_channel_para | 对 通 道 步 长 参 数 的 专 用 寄 存 器 的 比 特 位 进 行 设 置。 |
| asc_set_l3d_rpt_b | 用 于 设 置 接 口asc_copy_l12l0a、asc_copy_l12l0b的2D格 式 搬 运 的repeat参 数。 |
缓 存 控 制
缓 存 控 制 类API,单 独 使 用 时 可 以 引 入cache_ctrl.h,此 类API列 表 如 下:
| API名 称 | 说 明 |
|---|---|
| asc_datacache_preload | 从 源 地 址 所 在 的 特 定GM地 址 预 加 载 数 据 到Data Cache中。 |
| asc_dcci | 用 于 刷 新Cache, 保 证Cache的 一 致 性。 |
| 数 据 缓 存 失 效,使 整 个 数 据 缓 存 无 效 化。 | |
| asc_get_icache_preload_status | 获 取ICache的Preload的 状 态。 |
| asc_icache_preload | 从 指 令 所 在DDR地 址 预 加 载 数 据 到 对 应 的cacheline中。 |
原 子 操 作
原 子 操 作 类API,单 独 使 用 时 可 以 引 入atomic.h,此 类API列 表 如 下:
| API名 称 | 说 明 |
|---|---|
| asc_set_atomic_add_bfloat | 设 置 对 后 续 的 从Unified Buffer/L0C Buffer/L1 Buffer到Global Memory的 数 据 传 输 开 启 原 子 累 加。累 加 的 数 据 类 型 为bfloat16_t。 |
| asc_set_atomic_add_float | 设 置 对 后 续 的 从Unified Buffer/L0C Buffer/L1 Buffer到Global Memory的 数 据 传 输 开 启 原 子 累 加。累 加 的 数 据 类 型 为float。 |
| asc_set_atomic_add_float16 | 设 置 对 后 续 的 从Unified Buffer/L0C Buffer/L1 Buffer到Global Memory的 数 据 传 输 开 启 原 子 累 加。累 加 的 数 据 类 型 为half。 |
| asc_set_atomic_add_int | 设 置 对 后 续 的 从Unified Buffer/L0C Buffer/L1 Buffer到Global Memory的 数 据 传 输 开 启 原 子 累 加。累 加 的 数 据 类 型 为int32_t。 |
| asc_set_atomic_add_int8 | 设 置 对 后 续 的 从Unified Buffer/L0C Buffer/L1 Buffer到Global Memory的 数 据 传 输 开 启 原 子 累 加。累 加 的 数 据 类 型 为int8_t。 |
| asc_set_atomic_add_int16 | 设 置 对 后 续 的 从Unified Buffer/L0C Buffer/L1 Buffer到Global Memory的 数 据 传 输 开 启 原 子 累 加。累 加 的 数 据 类 型 为int16_t。 |
| asc_set_atomic_max_bfloat | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的bfloat16_t数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 大 值 写 入GM。 |
| asc_set_atomic_max_float | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的float数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 大 值 写 入GM。 |
| asc_set_atomic_max_float16 | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的half数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 大 值 写 入GM。 |
| asc_set_atomic_max_int | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的int32_t数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 大 值 写 入GM。 |
| asc_set_atomic_max_int8 | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的int8_t数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 大 值 写 入GM。 |
| asc_set_atomic_max_int16 | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的int16_t数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 大 值 写 入GM。 |
| asc_set_atomic_min_bfloat | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的bfloat16_t数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 小 值 写 入GM。 |
| asc_set_atomic_min_float | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的float数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 小 值 写 入GM。 |
| asc_set_atomic_min_float16 | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的half数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 小 值 写 入GM。 |
| asc_set_atomic_min_int | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的int32_t数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 小 值 写 入GM。 |
| asc_set_atomic_min_int8 | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的int8_t数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 小 值 写 入GM。 |
| asc_set_atomic_min_int16 | 设 置 计 算 结 果 以 原 子 比 较 的 方 式 传 输 到GM。在 拷 贝 前,将 待 传 输 的int16_t数 据 与GM中 已 有 数 据 进 行 逐 元 素 比 较,并 将 最 小 值 写 入GM。 |
| asc_set_store_atomic_config_v1 | 设 置 原 子 操 作 启 用 位 与 原 子 操 作 类 型 的 值,适 用 于Atlas A3 训 练 系 列 产 品/Atlas A3 推 理 系 列 产 品 和Atlas A2 训 练 系 列 产 品/Atlas A2 推 理 系 列 产 品。 |
| 设 置 原 子 操 作 启 用 位 与 原 子 操 作 类 型 的 值,适 用 于Ascend 950PR/Ascend 950DT。 | |
| asc_get_store_atomic_config | 获 取 原 子 操 作 启 用 位 与 原 子 操 作 类 型 的 值。 |
| asc_set_atomic_none | 清 空 原 子 操 作 的 状 态。 |
其 他 操 作
| API名 称 | 说 明 |
|---|---|
| asc_init | 初 始 化NPU状 态。 |
Reg数 据 搬 运
Reg数 据 搬 运 类API,单 独 使 用 时 可 以 引 入reg_load.h,此 类API列 表 如 下:
| API名 称 | 说 明 |
|---|---|
| asc_load | reg计 算 数 据 搬 运 接 口,支 持 从UB非32字 节 对 齐 的 源 地 址src搬 运 至 矢 量 数 据 寄 存 器,搬 运 量 为VL。 |
| asc_loadalign | 对 齐 数 据 搬 运 接 口,从UB连 续 对 齐 搬 入 目 的 操 作 数,支 持 多 种 搬 入 模 式。 |
| asc_loadalign | 对 齐 数 据 搬 运 接 口,从UB连 续 对 齐 搬 入 目 的 操 作 数,随 路 完 成deinterleave操 作。 |
| asc_loadalign_postupdate | 将 数 据 从UB搬 入MaskReg,使 能post mod。 |
| asc_loadunalign_pre | 用 于 在 进 行 非 对 齐 数 据 搬 入 前 的 初 始 化,需 配 合asc_loadunalign接 口 使 用。 |
| asc_loadunalign | reg计 算 数 据 搬 运 接 口,适 用 于 从UB非32B对 齐 的 起 始 地 址 连 续 搬 入 矢 量 数 据 寄 存 器 的 场 景。 |
| asc_gather | 根 据 索 引 位 置index将 源 操 作 数src按 元 素 收 集 到 目 的 操 作 数dst中。 |
| asc_gather_datablock | 给 定 源 操 作 数 在UB中 的 基 地 址 和 索 引,根 据 索 引 位 置 将 源 操 作 数 按DataBlock收 集 到 目 的 操 作 数 中。 |
| asc_get_mask_spr | 从 特 殊 寄 存 器SPR{MASK1, MASK0}读 取mask值 并 根 据 数 据 类 型 格 式 返 回 对 应 的mask数 据,MASK0、MASK1均 为64bit的 寄 存 器。 |
| asc_store | reg计 算 数 据 搬 运 接 口,适 用 于 从 矢 量 数 据 寄 存 器 搬 出 到UB的 场 景,不 区 分 是 否 对 齐,在 追 求 极 致 性 能 时,应 尽 量 避 免 使 用 该 接 口。 |
| asc_storealign | reg计 算 数 据 搬 运 接 口,适 用 于 从 矢 量 数 据 寄 存 器 连 续 对 齐 搬 出 到UB的 场 景,并 支 持 多 种 搬 出 模 式。 |
| asc_storeunalign | reg计 算 数 据 搬 运 接 口,适 用 于 从 矢 量 数 据 寄 存 器 连 续 非32B对 齐 的 起 始 地 址 连 续 搬 出 到UB的 场 景。 |
| asc_storeunalign_postupdate | reg计 算 数 据 搬 运 接 口,适 用 于 从 矢 量 数 据 寄 存 器 连 续 非32B对 齐 的 起 始 地 址 连 续 搬 出 到UB的 场 景。 |
Reg矢 量 计 算
Reg矢 量 计 算 类API,单 独 使 用 时 可 以 引 入reg_vector.h,此 类API列 表 如 下:
| API名 称 | 说 明 |
|---|---|
| asc_abs | 逐 元 素 计 算 绝 对 值。 |
| asc_abs_sub | 逐 元 素 计 算 差 的 绝 对 值。 |
| asc_add | 按 元 素 执 行 加 法 运 算。 |
| asc_addc | 按 元 素 执 行 带 进 位 的 加 法 运 算。 |
| asc_add_scalar | 按 元 素 执 行 矢 量 和 标 量 的 加 法 运 算。 |
| asc_and | 对 掩 码 寄 存 器 操 作:根 据mask对 源 操 作 数src0、src1的 有 效bit进 行 逻 辑 与 运 算,得 到 新 的 掩 码 寄 存 器。 |
| asc_arange | 以 传 入 的value为 起 始 值,生 成 递 增/递 减 的 索 引,并 将 生 成 的 索 引 保 存 在dst中。 |
| asc_axpy | 根 据mask对 源 操 作 数src、value进 行 按 元 素 做 乘 加 操 作,将 结 果 写 入 目 的 操 作 数dst。 |
| asc_bfloat162e1m2x2 | 将bfloat16_t类 型 转 换 为fp4x2_e1m2_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_bfloat162e2m1x2 | 将bfloat16_t类 型 转 换 为fp4x2_e2m1_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_bfloat162float | 将bfloat16_t类 型 转 换 为float类 型,无 舍 入 模 式。 |
| asc_bfloat162half | 将bfloat16_t类 型 转 换 为half类 型,并 支 持 多 种 舍 入 模 式 和 饱 和/非 饱 和 模 式。 |
| asc_bfloat162int32 | 将bfloat16_t类 型 数 据 转 换 为int32_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_clear_ar_spr | 对AR寄 存 器 进 行 清 理,AR寄 存 器 通 常 由asc_squeeze接 口 使 用。 |
| asc_copy | 完 成 数 据 在 寄 存 器 内 的 搬 运。 |
| asc_create_iter_reg | 地 址 寄 存 器 通 过 该 接 口 初 始 化,然 后 在 循 环 之 中 使 用 地 址 寄 存 器 存 储 地 址 偏 移 量。 |
| asc_create_mask | 根 据 入 参 生 成 相 应 的 掩 码 寄 存 器。 |
| asc_cumulative_histogram | 对 直 方 图 数 据 进 行 累 计 统 计。 |
| asc_deintlv | 给 定 源 操 作 数src0和src1,将src0和src1中 的 元 素 解 交 织 存 入 结 果 操 作 数dst0和dst1中。 |
| asc_div | 按 元 素 执 行 除 法 运 算。 |
| asc_duplicate | 根 据mask将 源 操 作 数src的 最 低 位 元 素 填 充 到 目 的 操 作 数dst。 |
| asc_duplicate_scalar | 根 据mask将value填 充 到 目 的 操 作 数dst。 |
| asc_e1m2x22bfloat16 | 将fp4x2_e1m2_t类 型 转 换 为bfloat16_t类 型。 |
| asc_e2m1x22bfloat16 | 将fp4x2_e2m1_t类 型 转 换 为bfloat16_t类 型。 |
| asc_e4m32float | 将fp8_e4m3fn_t类 型 转 换 为float类 型。 |
| asc_e5m22float | 将vector_fp8_e5m2_t类 型 的 源 操 作 数 以256B为 单 位 分 为 四 部 分,读 取 其 中 一 部 分 元 素,将 其 转 换 成vector_float类 型 并 写 入 目 的 操 作 数。 |
| asc_eq | 对 源 操 作 数 逐 元 素 比 较 是 否 相 等。 |
| asc_eq_scalar | 对 源 操 作 数 逐 元 素 比 较 是 否 与 标 量 相 等。 |
| asc_exp | 对 源 操 作 数 逐 元 素 计 算 指 数。 |
| asc_exp_sub | 将src0与src1相 减,差 值 作 为e的 指 数 计 算。 |
| asc_float2bfloat16 | 将float类 型 转 换 为bfloat16_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_float2e4m3 | 将float类 型 转 换 为fp8_e4m3fn_t类 型,支 持RINT舍 入 模 式。 |
| asc_float2e5m2 | 将float类 型 数 据 转 换 为fp8_e5m2类 型。 |
| asc_float2half | 将float类 型 转 换 为half类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_float2hif8 | 将float类 型 转 换 为hifloat8_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_float2int16 | 将float类 型 转 换 为int16_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_float2int32 | 将float类 型 转 换 为int32_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_float2int64 | 将float类 型 转 换 为int64_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_frequency_histogram | 对 直 方 图 数 据 进 行 频 率 统 计。 |
| asc_ge | ge(greater than or equal to),对 源 操 作 数 执 行 逐 元 素 比 较。 |
| asc_ge_scalar | ge(greater than or equal to),对 源 操 作 数 与 标 量 执 行 逐 元 素 比 较。 |
| asc_gt | gt(greater than),对 源 操 作 数 执 行 逐 元 素 比 较。 |
| asc_gt_scalar | gt(greater than),对 源 操 作 数 与 标 量 执 行 逐 元 素 比 较。 |
| asc_half2bfloat16 | 将half类 型 数 据 转 换 为bfloat16_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_half2float | 将half类 型 数 据 转 换 为float类 型。 |
| asc_half2hif8 | 将half类 型 转 换 为hifloat8_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_half2int16 | 将half类 型 数 据 转 换 为int16_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_half2int32 | 将half类 型 数 据 转 换 为int32_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_half2int4x2 | 将half类 型 数 据 转 换 为int4x2_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_half2int8 | 将half类 型 转 换 为int8_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_half2uint8 | 将half类 型 转 换 为uint8_t类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_hif82float | 将hifloat8_t类 型 数 据 转 换 为float类 型。 |
| asc_hif82half | 将hifloat8_t类 型 数 据 转 换 为half类 型。 |
| asc_int162float | 将int16_t类 型 转 换 为float类 型。 |
| asc_int162half | 将int16_t类 型 转 换 为half类 型。 |
| asc_int162int32 | 将int16_t类 型 转 换 为int32_t类 型。 |
| asc_int162uint32 | 将int16_t类 型 转 换 为uint32_t类 型。 |
| asc_int162uint8 | 将int16_t类 型 转 换 为uint8_t类 型。 |
| asc_int322float | 将int32_t类 型 转 换 为float类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_int322int16 | 将int32_t类 型 转 换 为int16_t类 型。 |
| asc_int322int64 | 将int32_t类 型 转 换 为int64_t类 型。 |
| asc_int322uint16 | 将int32_t类 型 转 换 为uint16_t类 型。 |
| asc_int322uint8 | 将int32_t类 型 转 换 为uint8_t类 型。 |
| asc_int4x22bfloat16 | 将int4x2_t类 型 转 换 为bfloat16_t类 型,无 舍 入 模 式。 |
| asc_int4x22half | 将int4x2_t类 型 数 据 转 换 为half类 型。 |
| asc_int4x22int16 | 将int4x2_t类 型 转 换 为int16_t类 型。 |
| asc_int642float | 将int64_t类 型 数 据 转 换 为float类 型,并 支 持 多 种 舍 入 模 式。 |
| asc_int642int32 | 将int64_t类 型 转 换 为int32_t类 型。 |
| asc_int82half | 将int8_t类 型 转 换 为half类 型。 |
| asc_int82int16 | 将int8_t类 型 转 换 为int16_t类 型。 |
| asc_int82int32 | 将int8_t类 型 转 换 为int32_t类 型。 |
| asc_intlv | 将 源 操 作 数src0和src1中 的 元 素 交 织 存 入 目 的 操 作 数dst0和dst1中。 |
| asc_le | le(less than or equal to),对 源 操 作 数 执 行 逐 元 素 比 较。 |
| asc_leakyrelu | 按 元 素 执 行Leaky ReLU(Leaky Rectified Linear Unit)操 作。 |
| asc_le_scalar | le(less than or equal to),对 源 操 作 数 与 标 量 执 行 逐 元 素 比 较。 |
| asc_ln | 对 源 操 作 数 逐 元 素 计 算 自 然 对 数。 |
| asc_lt | lt(less than),对 源 操 作 数 执 行 逐 元 素 比 较。 |
| asc_lt_scalar | lt(less than),对 源 操 作 数 与 标 量 执 行 逐 元 素 比 较。 |
| asc_madd | madd(multiply-add),对 源 操 作 数 执 行 逐 元 素 乘 法 和 加 法。 |
| asc_max | 按 元 素 求 最 大 值。 |
| asc_max_scalar | 按 元 素 求 矢 量 和 标 量 的 最 大 值。 |
| asc_mem_bar | Reg计 算 宏 函 数 内 不 同 流 水 线 之 间 的 同 步 指 令。 |
| asc_min | 根 据mask对 源 操 作 数src0、src1进 行 按 元 素 求 最 小 值 操 作,将 结 果 写 入 目 的 操 作 数dst。 |
| asc_min_scalar | 源 操 作 数 矢 量 内 每 个 元 素 与 标 量 比 较,取 较 小 值。 |
| asc_mul | 对 源 操 作 数src0和src1进 行 乘 法 运 算,将 结 果 写 入 目 的 操 作 数dst。 |
| asc_mull | 根 据mask对 输 入 数 据src0、src1按 元 素 相 乘,将 结 果 写 入dst0,溢 出 部 分 写 入dst1。 |
| asc_muls | 对 源 操 作 数src和value进 行 乘 法 运 算 再 按 照 数 据 类 型 转 换 的ROUND舍 入 模 式 转 成half类 型,根 据mask将 结 果 写 入 目 的 操 作 数dst。 |
| asc_mul_scalar | 对 源 操 作 数src、value进 行 按 元 素 乘 法 操 作,将 结 果 写 入 目 的 操 作 数dst。 |
| asc_ne | ne(not equal),对 源 操 作 数 执 行 逐 元 素 比 较。 |
| asc_neg | 根 据mask对 源 操 作 数src进 行 取 相 反 数 操 作,将 结 果 写 入 目 的 操 作 数dst。 |
| asc_ne_scalar | src中 的 每 个 元 素 逐 个 与 标 量value比 较 大 小,如 果src_i != value,则 输 出 结 果dst对 应 比 特 位 为1,否 则 为0。 |
| asc_not | 执 行 矢 量 非 运 算。 |
| asc_or | 对 源 操 作 数src0和src1进 行 或( |
| asc_pack | 将 源 操 作 数 中 的 元 素 选 取 低8位(b16)、低16位(b32)、低32位(b64)写 入 目 的 操 作 数 的 低 半 部 分 或 高 半 部 分。 |
| asc_pair_reduce_sum | PairReduceSum: 相 邻 两 个(奇 偶)元 素 求 和,结 果 写 入dst。 |
| asc_prelu | 源 操 作 数src0大 于0的 情 况 下 直 接 将src0写 入 目 的 操 作 数dst,否 则 将src0 * src1的 结 果 写 入dst。 |
| asc_reduce_max | 根 据mask对 源 操 作 数src进 行 归 约 最 大 值 操 作,将 结 果 写 入 目 的 操 作 数dst。 |
| asc_reduce_max_datablock | 找 出DataBlock中 的 最 大 值,并 将 最 终 的 计 算 结 果 依 次 保 存 在dst中 的 最 低 位。 |
| asc_reduce_min | 根 据mask对 源 操 作 数src进 行 归 约 最 小 值 操 作,将 结 果 写 入 目 的 操 作 数dst。 |
| asc_reduce_min_datablock | 根 据mask将 每 个DataBlock(32B)中 的 最 小 值,依 次 保 存 在dst中 的 最 低 位。 |
| asc_reduce_sum | 归 约 求 和 功 能,用 于 将src中 的 所 有 参 与 计 算 的 元 素 求 和,得 到 的 结 果 保 存 在dst中。 |
| asc_reduce_sum_datablock | 归 约 求 和 功 能,用 于 将src每 个DataBlock(32B)中 参 与 计 算 的 元 素 求 和,得 到 的 结 果 依 次 保 存 在dst中。 |
| asc_relu | 逐 元 素 执 行ReLU运 算。 |
| asc_select | 根 据mask的 比 特 位 值,从 源 操 作 数src0、src1中 选 择 元 素,得 到 目 的 操 作 数dst。 |
| asc_shiftleft | 根 据 掩 码mask对 输 入 数 据src0,按 照src1对 应 元 素 进 行 左 移 操 作,完 成 后 将 结 果 写 入dst中。 |
| asc_shiftleft_scalar | 根 据mask对 源 操 作 数src执 行 左 移,左 移 的 位 数 由 输 入 参 数value决 定,将 结 果 写 入 目 的 操 作 数dst。 |
| asc_shiftright | 根 据 掩 码mask对 输 入 数 据src0,按 照src1对 应 元 素 进 行 右 移 操 作,完 成 后 将 结 果 写 入dst中。 |
| asc_shiftright_scalar | 根 据mask对 源 操 作 数src执 行 右 移,右 移 的 位 数 由 输 入 参 数value决 定,将 结 果 写 入 目 的 操 作 数dst。 |
| asc_sqrt | 逐 元 素 计 算 平 方 根。 |
| asc_squeeze | 将src中 被mask选 择 的 有 效 元 素 依 次 复 制 到dst,有 效 元 素 在dst上 连 续 排 列。 |
| asc_sub | 按 元 素 执 行 减 法 运 算。 |
| asc_subc | 按 元 素 执 行 带 借 位 的 减 法 运 算。 |
| asc_truncate | 将 源 操 作 数 的 浮 点 数 元 素 截 断 到 整 数 位,同 时 源 操 作 数 的 数 据 类 型 保 持 不 变,并 支 持 多 种 舍 入 模 式。 |
| asc_uint162uint32 | 将uint16_t类 型 转 换 为uint32_t类 型。 |
| asc_uint162uint8 | 将uint16_t类 型 转 换 为uint8_t类 型。 |
| asc_uint322int16 | 将uint32_t类 型 转 换 为int16_t类 型。 |
| asc_uint322uint16 | 将uint32_t类 型 转 换 为uint16_t类 型。 |
| asc_uint322uint8 | 将uint32_t类 型 转 换 为uint8_t类 型。 |
| asc_uint82half | 将uint8_t类 型 转 换 为half类 型。 |
| asc_uint82uint16 | 将uint8_t类 型 转 换 为uint16_t类 型。 |
| asc_uint82uint32 | 将uint8_t类 型 转 换 为uint32_t类 型。 |
| asc_unpack | 矢 量 解 包 操 作。 |
| asc_unsqueeze | 根 据mask进 行 解 压 缩,将 生 成 的 数 据 输 出 到dst。 |
| asc_update_mask | 根 据value大 小 生 成 对 应 的 掩 码 寄 存 器 中 的 值。 |
| asc_xor | 根 据mask对 输 入 的src0、src1按 元 素 异 或(^)进 行 操 作,将 结 果 写 入dst。 |