RPP handle API#
RPP API to create and destroy RPP HOST/GPU handle. More...
Macros | |
#define | RPP_DECLARE_OBJECT(name) |
Construct type name from a struct. More... | |
Typedefs | |
typedef hipStream_t | rppAcceleratorQueue_t |
Set rppAcceleratorQueue_t to hipStream_t if RPP_BACKEND_HIP. | |
typedef rppHandle_t | RppHandle_t |
RPP handle. | |
typedef void *(* | rppAllocatorFunction) (void *context, size_t sizeBytes) |
Handles RPP context allocations. More... | |
typedef void(* | rppDeallocatorFunction) (void *context, void *memory) |
Handles RPP context allocations. More... | |
Functions | |
RPP_DECLARE_OBJECT (rppHandle) | |
RPP handle type creation. | |
SHARED_PUBLIC rppStatus_t | rppCreate (rppHandle_t *handle, size_t nBatchSize, Rpp32u numThreads=0, void *stream=nullptr, RppBackend backend=RppBackend::RPP_HOST_BACKEND) |
Creates RPP handle for HOST/HIP/OCL backend batch processing. More... | |
SHARED_PUBLIC rppStatus_t | rppDestroy (rppHandle_t handle, RppBackend backend=RppBackend::RPP_HOST_BACKEND) |
Destroys RPP handle for HOST/HIP/OCL backend batch processing. More... | |
SHARED_PUBLIC rppStatus_t | rppSetBatchSize (rppHandle_t handle, size_t batchSize) |
Set batch size given a RPP handle. More... | |
SHARED_PUBLIC rppStatus_t | rppGetBatchSize (rppHandle_t handle, size_t *batchSize) |
Get batch size given a RPP Handle. More... | |
SHARED_PUBLIC rppStatus_t | rppSetStream (rppHandle_t handle, rppAcceleratorQueue_t streamID) |
Set accelerator stream given a RPP handle. More... | |
SHARED_PUBLIC rppStatus_t | rppGetStream (rppHandle_t handle, rppAcceleratorQueue_t *streamID) |
Get accelerator stream given a RPP handle. More... | |
SHARED_PUBLIC rppStatus_t | rppSetAllocator (rppHandle_t handle, rppAllocatorFunction allocator, rppDeallocatorFunction deallocator, void *allocatorContext) |
Set allocator given a RPP handle. More... | |
SHARED_PUBLIC rppStatus_t | rppGetKernelTime (rppHandle_t handle, float *time) |
Get time taken by previous kernel. More... | |
SHARED_PUBLIC rppStatus_t | rppEnableProfiling (rppHandle_t handle, bool enable) |
Enable Profiling. More... | |
Detailed Description
RPP API to create and destroy RPP HOST/GPU handle.
Macro Definition Documentation
◆ RPP_DECLARE_OBJECT
#define RPP_DECLARE_OBJECT | ( | name | ) |
Construct type name from a struct.
Typedef Documentation
◆ rppAllocatorFunction
typedef void*(* rppAllocatorFunction) (void *context, size_t sizeBytes) |
Handles RPP context allocations.
Custom allocator function to allow for user-defined custom allocation.
- Parameters
-
[in] context A pointer to a context. [in] sizeBytes Number of bytes to allocate.
◆ rppDeallocatorFunction
typedef void(* rppDeallocatorFunction) (void *context, void *memory) |
Handles RPP context allocations.
Custom deallocator function to allow for user-defined custom deallocation.
- Parameters
-
[in] context A pointer to a context. [in] memory A pointer to allocated memory.
Function Documentation
◆ rppCreate()
SHARED_PUBLIC rppStatus_t rppCreate | ( | rppHandle_t * | handle, |
size_t | nBatchSize, | ||
Rpp32u | numThreads = 0 , |
||
void * | stream = nullptr , |
||
RppBackend | backend = RppBackend::RPP_HOST_BACKEND |
||
) |
Creates RPP handle for HOST/HIP/OCL backend batch processing.
Function to create a RPP handle, and the necessary host/device memory allocations.
- Parameters
-
[in] handle A pointer to RPP handle of type rppHandle_t
.[in] nBatchSize Batch size. [in] numThreads Number of threads to use if backend = RppBackend::RPP_HOST_BACKEND. (Pass 0 if backend = RppBackend::RPP_HIP_BACKEND). [in] stream A pointer to an accelerator queue of type rppAcceleratorQueue_t
- hipStream_t if backend = RppBackend::RPP_HIP_BACKEND and cl_command_queue if backend = RppBackend::RPP_OCL_BACKEND. (Pass nullptr if backend = RppBackend::RPP_HOST_BACKEND).[in] backend RPP backend to run augmentations (backend = RppBackend::RPP_HOST_BACKEND / RppBackend::RPP_HIP_BACKEND / RppBackend::RPP_OCL_BACKEND)
- Returns
- A
rppStatus_t
enumeration.
- Return values
-
rppStatusSuccess rppStatusNotInitialized rppStatusInvalidValue rppStatusBadParm rppStatusAllocFailed rppStatusInternalError rppStatusNotImplemented rppStatusUnknownError rppStatusUnsupportedOp
◆ rppDestroy()
SHARED_PUBLIC rppStatus_t rppDestroy | ( | rppHandle_t | handle, |
RppBackend | backend = RppBackend::RPP_HOST_BACKEND |
||
) |
Destroys RPP handle for HOST/HIP/OCL backend batch processing.
Function to destroy a RPP handle's host/device memory allocation. To be called in the end to break down the RPP environment.
- Parameters
-
[in] handle RPP handle of type rppHandle_t
.[in] backend RPP backend to run augmentations (backend = RppBackend::RPP_HOST_BACKEND / RppBackend::RPP_HIP_BACKEND / RppBackend::RPP_OCL_BACKEND)
- Returns
- A
rppStatus_t
enumeration.
- Return values
-
rppStatusSuccess rppStatusNotInitialized rppStatusInvalidValue rppStatusBadParm rppStatusAllocFailed rppStatusInternalError rppStatusNotImplemented rppStatusUnknownError rppStatusUnsupportedOp
◆ rppEnableProfiling()
SHARED_PUBLIC rppStatus_t rppEnableProfiling | ( | rppHandle_t | handle, |
bool | enable | ||
) |
Enable Profiling.
Function to enable profiling to retrieve kernel time.
- Parameters
-
[in] handle RPP handle of type rppHandle_t
.[in] enable Boolean to toggle profiling.
- Returns
- A
rppStatus_t
enumeration.
- Return values
-
rppStatusSuccess rppStatusNotInitialized rppStatusInvalidValue rppStatusBadParm rppStatusAllocFailed rppStatusInternalError rppStatusNotImplemented rppStatusUnknownError rppStatusUnsupportedOp
◆ rppGetBatchSize()
SHARED_PUBLIC rppStatus_t rppGetBatchSize | ( | rppHandle_t | handle, |
size_t * | batchSize | ||
) |
Get batch size given a RPP Handle.
Function to get batch size for handle previously created.
- Parameters
-
[in] handle RPP handle of type rppHandle_t
.[in] batchSize Batch size
- Returns
- A
rppStatus_t
enumeration.
- Return values
-
rppStatusSuccess rppStatusNotInitialized rppStatusInvalidValue rppStatusBadParm rppStatusAllocFailed rppStatusInternalError rppStatusNotImplemented rppStatusUnknownError rppStatusUnsupportedOp
◆ rppGetKernelTime()
SHARED_PUBLIC rppStatus_t rppGetKernelTime | ( | rppHandle_t | handle, |
float * | time | ||
) |
Get time taken by previous kernel.
Function to get time for last kernel launched. This function is used only when profiling mode has been enabled.
- Parameters
-
[in] handle RPP handle of type rppHandle_t
.[in] time Pointer to a float type to contain kernel time in milliseconds.
- Returns
- A
rppStatus_t
enumeration.
- Return values
-
rppStatusSuccess rppStatusNotInitialized rppStatusInvalidValue rppStatusBadParm rppStatusAllocFailed rppStatusInternalError rppStatusNotImplemented rppStatusUnknownError rppStatusUnsupportedOp
◆ rppGetStream()
SHARED_PUBLIC rppStatus_t rppGetStream | ( | rppHandle_t | handle, |
rppAcceleratorQueue_t * | streamID | ||
) |
Get accelerator stream given a RPP handle.
Function to get an accelerator stream previously created.
- Parameters
-
[in] handle RPP handle of type rppHandle_t
.[in] stream An accelerator queue of type rppAcceleratorQueue_t
(hipStream_t for HIP and cl_command_queue for OpenCL).
- Returns
- A
rppStatus_t
enumeration.
- Return values
-
rppStatusSuccess rppStatusNotInitialized rppStatusInvalidValue rppStatusBadParm rppStatusAllocFailed rppStatusInternalError rppStatusNotImplemented rppStatusUnknownError rppStatusUnsupportedOp
◆ rppSetAllocator()
SHARED_PUBLIC rppStatus_t rppSetAllocator | ( | rppHandle_t | handle, |
rppAllocatorFunction | allocator, | ||
rppDeallocatorFunction | deallocator, | ||
void * | allocatorContext | ||
) |
Set allocator given a RPP handle.
Function to set allocator for a previously created RPP handle of type rppHandle_t
.
- Parameters
-
[in] handle RPP handle of type rppHandle_t
.[in] allocator A callback function rpp will use for internal memory allocations. The provided callback function should allocate device memory with requested size and return a pointer to this memory. Passing 0 will restore the default RPP allocator and deallocator. [in] deallocator A callback function rpp will use to for internal memory deallocation. The provided callback function should free the specified memory pointer. [in] allocatorContext User-specified pointer which is passed to allocator and deallocator. This allows the callback function to access state set by the caller to this function, for example a stateful heap allocator or a c++ class.
- Returns
- A
rppStatus_t
enumeration.
- Return values
-
rppStatusSuccess rppStatusNotInitialized rppStatusInvalidValue rppStatusBadParm rppStatusAllocFailed rppStatusInternalError rppStatusNotImplemented rppStatusUnknownError rppStatusUnsupportedOp
◆ rppSetBatchSize()
SHARED_PUBLIC rppStatus_t rppSetBatchSize | ( | rppHandle_t | handle, |
size_t | batchSize | ||
) |
Set batch size given a RPP handle.
Function to set batch size for handle previously created.
- Parameters
-
[in] handle RPP handle of type rppHandle_t
.[in] batchSize Batch size.
- Returns
- A
rppStatus_t
enumeration.
- Return values
-
rppStatusSuccess rppStatusNotInitialized rppStatusInvalidValue rppStatusBadParm rppStatusAllocFailed rppStatusInternalError rppStatusNotImplemented rppStatusUnknownError rppStatusUnsupportedOp
◆ rppSetStream()
SHARED_PUBLIC rppStatus_t rppSetStream | ( | rppHandle_t | handle, |
rppAcceleratorQueue_t | streamID | ||
) |
Set accelerator stream given a RPP handle.
Function to set an accelerator stream previously created.
- Parameters
-
[in] handle RPP handle of type rppHandle_t
.[in] stream An accelerator queue of type rppAcceleratorQueue_t
(hipStream_t for HIP and cl_command_queue for OpenCL).
- Returns
- A
rppStatus_t
enumeration.
- Return values
-
rppStatusSuccess rppStatusNotInitialized rppStatusInvalidValue rppStatusBadParm rppStatusAllocFailed rppStatusInternalError rppStatusNotImplemented rppStatusUnknownError rppStatusUnsupportedOp