OpenGL计算着色器线程如何映射到warp?

时间:2016-09-28 13:28:29

标签: opengl compute-shader

在CUDA中,ID为0-31,32-63,...的线程始终在同一个warp中执行。但是,我无法在OpenGL规范或维基中找到任何类似的声明。 OpenGL是否提供相同的保证,或者假设对于大多数OpenGL实现是否安全?

2 个答案:

答案 0 :(得分:1)

OpenGL规范没有说明warp,这是nVidia特定的实现细节。

在OpenGL中,着色器调用分为工作组。工作组中着色器调用的数量由着色器中的layout(local_size_x = X​, local_size_y = Y​, local_size_z = Z​) in;声明指定。工作组的数量在glDispatchCompute调用中指定。它们映射到CUDA warp的方式是一个实现细节,它对用户来说是透明的

答案 1 :(得分:1)

对于像Mali这样的基于ARM的GPU(在手机中),你没有经线。相反,每个核心都进入整个像素管道。读这个 https://community.arm.com/groups/arm-mali-graphics/blog/2014/04/23/arm-mali-compute-architecture-fundamentals