Remote Memory Access
类型定义
-
ACLSHMEM_TYPENAME_FUN(FUNC)
标准RMA类型和名称。
TYPENAME
TYPE
float
float
double
double
bfloat16
bfloat16_t
half
half
char
char
schar
signed char
short
short
int
int
long
long
longlong
long long
uchar
unsigned char
ushort
unsigned short
uint
unsigned int
ulong
unsigned long
ulonglong
unsigned long long
int8
int8_t
int16
int16_t
int32
int32_t
int64
int64_t
uint8
uint8_t
uint16
uint16_t
uint32
uint32_t
uint64
uint64_t
size
size_t
UB初始化接口
-
ACLSHMEM_DEVICE_PREFIX void aclshmemx_aicore_init(__ubuf__ uint8_t *ub, uint32_t len, uint8_t evtid)
初始化用于get和put接口临时使用的ub buffer,需要用户提前申请。
- 参数:
ub – [in] 用户申请的ub buffer的起始地址。
len – [in] 用户申请的ub buffer的大小,单位为字节。
evtid – [in] 用于同步MTE2/MTE3事件的ID。
同步接口
ACLSHMEM_PUT
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_putmem(__gm__ void *dest, __gm__ const void *source, size_t nelems, int pe)
-
ACLSHMEM_HOST_PREFIX void aclshmem_putmem(void *dest, const void *source, size_t bytes, int pe)
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_TYPENAME_put(__gm__ TYPE *dest, __gm__ const TYPE *source, size_t nelems, int pe)
同步接口。将本PE上的连续数据复制到指定PE上的对称地址。
TYPENAME及TYPE的可选值见 ACLSHMEM_TYPENAME_FUN。
- 参数:
dest – [in] 目标数据在对称内存上的地址。
source – [in] 源数据在本PE上的地址。
nelems – [in] 目标数据和源数据的元素数量。
pe – [in] 远端PE的PE id。
ACLSHMEM_P
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_TYPENAME_p(__gm__ TYPE *dest, TYPE value, int pe)
同步接口。将单个TYPE类型的元素复制到指定PE上的对称地址。
TYPENAME及TYPE的可选值见 ACLSHMEM_TYPENAME_FUN。
- 参数:
dest – [in] 目标数据在对称内存上的地址。
value – [in] 需要put的值。
pe – [in] 目标PE的PE id。
ACLSHMEM_GET
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_getmem(__gm__ void *dest, __gm__ const void *source, size_t nelems, int pe)
-
ACLSHMEM_HOST_PREFIX void aclshmem_getmem(void *dest, const void *source, size_t bytes, int pe)
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_TYPENAME_get(__gm__ TYPE *dest, __gm__ const TYPE *source, size_t nelems, int pe)
同步接口。从指定PE将对称内存上的连续数据复制到本PE的地址。
TYPENAME及TYPE的可选值见 ACLSHMEM_TYPENAME_FUN。
- 参数:
dest – [in] 目标数据在本PE上的地址。
source – [in] 源数据在对称内存上的地址。
nelems – [in] 目标数据和源数据的元素数量。
pe – [in] 远端PE的PE id。
ACLSHMEM_G
-
ACLSHMEM_DEVICE_PREFIX TYPE aclshmem_TYPENAME_g(__gm__ const TYPE *source, int pe)
同步接口。从指定PE的对称内存上获取单个TYPE类型的元素。
TYPENAME及TYPE的可选值见 ACLSHMEM_TYPENAME_FUN。
- 参数:
source – [in] 目标数据在对称内存上的地址。
pe – [in] 目标PE的PE id。
异步接口
ACLSHMEM_PUT_NBI
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_putmem_nbi(__gm__ void *dest, __gm__ const void *source, size_t nelems, int pe)
-
ACLSHMEM_HOST_PREFIX void aclshmem_putmem_nbi(void *dest, const void *source, size_t bytes, int pe)
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_TYPENAME_put_nbi(__gm__ TYPE *dest, __gm__ const TYPE *source, size_t nelems, int pe)
异步接口。将本PE上的连续数据复制到指定PE上的对称地址。
TYPENAME及TYPE的可选值见 ACLSHMEM_TYPENAME_FUN。
- 参数:
dest – [in] 目标数据在对称内存上的地址。
source – [in] 源数据在本PE上的地址。
nelems – [in] 目标数据和源数据的元素数量。
pe – [in] 远端PE的PE id。
ACLSHMEM_GET_NBI
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_getmem_nbi(__gm__ void *dest, __gm__ const void *source, size_t nelems, int pe)
-
ACLSHMEM_HOST_PREFIX void aclshmem_getmem_nbi(void *dest, const void *source, size_t bytes, int pe)
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_TYPENAME_get_nbi(__gm__ TYPE *dest, __gm__ const TYPE *source, size_t nelems, int pe)
异步接口。从指定PE将对称内存上的连续数据复制到本PE的地址。
TYPENAME及TYPE的可选值见 ACLSHMEM_TYPENAME_FUN。
- 参数:
dest – [in] 目标数据在本PE上的地址。
source – [in] 源数据在对称内存上的地址。
nelems – [in] 目标数据和源数据的元素数量。
pe – [in] 远端PE的PE id。
ACLSHMEMX_PUT_NBI
-
ACLSHMEM_DEVICE_PREFIX void aclshmemx_putmem_nbi(__gm__ void *dest, __ubuf__ const void *source, size_t nelems, int pe)
-
ACLSHMEM_DEVICE_PREFIX void aclshmemx_TYPENAME_put_nbi(__gm__ TYPE *dest, __ubuf__ const TYPE *source, size_t nelems, int pe)
异步接口。将本PE UB上的连续数据复制到指定PE上的对称地址。
TYPENAME及TYPE的可选值见 ACLSHMEM_TYPENAME_FUN。
- 参数:
dest – [in] 目标数据在对称内存上的地址。
source – [in] 源数据在本PE UB上的地址。
nelems – [in] 目标数据和源数据的元素数量。
pe – [in] 远端PE的PE id。
ACLSHMEMX_GET_NBI
-
ACLSHMEM_DEVICE_PREFIX void aclshmemx_getmem_nbi(__ubuf__ void *dest, __gm__ const void *source, size_t nelems, int pe)
-
ACLSHMEM_DEVICE_PREFIX void aclshmemx_TYPENAME_get_nbi(__ubuf__ TYPE *dest, __gm__ const TYPE *source, size_t nelems, int pe)
异步接口。从指定PE上的对称地址复制连续数据到本PE UB上。
TYPENAME及TYPE的可选值见 ACLSHMEM_TYPENAME_FUN。
- 参数:
dest – [in] 目标数据在本PE UB上的地址。
source – [in] 源数据在对称内存上的地址。
nelems – [in] 目标数据和源数据的元素数量。
pe – [in] 远端PE的PE id。