Function rcudnn_sys::cudaMallocFromPoolAsync[][src]

pub unsafe extern "C" fn cudaMallocFromPoolAsync(
    ptr: *mut *mut c_void,
    size: usize,
    memPool: cudaMemPool_t,
    stream: cudaStream_t
) -> cudaError_t
Expand description

\brief Allocates memory from a specified pool with stream ordered semantics.

Inserts an allocation operation into \p hStream. A pointer to the allocated memory is returned immediately in *dptr. The allocation must not be accessed until the the allocation operation completes. The allocation comes from the specified memory pool.

\note

  • The specified memory pool may be from a device different than that of the specified \p hStream.

  • Basic stream ordering allows future work submitted into the same stream to use the allocation. Stream query, stream synchronize, and CUDA events can be used to guarantee that the allocation operation completes before work submitted in a separate stream runs.

\note During stream capture, this function results in the creation of an allocation node. In this case, the allocation is owned by the graph instead of the memory pool. The memory pool’s properties are used to set the node’s creation parameters.

\param[out] ptr - Returned device pointer \param[in] bytesize - Number of bytes to allocate \param[in] memPool - The pool to allocate from \param[in] stream - The stream establishing the stream ordering semantic

\returns ::cudaSuccess, ::cudaErrorInvalidValue, ::cudaErrorNotSupported, ::cudaErrorOutOfMemory

\sa ::cuMemAllocFromPoolAsync, \ref ::cudaMallocAsync(void** ptr, size_t size, cudaMemPool_t memPool, cudaStream_t stream) “cudaMallocAsync (C++ API)”, ::cudaMallocAsync, ::cudaFreeAsync, ::cudaDeviceGetDefaultMemPool, ::cudaMemPoolCreate, ::cudaMemPoolSetAccess, ::cudaMemPoolSetAttribute