在执行设备查询时,我想知道“每个多处理器的最大线程数”和“每个块的最大线程数”之间的区别。据我所知,sm = multiprocessor = block在gpu上,但我不明白为什么这两个值是不同的。一个多处理器中有多个块吗?
Maximum number of threads per multiprocessor: 1536
Maximum number of threads per block: 1024另外一个问题是线程和内核之间的关系,匹配线程= core是正确的吗?
发布于 2022-03-17 04:22:17
在一个多处理器中有多个块吗?
是的,可以的。
很简单,sm ==多处理器。sm !=块
多处理器( SM )是一个硬件实体。线程块是一个软件实体,基本上是一个线程集合。
SM或多处理器可以有多个块驻留。要完全占用一个拥有1536个最大线程的SM,您需要有三个类似于三个512线程块的驻留线程。
和另一个问题是线程和内核之间的关系,匹配线程=核心是正确的吗?
线程表示一系列指令。GPU the中的“核”是SM中的一个功能单元,它处理某些指令类型,即32位浮点加、乘和多加指令。其他指令类型由SM中的其他(种类)功能单元处理。
当线程有需要处理的32位浮点指令类型之一时,它将需要内核。如果它碰巧有不同的指令要处理,比如LD (load)指令,那么它将需要一个不同的功能单元,具体来说,在这种情况下/示例中需要一个LD/ST (load/store)单元。
https://stackoverflow.com/questions/71507046
复制相似问题