cuda为什么要开启32倍数的线程

2025-04-25 05:03:14
推荐回答(2个)
回答1:

CUDA里,基本调度单位成为warp,一个warp由32个线程组成,所以一般情况下,建议使用32倍数来作为线程数。当然,并不是一定要32倍数的线程数,比如设置112个线程也是可以的,只不过,前96个线程分别组成3组warp,而后面16个线程实际在第4个warp里,只不过这个warp的后16个线程是用于补齐的,不会被调度执行而已!

回答2:

32 个线程为单位进行调度,因此 Block 中的 Thread 数目应当 是 32 的倍数