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