IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /max/get-started.md). For the complete documentation index, see llms.txt.
Skip to main content
For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /max/get-started.md).

Mojo function

shmem_put_nbi

shmem_put_nbi[dtype: DType, //, kind: SHMEMScope = SHMEMScope.default](dest: UnsafePointer[Scalar[dtype]], source: UnsafePointer[Scalar[dtype]], nelems: UInt, pe: Int32)

Initiate a non-blocking copy of data from a contiguous local data object to a data object on a specified PE.

The routines return after initiating the operation. The operation is considered complete after a subsequent call to shmem_quiet. At the completion of shmem_quiet, the data has been copied into the dest array on the destination PE. The delivery of data words into the data object on the destination PE may occur in any order. Furthermore, two successive put routines may deliver data out of order unless a call to shmem_fence is introduced between the two calls.

Args:

  • ​dest (UnsafePointer[Scalar[dtype]]): Symmetric address of the destination data object.
  • ​source (UnsafePointer[Scalar[dtype]]): Local address of the data object containing the data to be copied.
  • ​nelems (UInt): Number of elements in the dest and source arrays.
  • ​pe (Int32): PE number of the remote PE relative to the team associated with the device.