信号操作 ======== 数据类型及操作类型定义 ----------------------- .. _AIC_SIGNAL_OP: .. doxygenenum:: AIC_SIGNAL_OP :project: ACLSHMEM_API SHMEM_PUT_SIGNAL ---------------- .. doxygenfunction:: aclshmem_putmem_signal :project: ACLSHMEM_API .. cpp:function:: 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的可选值见 :ref:`ACLSHMEM_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:`AIC_SIGNAL_OP`。 :param pe: [in] 远端PE的PE id。 SHMEM_PUT_SIGNAL_NBI -------------------- .. doxygenfunction:: aclshmem_putmem_signal_nbi :project: ACLSHMEM_API .. cpp:function:: 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的可选值见 :c:macro:`ACLSHMEM_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:`AIC_SIGNAL_OP`。 :param pe: [in] 远端PE的PE id。 SHMEM_SIGNAL_FETCH ------------------ .. doxygenfunction:: aclshmem_signal_fetch :project: ACLSHMEM_API