gpt4 book ai didi

cuda - 来自 32 个 block 的 32 个线程是否会被安排为一个经线?

转载 作者:行者123 更新时间:2023-12-04 18:46:20 28 4
gpt4 key购买 nike

我知道在 CUDA 中,同一块中的 32 个相邻线程将被安排为一个扭曲。但我经常发现一些教程 CUDA 代码有多个块,每个块有 1 个线程。在这个模型中,来自 32 个块的 32 个线程是否会被调度为一个扭曲?如果不是,我能说这个模型不如组织成每块 32 个线程那么有效吗?谢谢!

最佳答案

不,来自不同块的线程不能在同一个经线中调度。如果您仅使用单个线程创建线程块网格,那么您肯定无法从机器获得全部性能。它比每个块有 32 个(或 32 个的整数倍)线程效率低。例如,一个 Fermi SM 有 32 个可以使用的经线 channel 。如果您正在调度单个线程的块,那么在任何给定时间只能使用这 32 个 channel 中的 1 个。

线程有一个线程 ID(threadIdx 内置变量),它在单个块中定义(并且仅对一个块唯一)。

C 编程指南的硬件多线程部分给出了 a formula which defines the total number of warps in a single block .

关于cuda - 来自 32 个 block 的 32 个线程是否会被安排为一个经线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13695313/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com