Library setup, exit, and query routines#
ROCSHMEM_INIT#
-
__host__ void rocshmem_init(void)#
- Parameters:
None.
- Returns:
None.
Description:
This routine initializes the rocSHMEM library and underlying transport layer.
Before rocshmem_init
is called,
you must select the device that this PE is associated to by calling
hipSetDevice.
Warning
Routine rocshmem_wg_init has been deprecated.
-
[[deprecated]] __device__ void rocshmem_wg_init(void)#
- Parameters:
None.
- Returns:
None.
Description: This routine has been deprecated, please do not use. This routine initializes device-side rocSHMEM resources. It must be called before any threads in this work-group invoke other rocSHMEM functions. It must be called collectively by all threads in the work-group.
ROCSHMEM_FINALIZE#
-
__host__ void rocshmem_finalize(void)#
- Parameters:
None.
- Returns:
None.
Description: This routine finalizes the rocSHMEM library.
Warning
Routine rocshmem_wg_finalize has been deprecated.
-
[[deprecated]] __device__ void rocshmem_wg_finalize(void)#
- Parameters:
None.
- Returns:
None.
Description:
This routine has been deprecated, please do not use.
This routine finalizes device-side rocSHMEM resources.
It must be called before work-group completion if the work-group also called rocshmem_wg_init
.
It must be called collectively by all threads in the work-group.
ROCSHMEM_INIT_ATTR#
-
__host__ int rocshmem_init_attr(unsigned int flags, rocshmem_init_attr_t *attr)#
- Parameters:
flags – The initialization method to be used.
attr – Attribute structure specifying input characteristics.
- Returns int:
Returns
0
on success; otherwise, returns a nonzero value.
Description:
This routine initializes the rocSHMEM runtime and underlying transport layer using
the provided mode and attributes.
The parameter flags
can be either
ROCSHMEM_INIT_WITH_UNIQUEID
or ROCSHMEM_INIT_WITH_MPI_COMM
.
ROCSHMEM_GET_UNIQUEID#
-
__host__ int rocshmem_get_uniqueid(rocshmem_uniqueid_t *uid)#
- Parameters:
uid – Pointer to a unique ID handle.
- Returns:
Returns
0
on success; otherwise, returns a nonzero value.
Description: This routine returns a unique ID.
ROCSHMEM_SET_ATTR_UNIQUEID_ARGS#
-
__host__ int rocshmem_set_attr_uniqueid_args(int rank, int nranks, rocshmem_uniqueid_t *uid, rocshmem_init_attr_t *attr)#
- Parameters:
rank – Rank of the calling process.
nranks – Number of PEs.
uid – Unique ID used to identify the group processes.
attr – Attribute structure to be passed to
rocshmem_init_attr_t
.
- Returns:
Returns
0
on success; otherwise, returns a nonzero value.
Description:
This routine initializes the rocshmem_init_attr_t
struct.
ROCSHMEM_N_PES#
-
__host__ int rocshmem_n_pes(void)#
- Parameters:
None.
- Returns:
Total number of PEs.
Description:
This routine queries the total number of PEs.
It can be called before rocshmem_init
.
-
__device__ int rocshmem_n_pes(void)
-
__device__ int rocshmem_ctx_n_pes(rocshmem_ctx_t ctx)#
- Parameters:
ctx – GPU side context handle.
- Returns:
Total number of PEs.
Description: This routine queries the total number of PEs for a given context. It can be called per thread with no performance penalty.
ROCSHMEM_MY_PE#
-
__host__ int rocshmem_my_pe(void)#
- Parameters:
None.
- Returns:
PE ID of the caller.
Description:
This routine queries the PE ID of the caller.
It can be called before rocshmem_init
.
-
__device__ int rocshmem_my_pe(void)
-
__device__ int rocshmem_ctx_my_pe(rocshmem_ctx_t ctx)#
- Parameters:
ctx – GPU side context handle.
- Returns:
PE ID of the caller.
Description: This routine queries the PE ID of the caller. It can be called per thread with no performance penalty.
ROCSHMEM_PTR#
-
__host__ void *rocshmem_ptr(const void *dest, int pe);#
-
__device__ void *rocshmem_ptr(const void *dest, int pe);
- Parameters:
dest – Local symmetric heap allocation pointer for current PE.
pe – Remote PE.
- Returns:
Returns remote symmetric heap device pointer from host-side API.
NULL
is returned if a valid device pointer cannot be provided. This pointer can be used to issue load/store from custom kernels instead of using rocshmem device side get/put APIs for RMA operations.
Description: This routine queries rocSHMEM remote symmetric heap pointer.