asc_duplicate
产 品 支 持 情 况
| 产 品 | 是 否 支 持 |
|---|---|
| √ | |
| √ |
功 能 说 明
执 行 矢 量 复 制(Duplicate)操 作,将 标 量 值 复 制 填 充 到 矢 量 中。
函 数 原 型
前n个 数 据 计 算
C++__aicore__ inline void asc_duplicate(__ubuf__ half* dst, half src, uint32_t count) __aicore__ inline void asc_duplicate(__ubuf__ int16_t* dst, int16_t src, uint32_t count) __aicore__ inline void asc_duplicate(__ubuf__ uint16_t* dst, uint16_t src, uint32_t count) __aicore__ inline void asc_duplicate(__ubuf__ bfloat16_t* dst, bfloat16_t src, uint32_t count) __aicore__ inline void asc_duplicate(__ubuf__ float* dst, float src, uint32_t count) __aicore__ inline void asc_duplicate(__ubuf__ int32_t* dst, int32_t src, uint32_t count) __aicore__ inline void asc_duplicate(__ubuf__ uint32_t* dst, uint32_t src, uint32_t count)高 维 切 分 计 算
C++__aicore__ inline void asc_duplicate(__ubuf__ half* dst, half src, uint8_t repeat, uint16_t dst_block_stride, uint16_t dst_repeat_stride) __aicore__ inline void asc_duplicate(__ubuf__ int16_t* dst, int16_t src, uint8_t repeat, uint16_t dst_block_stride, uint16_t dst_repeat_stride) __aicore__ inline void asc_duplicate(__ubuf__ uint16_t* dst, uint16_t src, uint8_t repeat, uint16_t dst_block_stride, uint16_t dst_repeat_stride) __aicore__ inline void asc_duplicate(__ubuf__ bfloat16_t* dst, bfloat16_t src, uint8_t repeat, uint16_t dst_block_stride, uint16_t dst_repeat_stride) __aicore__ inline void asc_duplicate(__ubuf__ float* dst, float src, uint8_t repeat, uint16_t dst_block_stride, uint16_t dst_repeat_stride) __aicore__ inline void asc_duplicate(__ubuf__ int32_t* dst, int32_t src, uint8_t repeat, uint16_t dst_block_stride, uint16_t dst_repeat_stride) __aicore__ inline void asc_duplicate(__ubuf__ uint32_t* dst, uint32_t src, uint8_t repeat, uint16_t dst_block_stride, uint16_t dst_repeat_stride)同 步 计 算
C++__aicore__ inline void asc_duplicate_sync(__ubuf__ half* dst, half src, uint32_t count) __aicore__ inline void asc_duplicate_sync(__ubuf__ int16_t* dst, int16_t src, uint32_t count) __aicore__ inline void asc_duplicate_sync(__ubuf__ uint16_t* dst, uint16_t src, uint32_t count) __aicore__ inline void asc_duplicate_sync(__ubuf__ bfloat16_t* dst, bfloat16_t src, uint32_t count) __aicore__ inline void asc_duplicate_sync(__ubuf__ float* dst, float src, uint32_t count) __aicore__ inline void asc_duplicate_sync(__ubuf__ int32_t* dst, int32_t src, uint32_t count) __aicore__ inline void asc_duplicate_sync(__ubuf__ uint32_t* dst, uint32_t src, uint32_t count)
参 数 说 明
| 参 数 名 | 输 入/输 出 | 描 述 |
|---|---|---|
| dst | 输 出 | 目 的 操 作 数(矢 量)的 起 始 地 址。 |
| src | 输 入 | 源 操 作 数(标 量)。 |
| count | 输 入 | 参 与 连 续 复 制 的 元 素 个 数。 |
| repeat | 输 入 | 迭 代 次 数。 |
| dst_block_stride | 输 入 | 目 的 操 作 数 单 次 迭 代 内 不 同DataBlock间 地 址 步 长。 |
| dst_repeat_stride | 输 入 | 目 的 操 作 数 相 邻 迭 代 间 相 同DataBlock的 地 址 步 长。 |
返 回 值 说 明
无
流 水 类 型
PIPE_V
约 束 说 明
- dst的 起 始 地 址 需 要32字 节 对 齐。
调 用 示 例
C++
constexpr uint32_t dst_length = 128;
__ubuf__ uint16_t dst[dst_length];
uint16_t val = 18;
asc_duplicate(dst, val, dst_length);
结 果 示 例:
Text
输 出 数 据dst:[18 18 18 ... 18]