Signaling Operations ===================== 数据类型及操作类型定义 ----------------------- .. _ACLSHMEM_SINGNAL_TYPENAME_FUN: .. doxygendefine:: ACLSHMEM_SINGNAL_TYPENAME_FUN :project: ACLSHMEM_API .. _ACLSHMEM_SIGNAL_OP: .. doxygenenum:: ACLSHMEM_SIGNAL_OP :project: ACLSHMEM_API ACLSHMEM_PUT_SIGNAL ------------------- .. cpp:function:: 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) .. cpp:function:: 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) .. cpp:function:: 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的可选值见 :ref:`ACLSHMEM_SINGNAL_TYPENAME_FUN`。 :param dest: [in] 目标数据在本PE上的地址。 :param source: [in] 源数据在对称内存上的地址。 :param nelems: [in] 目标数据和源数据的元素数量。 :param sig_addr: [in] 待更新的信号字的对称地址。 :param signal: [in] 用于更新sig_addr的值。 :param sig_op: [in] 用于更新sig_addr的操作。支持的操作见:ref:`ACLSHMEM_SIGNAL_OP`。 :param pe: [in] 远端PE的PE id。 ACLSHMEM_PUT_SIGNAL_NBI ----------------------- .. cpp:function:: 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) .. cpp:function:: 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) .. cpp:function:: 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的可选值见 :ref:`ACLSHMEM_SINGNAL_TYPENAME_FUN`。 :param dest: [in] 目标数据在本PE上的地址。 :param source: [in] 源数据在对称内存上的地址。 :param nelems: [in] 目标数据和源数据的元素数量。 :param sig_addr: [in] 待更新的信号字的对称地址。 :param signal: [in] 用于更新sig_addr的值。 :param sig_op: [in] 用于更新sig_addr的操作。支持的操作见:ref:`ACLSHMEM_SIGNAL_OP`。 :param pe: [in] 远端PE的PE id。 ACLSHMEM_SIGNAL_FETCH --------------------- .. cpp:function:: ACLSHMEM_DEVICE_PREFIX uint64_t aclshmem_signal_fetch(__gm__ const uint64_t *sig_addr) .. cpp:function:: ACLSHMEM_HOST_PREFIX uint64_t aclshmem_signal_fetch(const uint64_t *sig_addr) 获取sig_addr上信号字的值。 :param sig_addr: [in] 可远程访问的信号字的本地地址。 :return: sig_addr地址上信号字的值。