HIP: Heterogenous-computing Interface for Portability
Table Comparing Syntax for Different Compute APIs
TermCUDAHIPOpenCL
Deviceint deviceIdint deviceIdcl_device
QueuecudaStream_thipStream_tcl_command_queue
EventcudaEvent_thipEvent_tcl_event
Memoryvoid *void *cl_mem
gridgridNDRange
blockblockwork-group
threadthreadwork-item
warpwarpsub-group
Thread-
index
threadIdx.x threadIdx.x get_local_id(0)
Block-
index
blockIdx.x blockIdx.x get_group_id(0)
Block-
dim
blockDim.x blockDim.x get_local_size(0)
Grid-dim gridDim.x gridDim.x get_num_groups(0)
Device Kernel__global____global____kernel
Device Function__device____device__Implied in device compilation
Host Function__host_ (default)__host_ (default)Implied in host compilation
Host + Device Function__host__ __device____host__ __device__No equivalent
Kernel Launch<<< >>>hipLaunchKernel/hipLaunchKernelGGL/<<< >>>clEnqueueNDRangeKernel

|||||| |Global Memory|__global__|__global__|__global| |Group Memory|__shared__|__shared__|__local| |Constant|__constant__|__constant__|__constant| |||||| ||__syncthreads|__syncthreads|barrier(CLK_LOCAL_MEMFENCE)| |Atomic Builtins|atomicAdd|atomicAdd|atomic_add| |Precise Math|cos(f)|cos(f)|cos(f)| |Fast Math|__cos(f)|__cos(f)|native_cos(f)| |Vector|float4|float4|float4|

Notes

The indexing functions (starting with thread-index) show the terminology for a 1D grid. Some APIs use reverse order of xyz / 012 indexing for 3D grids.