HIP: Heterogenous-computing Interface for Portability: Launch API to support the triple-chevron syntax

HIP: Heterogenous-computing Interface for Portability

Functions
Launch API to support the triple-chevron syntax
HIP API

This section describes the API to support the triple-chevron syntax. More...

Collaboration diagram for Launch API to support the triple-chevron syntax:

## Functions
hipError_t | hipConfigureCall (dim3 gridDim, dim3 blockDim, size_t sharedMem __dparm(0), hipStream_t stream __dparm(0))
| Configure a kernel launch. More...
hipError_t | hipSetupArgument (const void *arg, size_t size, size_t offset)
| Set a kernel argument. More...
hipError_t | hipLaunchByPtr (const void *func)
| Launch a kernel. More...
hipError_t | __hipPushCallConfiguration (dim3 gridDim, dim3 blockDim, size_t sharedMem __dparm(0), hipStream_t stream __dparm(0))
| Push configuration of a kernel launch. More...
hipError_t | __hipPopCallConfiguration (dim3 *gridDim, dim3 *blockDim, size_t *sharedMem, hipStream_t *stream)
| Pop configuration of a kernel launch. More...
hipError_t | hipLaunchKernel (const void *function_address, dim3 numBlocks, dim3 dimBlocks, void **args, size_t sharedMemBytes __dparm(0), hipStream_t stream __dparm(0))
| C compliant kernel launch API. More...
hipError_t | hipDrvMemcpy2DUnaligned (const hip_Memcpy2D *pCopy)
hipError_t | hipExtLaunchKernel (const void *function_address, dim3 numBlocks, dim3 dimBlocks, void **args, size_t sharedMemBytes, hipStream_t stream, hipEvent_t startEvent, hipEvent_t stopEvent, int flags)
| Launches kernel from the pointer address, with arguments and shared memory on stream. More...

## Detailed Description

This section describes the API to support the triple-chevron syntax.

## Function Documentation

## ◆ __hipPopCallConfiguration()

hipError_t __hipPopCallConfiguration | ( | dim3 * | gridDim,
|  | dim3 * | blockDim,
|  | size_t * | sharedMem,
|  | hipStream_t * | stream
| ) |  |

Pop configuration of a kernel launch.

Parameters

  [out] | gridDim | grid dimension specified as multiple of blockDim.
  [out] | blockDim | block dimensions specified in work-items
  [out] | sharedMem | Amount of dynamic shared memory to allocate for this kernel. The HIP-Clang compiler provides support for extern shared declarations.
  [out] | stream | Stream where the kernel should be dispatched. May be 0, in which case the default stream is used with associated synchronization rules.

Please note, HIP does not support kernel launch with total work items defined in dimension with size gridDim x blockDim >= 2^32.

Please note, HIP does not support kernel launch with total work items defined in dimension with size gridDim x blockDim >= 2^32.

Returns
  hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue

## ◆ __hipPushCallConfiguration()

hipError_t __hipPushCallConfiguration | ( | dim3 | gridDim,
|  | dim3 | blockDim,
|  | size_t sharedMem | __dparm0,
|  | hipStream_t stream | __dparm0
| ) |  |

Push configuration of a kernel launch.

Parameters

  [in] | gridDim | grid dimension specified as multiple of blockDim.
  [in] | blockDim | block dimensions specified in work-items
  [in] | sharedMem | Amount of dynamic shared memory to allocate for this kernel. The HIP-Clang compiler provides support for extern shared declarations.
  [in] | stream | Stream where the kernel should be dispatched. May be 0, in which case the default stream is used with associated synchronization rules.

Please note, HIP does not support kernel launch with total work items defined in dimension with size gridDim x blockDim >= 2^32.

Returns
  hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue

## ◆ hipConfigureCall()

hipError_t hipConfigureCall | ( | dim3 | gridDim,
|  | dim3 | blockDim,
|  | size_t sharedMem | __dparm0,
|  | hipStream_t stream | __dparm0
| ) |  |

