Skip to content
版 本

SetFmatrix

产 品 支 持 情 况

产 品

是 否 支 持

Ascend 950PR/Ascend 950DT

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

x

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

x

Atlas 200I/500 A2 推 理 产 品

Atlas 推 理 系 列 产 品AI Core

Atlas 推 理 系 列 产 品Vector Core

x

Atlas 训 练 系 列 产 品

x

Kirin X90

Kirin 9030

功 能 说 明

用 于 调 用Load3Dv1/Load3Dv2时 设 置FeatureMap的 属 性 描 述。Load3Dv1/Load3Dv2的 模 板 参 数isSetFMatrix设 置 为false时,表 示Load3Dv1/Load3Dv2传 入 的FeatureMap的 属 性(包 括l1H、l1W、padList,参 数 介 绍 参 考表4 LoadData3DParamsV1结 构 体 内 参 数 说 明表5 LoadData3DParamsV2结 构 体 内 参 数 说 明)描 述 不 生 效,开 发 者 需 要 通 过 该 接 口 进 行 设 置。

函 数 原 型

Text
__aicore__ inline void SetFmatrix(uint16_t l1H, uint16_t l1W, const uint8_t padList[4], const FmatrixMode& fmatrixMode)

参 数 说 明

表 1 参 数 说 明

参 数 名 称

输 入/输 出

含 义

l1H

输 入

源 操 作 数height,取 值 范 围:l1H∈[1, 32767]。

l1W

输 入

源 操 作 数width,取 值 范 围:l1W∈[1, 32767] 。

padList

输 入

padding列 表 [padding_left, padding_right, padding_top, padding_bottom],每 个 元 素 取 值 范 围:[0,255]。默 认 为{0, 0, 0, 0}。

fmatrixMode

输 入

用 于 控 制LoadData指 令 从left还 是right寄 存 器 获 取 信 息。FmatrixMode类 型,定 义 如 下。当 前 只 支 持FMATRIX_LEFT,左 右 矩 阵 均 使 用 该 配 置。

enum class FmatrixMode : uint8_t {
    FMATRIX_LEFT = 0,
    FMATRIX_RIGHT = 1,
}; 

约 束 说 明

  • 该 接 口 需 要 配 合load3Dv1/load3Dv2接 口 一 起 使 用,需 要 在load3Dv1/load3Dv2接 口 之 前 调 用。
  • 操 作 数 地 址 对 齐 要 求 请 参 见通 用 地 址 对 齐 约 束

调 用 示 例

完 整 调 用 示 例 参 考SetLoadDataBoundary样 例

Text
uint16_t channelSize = 32;
uint16_t H = 4, W = 4;
uint8_t Kh = 2, Kw = 2;
uint16_t Cout = 16;
uint16_t C0, C1;
uint8_t dilationH = 2, dilationW = 2;

uint8_t padList[PAD_SIZE] = {0, 0, 0, 0};
AscendC::SetFmatrix(H, W, padList, FmatrixMode::FMATRIX_LEFT); // 启 用FM内 存 排 布 模 式, 从left寄 存 器 获 取 信 息
AscendC::SetLoadDataPaddingValue(0);
AscendC::SetLoadDataRepeat({0, 1, 0});
AscendC::SetLoadDataBoundary((uint32_t)0);
static constexpr AscendC::IsResetLoad3dConfig LOAD3D_CONFIG = {false,false};
AscendC::LoadData<fmap_T, LOAD3D_CONFIG>(featureMapA2, featureMapA1,
    { padList, H, W, channelSize, k, howoRound, 0, 0, 1, 1, Kw, Kh, dilationW, dilationH, false, false, 0 });
AscendC::LoadData(weightB2, weightB1, { 0, weRepeat, 1, 0, 0, false, 0 });

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