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

enum class ACLSHMEM_SIGNAL_OP

支持的信号操作类型。

Values:

enumerator SIGNAL_SET

信号操作:设置

enumerator SIGNAL_ADD

信号操作:累加

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地址上信号字的值。