CUDA模型 - 什么是扭曲尺寸?

时间:2010-08-31 06:52:02

标签: cuda gpgpu

最大工作组大小与扭曲大小之间的关系是什么?假设我的设备有240个CUDA流处理器(SP)并返回以下信息 -

CL_DEVICE_MAX_COMPUTE_UNITS:30

CL_DEVICE_MAX_WORK_ITEM_SIZES:512/512/64

CL_DEVICE_MAX_WORK_GROUP_SIZE:512

CL_NV_DEVICE_WARP_SIZE:32

这意味着每个流多处理器(即计算单元)有8个SP。现在warp size = 32与这些数字有关吗?

3 个答案:

答案 0 :(得分:110)

答案 1 :(得分:3)

warp size是多处理器并发执行的线程数。 NVIDIA多处理器可以使用硬件多线程同时从同一个块执行多个线程。

考虑warp大小很重要,因为所有内存访问都合并为warp大小的倍数(32字节,64字节,128字节),这样可以提高性能。

CUDA C Best Practices Guide包含有关这类优化的所有技术信息。

答案 2 :(得分:1)

直接答案很简单:在Nvidia中,由THREAD组成的BLOCK由程序员设置,WARP为32(由32个线程组成),这是计算单元同时执行的最小单位。 在AMD中,WARP被称为WAVEFRONT(" wave")。

在OpenCL中,WORKGROUPs意味着CUDA中的BLOCK,更重要的是,WORKITEMs意味着CUDA中的THREAD。