LoadDataWithSparse
产 品 支 持 情 况
功 能 说 明
用 于 搬 运 存 放 在B1里 的512B的 稠 密 权 重 矩 阵 到B2里,同 时 读 取128B的 索 引 矩 阵 用 于 稠 密 矩 阵 的 稀 疏 化。索 引 矩 阵 的 数 据 类 型 为int2,需 要 拼 成int8的 数 据 类 型,再 传 入 接 口。
索 引 矩 阵 在 一 个int8的 地 址 中 的 排 布 是 逆 序 排 布 的,例 如:索 引 矩 阵1 2 0 1 0 2 1 0,在 地 址 中 的 排 布 为1 0 2 1 0 1 2 0,其 中1 0 2 1(对 应 索 引 矩 阵 前 四 位1 2 0 1)为 一 个int8,0 1 2 0(对 应 索 引 矩 阵 后 四 位0 2 1 0)为 一 个int8。
索 引 矩 阵 的 功 能 说 明 参 考MmadWithSparse。
函 数 原 型
Text
template <typename T = int8_t, typename U = uint8_t, typename Std::enable_if<Std::is_same<PrimT<T>, int8_t>::value, bool>::type = true, typename Std::enable_if<Std::is_same<PrimT<U>, uint8_t>::value, bool>::type = true>
__aicore__ inline void LoadDataWithSparse(const LocalTensor<T>& dst, const LocalTensor<T>& src, const LocalTensor<U>& idx, const LoadData2dParams& loadDataParam)
参 数 说 明
表 1 模 板 参 数 说 明
|
表 2 参 数 说 明
目 的 操 作 数,类 型 为LocalTensor,支 持 的TPosition为B2,LocalTensor的 起 始 地 址 需 要512字 节 对 齐。 | ||
源 操 作 数,类 型 为LocalTensor,支 持 的TPosition为B1,LocalTensor的 起 始 地 址 需 要32字 节 对 齐。 | ||
源 操 作 数,类 型 为LocalTensor,支 持 的TPosition为B1,LocalTensor的 起 始 地 址 需 要32字 节 对 齐。 | ||
LoadData参 数 结 构 体,LoadData2DParams类 型,详 细 说 明 参 考LoadData2DParams结 构 体 内 参 数 说 明。 |
约 束 说 明
- 操 作 数 地 址 对 齐 要 求 请 参 见通 用 地 址 对 齐 约 束。
- repeat=0表 示 不 执 行。
- 每 次 迭 代 中 的startIndex不 能 小 于 零。
- 不 支 持 转 置 功 能。
返 回 值 说 明
无
调 用 示 例
详 细 用 例 请 参 考MmadWithSparse。