Signaling Operations
数据类型及操作类型定义
-
ACLSHMEM_SINGNAL_TYPENAME_FUN(FUNC)
信号操作支持类型和名称。
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
ACLSHMEM_PUT_SIGNAL
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_putmem_signal(__gm__ void *dest, __gm__ const void *source, size_t nelems, __gm__ uint64_t *sig_addr, uint64_t signal, int sig_op, int pe)
-
ACLSHMEM_HOST_PREFIX void aclshmem_putmem_signal(void *dest, const void *source, size_t bytes, uint64_t *sig_addr, uint64_t signal, int sig_op, int pe)
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_TYPENAME_put_signal(__gm__ void *dest, __gm__ const void *source, size_t nelems, __gm__ uint64_t *sig_addr, uint64_t signal, int sig_op, int pe)
同步接口。将本PE上的连续数据复制到指定PE的对称地址,然后更新sig_addr。
TYPENAME及TYPE的可选值见 ACLSHMEM_SINGNAL_TYPENAME_FUN。
- 参数:
dest – [in] 目标数据在本PE上的地址。
source – [in] 源数据在对称内存上的地址。
nelems – [in] 目标数据和源数据的元素数量。
sig_addr – [in] 待更新的信号字的对称地址。
signal – [in] 用于更新sig_addr的值。
sig_op – [in] 用于更新sig_addr的操作。支持的操作见:ref:ACLSHMEM_SIGNAL_OP<ACLSHMEM_SIGNAL_OP>。
pe – [in] 远端PE的PE id。
ACLSHMEM_PUT_SIGNAL_NBI
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_putmem_signal_nbi(__gm__ void *dest, __gm__ const void *source, size_t nelems, __gm__ uint64_t *sig_addr, uint64_t signal, int sig_op, int pe)
-
ACLSHMEM_HOST_PREFIX void aclshmem_putmem_signal_nbi(void *dest, const void *source, size_t bytes, uint64_t *sig_addr, uint64_t signal, int sig_op, int pe)
-
ACLSHMEM_DEVICE_PREFIX void aclshmem_TYPENAME_put_signal_nbi(__gm__ void *dest, __gm__ const void *source, size_t nelems, __gm__ uint64_t *sig_addr, uint64_t signal, int sig_op, int pe)
异步接口。将本PE上的连续数据复制到指定PE的对称地址,然后更新sig_addr。
TYPENAME及TYPE的可选值见 ACLSHMEM_SINGNAL_TYPENAME_FUN。
- 参数:
dest – [in] 目标数据在本PE上的地址。
source – [in] 源数据在对称内存上的地址。
nelems – [in] 目标数据和源数据的元素数量。
sig_addr – [in] 待更新的信号字的对称地址。
signal – [in] 用于更新sig_addr的值。
sig_op – [in] 用于更新sig_addr的操作。支持的操作见:ref:ACLSHMEM_SIGNAL_OP<ACLSHMEM_SIGNAL_OP>。
pe – [in] 远端PE的PE id。
ACLSHMEM_SIGNAL_FETCH
-
ACLSHMEM_DEVICE_PREFIX uint64_t aclshmem_signal_fetch(__gm__ const uint64_t *sig_addr)
-
ACLSHMEM_HOST_PREFIX uint64_t aclshmem_signal_fetch(const uint64_t *sig_addr)
获取sig_addr上信号字的值。
- 参数:
sig_addr – [in] 可远程访问的信号字的本地地址。
- 返回:
sig_addr地址上信号字的值。