昇腾社区首页
中文
注册
开发者
下载

copy_ubuf_to_gm_align

功能说明

从UB搬运至GM的align接口。

执行此接口时,硬件从UB读取的每个burst的实际数据大小为:

((burst_length – 1)/32 + 1)*32 (bytes).

如果burst_length与32B对齐,则不会从UB读取哑数据,从UB读取的所有数据将写入GM,如下图所示。

图1 copy_ubuf_to_gm_align图示,其中burst length是32B对齐的

如果burst_length未对齐到32B,则将从UB读取哑数据,并在写入GM时丢弃,如下所示。

图2 copy_ubuf_to_gm_align图示,其中burst length不是32B对齐的

接口原型

// 相同接口的不同原型区别在于源地址和目的地址的数据类型不同
void copy_ubuf_to_gm_align_b8(__gm__ void *dst, __ubuf__ void *src, uint8_t sid, uint16_t nBurst, uint32_t lenBurst, uint8_t leftPaddingNum, uint8_t rightPaddingNum, uint32_t srcGap, uint32_t dstGap);

void copy_ubuf_to_gm_align_b32(__gm__ void *dst, __ubuf__ void *src, uint8_t sid, uint16_t nBurst, uint32_t lenBurst, uint8_t leftPaddingNum, uint8_t rightPaddingNum, uint32_t srcGap, uint32_t dstGap);

void copy_ubuf_to_gm_align_b16(__gm__ void *dst, __ubuf__ void *src, uint8_t sid, uint16_t nBurst, uint32_t lenBurst, uint8_t leftPaddingNum, uint8_t rightPaddingNum, uint8_t srcGap, uint8_t dstGap);

流水类型

PIPE_MTE3