Configure a kernel launch.

Parameters

  [in] | gridDim | grid dimension specified as multiple of blockDim.
  [in] | blockDim | block dimensions specified in work-items
  [in] | sharedMem | Amount of dynamic shared memory to allocate for this kernel. The HIP-Clang compiler provides support for extern shared declarations.
  [in] | stream | Stream where the kernel should be dispatched. May be 0, in which case the default stream is used with associated synchronization rules.

Please note, HIP does not support kernel launch with total work items defined in dimension with size gridDim x blockDim >= 2^32.

Returns
  hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue

## ◆ hipDrvMemcpy2DUnaligned()

hipError_t hipDrvMemcpy2DUnaligned | ( | const hip_Memcpy2D * | pCopy | ) |

Copies memory for 2D arrays.

Parameters

  pCopy | - Parameters for the memory copy

Returns
  hipSuccess, hipErrorInvalidValue

## ◆ hipExtLaunchKernel()

hipError_t hipExtLaunchKernel | ( | const void * | function_address,
|  | dim3 | numBlocks,
|  | dim3 | dimBlocks,
|  | void ** | args,
|  | size_t | sharedMemBytes,
|  | hipStream_t | stream,
|  | hipEvent_t | startEvent,
|  | hipEvent_t | stopEvent,
|  | int | flags
| ) |  |

Launches kernel from the pointer address, with arguments and shared memory on stream.

Parameters

  [in] | function_address | pointer to the Kernel to launch.
  [in] | numBlocks | number of blocks.
  [in] | dimBlocks | dimension of a block.
  [in] | args | pointer to kernel arguments.
  [in] | sharedMemBytes | Amount of dynamic shared memory to allocate for this kernel. HIP-Clang compiler provides support for extern shared declarations.
  [in] | stream | Stream where the kernel should be dispatched.
  [in] | startEvent | If non-null, specified event will be updated to track the start time of the kernel launch. The event must be created before calling this API.
  [in] | stopEvent | If non-null, specified event will be updated to track the stop time of the kernel launch. The event must be created before calling this API. May be 0, in which case the default stream is used with associated synchronization rules.
  [in] | flags. | The value of hipExtAnyOrderLaunch, signifies if kernel can be launched in any order.

Returns
  hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue.

## ◆ hipLaunchByPtr()

hipError_t hipLaunchByPtr | ( | const void * | func | ) |

Launch a kernel.

Parameters

  [in] | func | Kernel to launch.

Returns
  hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue

## ◆ hipLaunchKernel()

hipError_t hipLaunchKernel | ( | const void * | function_address,
|  | dim3 | numBlocks,
|  | dim3 | dimBlocks,
|  | void ** | args,
|  | size_t sharedMemBytes | __dparm0,
|  | hipStream_t stream | __dparm0
| ) |  |

C compliant kernel launch API.

Parameters

  [in] | function_address | - kernel stub function pointer.
  [in] | numBlocks | - number of blocks
  [in] | dimBlocks | - dimension of a block
  [in] | args | - kernel arguments
  [in] | sharedMemBytes | - Amount of dynamic shared memory to allocate for this kernel. The HIP-Clang compiler provides support for extern shared declarations.
  [in] | stream | - Stream where the kernel should be dispatched. May be 0, in which case th default stream is used with associated synchronization rules.

Returns
  hipSuccess, hipErrorInvalidValue, hipInvalidDevice

## ◆ hipSetupArgument()

hipError_t hipSetupArgument | ( | const void * | arg,
|  | size_t | size,
|  | size_t | offset
| ) |  |

Set a kernel argument.

Returns
  hipSuccess, hipInvalidDevice, hipErrorNotInitialized, hipErrorInvalidValue

Parameters

  [in] | arg | Pointer the argument in host memory.
  [in] | size | Size of the argument.
  [in] | offset | Offset of the argument on the argument stack.