在CUDA中的占用定义为
occupancy = active_warps / maximum_active_warps常驻 CUDA翘曲与active one有什么区别?
从我在web上的研究来看,似乎一个块在整个执行过程中都是驻留在SM上的(即与其寄存器/共享内存文件一起分配的)。和“积极”有什么区别吗?
如果我有一个内核,它很少使用寄存器和共享内存。这是否意味着我可以拥有maximum_active_warps驻留块并实现100%的占用,因为占用只取决于寄存器/共享内存的使用量?
发布于 2017-01-29 13:58:05
驻地数据自动化系统( CUDA )经纬仪与活动数据自动化系统(CUDA)经纬仪之间有什么区别?
在这种情况下,想必什么也没有。
从我在web上的研究来看,似乎一个块在整个执行过程中都是驻留在SM上的(即与其寄存器/共享内存文件一起分配的)。和“积极”有什么区别吗?
现在,您已经从询问有关翘曲的问题转向询问有关块的问题。但是,在这种情况下,不,你可以认为它们是一样的。
如果我有一个内核,它很少使用寄存器和共享内存。这是否意味着我可以拥有maximum_active_warps驻留块并实现100%的占用,因为占用只取决于寄存器/共享内存的使用量?
不,因为一个翘曲和一个块不是一回事。正如你自己所引用的那样,占用是以翘曲而不是块来定义的。最大翘曲数固定在48或64取决于您的硬件。根据硬件的不同,最大块数固定在8、16或32。有两个独立的限制是不一样的。两者都会影响到给定内核所能达到的有效占用率。
https://stackoverflow.com/questions/41920998
复制相似问题