dtfft_interface_nvshmem Module

NVSHMEM Interfaces


Uses

  • module~~dtfft_interface_nvshmem~~UsesGraph module~dtfft_interface_nvshmem dtfft_interface_nvshmem iso_c_binding iso_c_binding module~dtfft_interface_nvshmem->iso_c_binding iso_fortran_env iso_fortran_env module~dtfft_interface_nvshmem->iso_fortran_env module~dtfft_parameters dtfft_parameters module~dtfft_interface_nvshmem->module~dtfft_parameters module~dtfft_utils dtfft_utils module~dtfft_interface_nvshmem->module~dtfft_utils module~dtfft_parameters->iso_c_binding module~dtfft_parameters->iso_fortran_env mpi_f08 mpi_f08 module~dtfft_parameters->mpi_f08 module~dtfft_utils->iso_c_binding module~dtfft_utils->iso_fortran_env module~dtfft_utils->module~dtfft_parameters module~dtfft_utils->mpi_f08

Used by

  • module~~dtfft_interface_nvshmem~~UsedByGraph module~dtfft_interface_nvshmem dtfft_interface_nvshmem module~dtfft_abstract_transpose_plan dtfft_abstract_transpose_plan module~dtfft_abstract_transpose_plan->module~dtfft_interface_nvshmem module~dtfft_backend_cufftmp_m dtfft_backend_cufftmp_m module~dtfft_backend_cufftmp_m->module~dtfft_interface_nvshmem module~dtfft_plan dtfft_plan module~dtfft_plan->module~dtfft_interface_nvshmem module~dtfft_plan->module~dtfft_abstract_transpose_plan module~dtfft_transpose_plan_cuda dtfft_transpose_plan_cuda module~dtfft_plan->module~dtfft_transpose_plan_cuda module~dtfft_transpose_plan_host dtfft_transpose_plan_host module~dtfft_plan->module~dtfft_transpose_plan_host module~dtfft dtfft module~dtfft->module~dtfft_plan module~dtfft_api dtfft_api module~dtfft_api->module~dtfft_plan module~dtfft_transpose_handle_cuda dtfft_transpose_handle_cuda module~dtfft_transpose_handle_cuda->module~dtfft_backend_cufftmp_m module~dtfft_transpose_plan_cuda->module~dtfft_abstract_transpose_plan module~dtfft_transpose_plan_cuda->module~dtfft_transpose_handle_cuda module~dtfft_transpose_plan_host->module~dtfft_abstract_transpose_plan

Variables

Type Visibility Attributes Name Initial
type(nvshmem_team_t), public, parameter :: NVSHMEM_TEAM_WORLD = nvshmem_team_t(0)

Interfaces

interface

  • public function nvshmem_malloc(size) result(ptr) bind(C)

    Allocates symmetric memory in the NVSHMEM heap.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_size_t), value :: size

    Size of the allocation in bytes.

    Return Value type(c_ptr)

    Pointer to the allocated memory.

interface

  • public function nvshmemx_float_alltoall_on_stream(team, dest, source, nelems, stream) result(ierr) bind(C)

    Performs an all-to-all exchange of floating-point data on the specified stream.

    Arguments

    Type IntentOptional Attributes Name
    type(nvshmem_team_t), intent(in), value :: team

    NVSHMEM team.

    type(c_ptr), value :: dest

    Destination buffer.

    type(c_ptr), value :: source

    Source buffer.

    integer(kind=c_size_t), intent(in), value :: nelems

    Number of elements to exchange.

    type(dtfft_stream_t), intent(in), value :: stream

    CUDA stream for the operation.

    Return Value integer(kind=c_int)

    Completion status.

interface

  • public function nvshmem_ptr(ptr, pe) result(pe_ptr) bind(C)

    Returns a pointer to a symmetric memory location on a specified PE.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: ptr

    Local pointer to the symmetric memory.

    integer(kind=c_int), value :: pe

    PE (Processing Element) number.

    Return Value type(c_ptr)

    Pointer to the symmetric memory on the specified PE.

interface

  • public function nvshmem_my_pe() result(pe) bind(C)

    Returns the PE (Processing Element) number of the calling thread.

    Arguments

    None

    Return Value integer(kind=c_int)

    PE number of the calling thread.

interface

  • public function nvshmemx_init_status() result(status) bind(C)

    Arguments

    None

    Return Value integer(kind=c_int)

    Completion status.

interface

  • public subroutine nvshmem_free(ptr) bind(C)

    Frees symmetric memory allocated by nvshmem_malloc.

    Arguments

    Type IntentOptional Attributes Name
    type(c_ptr), value :: ptr

    Pointer to the memory to free.

interface

  • public subroutine nvshmemx_sync_all_on_stream(stream) bind(C)

    Synchronizes all PEs (Processing Elements) on the specified stream.

    Arguments

    Type IntentOptional Attributes Name
    type(dtfft_stream_t), intent(in), value :: stream

    CUDA stream for synchronization.


Derived Types

type, public, bind(C) ::  nvshmem_team_t

NVSHMEM team.

Components

Type Visibility Attributes Name Initial
integer(kind=c_int32_t), public :: val

Internal representation of the NVSHMEM team.


Functions

public function is_nvshmem_ptr(ptr) result(bool)

Checks if pointer is a symmetric nvshmem allocated pointer

Arguments

Type IntentOptional Attributes Name
type(c_ptr) :: ptr

Device pointer

Return Value logical

Result