Context Management¶
hipCtxCreate¶
-
hipError_t
hipCtxCreate(hipCtx_t *ctx, unsigned int flags, hipDevice_t device)¶ Create a context and set it as current/ default context.
- Return
#hipSuccess
- See
hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Parameters
[out] ctx:[in] flags:[in] associated: device handle
hipCtxDestroy¶
-
hipError_t
hipCtxDestroy(hipCtx_t ctx)¶ Destroy a HIP context.
- Return
#hipSuccess, #hipErrorInvalidValue
- See
hipCtxCreate, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent,hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize , hipCtxGetDevice
- Parameters
[in] ctx: Context to destroy
hipCtxPopCurrent¶
-
hipError_t
hipCtxPopCurrent(hipCtx_t *ctx)¶ Pop the current/default context and return the popped context.
- Return
#hipSuccess, #hipErrorInvalidContext
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxSetCurrent, hipCtxGetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Parameters
[out] ctx:
hipCtxPushCurrent¶
-
hipError_t
hipCtxPushCurrent(hipCtx_t ctx)¶ Push the context to be set as current/ default context.
- Return
#hipSuccess, #hipErrorInvalidContext
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize , hipCtxGetDevice
- Parameters
[in] ctx:
hipCtxSetCurrent¶
-
hipError_t
hipCtxSetCurrent(hipCtx_t ctx)¶ Set the passed context as current/default.
- Return
#hipSuccess, #hipErrorInvalidContext
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize , hipCtxGetDevice
- Parameters
[in] ctx:
hipCtxGetCurrent¶
-
hipError_t
hipCtxGetCurrent(hipCtx_t *ctx)¶ Get the handle of the current/ default context.
- Return
#hipSuccess, #hipErrorInvalidContext
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetDevice, hipCtxGetFlags, hipCtxPopCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Parameters
[out] ctx:
hipCtxGetDevice¶
-
hipError_t
hipCtxGetDevice(hipDevice_t *device)¶ Get the handle of the device associated with current/default context.
- Return
#hipSuccess, #hipErrorInvalidContext
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize
- Parameters
[out] device:
hipCtxGetApiVersion¶
-
hipError_t
hipCtxGetApiVersion(hipCtx_t ctx, int *apiVersion)¶ Returns the approximate HIP api version.
- Return
#hipSuccess
- Warning
The HIP feature set does not correspond to an exact CUDA SDK api revision. This function always set *apiVersion to 4 as an approximation though HIP supports some features which were introduced in later CUDA SDK revisions. HIP apps code should not rely on the api revision number here and should use arch feature flags to test device capabilities or conditional compilation.
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetDevice, hipCtxGetFlags, hipCtxPopCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Parameters
[in] ctx: Context to check[out] apiVersion:
hipCtxGetCacheConfig¶
-
hipError_t
hipCtxGetCacheConfig(hipFuncCache_t *cacheConfig)¶ Set Cache configuration for a specific function.
- Return
#hipSuccess
- Warning
AMD devices and some Nvidia GPUS do not support reconfigurable cache. This hint is ignored on those architectures.
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Parameters
[out] cacheConfiguration:
hipCtxSynchronize¶
-
hipError_t
hipCtxSynchronize(void)¶ Blocks until the default context has completed all preceding requested tasks.
- Return
#hipSuccess
- Warning
This function waits for all streams on the default context to complete execution, and then returns.
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxGetDevice
hipCtxGetFlags¶
-
hipError_t
hipCtxGetFlags(unsigned int *flags)¶ Return flags used for creating default context.
- Return
#hipSuccess
- See
hipCtxCreate, hipCtxDestroy, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxGetCurrent, hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Parameters
[out] flags:
hipCtxEnablePeerAccess¶
-
hipError_t
hipCtxEnablePeerAccess(hipCtx_t peerCtx, unsigned int flags)¶ Enables direct access to memory allocations in a peer context.
Memory which already allocated on peer device will be mapped into the address space of the current device. In addition, all future memory allocations on peerDeviceId will be mapped into the address space of the current device when the memory is allocated. The peer memory remains accessible from the current device until a call to hipDeviceDisablePeerAccess or hipDeviceReset.
- Return
#hipSuccess, #hipErrorInvalidDevice, #hipErrorInvalidValue, #hipErrorPeerAccessAlreadyEnabled
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Warning
PeerToPeer support is experimental.
- Parameters
[in] peerCtx:[in] flags:
hipCtxDisablePeerAccess¶
-
hipError_t
hipCtxDisablePeerAccess(hipCtx_t peerCtx)¶ Disable direct access from current context’s virtual address space to memory allocations physically located on a peer context.Disables direct access to memory allocations in a peer context and unregisters any registered allocations.
Returns hipErrorPeerAccessNotEnabled if direct access to memory on peerDevice has not yet been enabled from the current device.
- Return
#hipSuccess, #hipErrorPeerAccessNotEnabled
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Warning
PeerToPeer support is experimental.
- Parameters
[in] peerCtx:
hipDevicePrimaryCtxGetState¶
-
hipError_t
hipDevicePrimaryCtxGetState(hipDevice_t dev, unsigned int *flags, int *active)¶ Get the state of the primary context.
- Return
#hipSuccess
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Parameters
[in] Device: to get primary context flags for[out] Pointer: to store flags[out] Pointer: to store context state; 0 = inactive, 1 = active
hipDevicePrimaryCtxRelease¶
-
hipError_t
hipDevicePrimaryCtxRelease(hipDevice_t dev)¶ Release the primary context on the GPU.
- Return
#hipSuccess
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Warning
This function return #hipSuccess though doesn’t release the primaryCtx by design on HIP/HCC path.
- Parameters
[in] Device: which primary context is released
hipDevicePrimaryCtxRetain¶
-
hipError_t
hipDevicePrimaryCtxRetain(hipCtx_t *pctx, hipDevice_t dev)¶ Retain the primary context on the GPU.
- Return
#hipSuccess
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Parameters
[out] Returned: context handle of the new context[in] Device: which primary context is released
hipDevicePrimaryCtxReset¶
-
hipError_t
hipDevicePrimaryCtxReset(hipDevice_t dev)¶ Resets the primary context on the GPU.
- Return
#hipSuccess
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Parameters
[in] Device: which primary context is reset
hipDevicePrimaryCtxSetFlags¶
-
hipError_t
hipDevicePrimaryCtxSetFlags(hipDevice_t dev, unsigned int flags)¶ Set flags for the primary context.
- Return
#hipSuccess, #hipErrorContextAlreadyInUse
- See
hipCtxCreate, hipCtxDestroy, hipCtxGetFlags, hipCtxPopCurrent, hipCtxGetCurrent, hipCtxSetCurrent, hipCtxPushCurrent, hipCtxSetCacheConfig, hipCtxSynchronize, hipCtxGetDevice
- Parameters
[in] Device: for which the primary context flags are set[in] New: flags for the device