Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization 流多处理器,cuda中每个流处理器的核心_Optimization_Cuda - Fatal编程技术网

Optimization 流多处理器,cuda中每个流处理器的核心

Optimization 流多处理器,cuda中每个流处理器的核心,optimization,cuda,Optimization,Cuda,使用不同的nvidia图形卡,它具有不同的规格,具有不同数量的流多处理器,并且每个流处理器中的每个处理器具有不同数量的内核 线程块根据类似设备的容量分配给单个处理器 1块32经或2块16经 但我无法理解每个流处理器中的内核数量在每个流处理器中拥有更多内核的设备有什么意义? 我认为我们需要更好地利用设备属性来进行更好的优化 关于流处理器和每个流处理器的内核,cuda程序在设备中的实际运行方式???/ 在每个流处理器中拥有更多内核的设备有什么意义 每个SM的内核数大致相当于在任何给定的时钟周期内可以

使用不同的nvidia图形卡,它具有不同的规格,具有不同数量的流多处理器,并且每个流处理器中的每个处理器具有不同数量的内核

线程块根据类似设备的容量分配给单个处理器 1块32经或2块16经

但我无法理解每个流处理器中的内核数量在每个流处理器中拥有更多内核的设备有什么意义?

我认为我们需要更好地利用设备属性来进行更好的优化

关于流处理器和每个流处理器的内核,cuda程序在设备中的实际运行方式???/

在每个流处理器中拥有更多内核的设备有什么意义

每个SM的内核数大致相当于在任何给定的时钟周期内可以处理多少个warp指令。单个warp指令可以在任何给定的时钟周期内处理,但需要32个内核才能完成(并且可能需要多个时钟周期才能完成,具体取决于指令)。具有32个“核心”的cc2.0费米SM平均每个时钟最多可以失效1条指令(实际上每2个时钟失效2条指令)。具有192个内核的开普勒SMX每个时钟可以使4条或更多指令失效。要获得更精确的答案,请参阅《编程指南》中的“计算能力体系结构”部分,并注意每个计算能力都有一个部分

实际上,cuda程序如何在设备中与流处理器和每个流处理器的内核相关/

这个问题在CUDA标签上已经回答了很多次。网格中与内核启动相关联的每个线程块都分配给一个SM(当SM有空闲插槽时)。然后,SM将threadblock“解包”为扭曲,并在SM内部资源(如“核心”和特殊功能单元)可用时,安排扭曲指令