当我针对32宽的warp CUDA架构时,我应该使用warpSize吗?

时间:2017-02-21 15:23:26

标签: c++ cuda exit abort

这是this one的后续问题。

假设我有一个CUDA内核

template<unsigned ThreadsPerWarp>
___global__ foo(bar_t* a, const baz_t* b);

并且我在ThreadsPerWarp为32的情况下实施了它的专业化(这避免了对Talonmies的有效批评&#39;回答我之前的问题。)

在这个函数(或从它调用的其他__device__函数)的主体中 - 我应该更喜欢使用ThreadsPerWarp的常量值吗?或者使用warpSize更好吗?或者 - 根据它生成的PTX,编译器是否完全相同?

1 个答案:

答案 0 :(得分:0)

不,不要使用warpSize

似乎除了潜在的未来证据(实际上有问题)之外,使用它没有任何优势。相反,你可以使用类似的东西:

enum : unsigned { warp_size = 32 };