Need some help understanding how to obtain a threads warpid

Hi there,

Apologies for the newb question im having some trouble getting my head around openCL in relation to a 3d case.

I’m wanting to obtain the relevant warpId of a given thread, in a 1D case this translates to get_local_id(0)? However I’m unsure how to obtain the warpId for the 3d case, I’m having trouble understanding how the local ids, and group size relate to one another, any help/explanation would be massively appreciated.

The global thread id in each dimension is just get_local_id(A) where A is 0=x, 1=y, 2=z.
The group id is similarly get_group_id().

These don’t exactly translate into Nvidia’s warps, but they are close. All the work-items in a work-group execute on the same streaming processor, which is similar to a warp.