Answers:
这是虚拟处理器(VP)与GPU的物理处理器(PP)对齐的问题。由于PP的数量通常是2的幂,因此使用与2的幂不同的VP数量会导致性能下降。
您可以看到VP在PP上的映射,就像一堆大小等于PP数的切片一样。
假设您有16 PP。
您可以在它们上映射16 VP:1 VP映射到1 PP。
您可以在它们上映射32 VP:2片16 VP,1 PP将负责2 VP。
在执行过程中,每个PP将执行他负责的第一个VP的工作,然后执行第二个VP等的工作。
如果使用17 VP,则每个PP都会执行其第一个PP的工作,然后1个PP将执行执行第17个AND的工作其他的则什么也不做(如下所述)。
这是由于GPU使用的SIMD范例(在70年代称为向量)。这通常被称为数据并行性:所有PP都在同一时间执行相同的操作,但对不同的数据执行相同的操作。请参阅https://en.wikipedia.org/wiki/SIMD。
更准确地说,在具有17 VP的示例中,一旦完成了第一片的工作(所有PP都完成了其第一VP的工作),所有PP都将执行相同的工作(第二VP),但是只有一个拥有一些要处理的数据。
与学习无关。这只是编程的东西。