Parallel processing SM(流式多处理器)、活动块和活动扭曲在GPU中的表现如何? 假设你的GPU有8条短信。因此,如果执行一个CUDA内核时有足够的块(比如说200块),那么会使用所有8条SMs来执行吗 现在只考虑一个SM。假设有8个活动块,256个线程/块(8个扭曲/块)。最大活动扭曲=64

Parallel processing SM(流式多处理器)、活动块和活动扭曲在GPU中的表现如何? 假设你的GPU有8条短信。因此,如果执行一个CUDA内核时有足够的块(比如说200块),那么会使用所有8条SMs来执行吗 现在只考虑一个SM。假设有8个活动块,256个线程/块(8个扭曲/块)。最大活动扭曲=64,parallel-processing,cuda,gpu,Parallel Processing,Cuda,Gpu,一旦内核启动,8个活动块是否会并行处理 我知道每个SM中的计划程序将安排扭曲。这意味着扭曲不会并行执行,而是并发执行 这是我真正的问题。我遇到了一个特定内核的低延迟问题。以下是限制因素。 我只是想知道这种情况下的最佳调整是什么。因为如果活动块至少没有并发执行,那么增加活动块计数是没有意义的。因为,拥有最少数量的活动块和64个活动扭曲将更好地执行(忽略寄存器限制,因为我可以相应地调整它)。假设满足所有资源约束,所有块/扭曲将同时驻留在SM 3.0-7.0上,并且每个SM扭曲调度器(每个SM 4个

一旦内核启动,8个活动块是否会并行处理

  • 我知道每个SM中的计划程序将安排扭曲。这意味着扭曲不会并行执行,而是并发执行

  • 这是我真正的问题。我遇到了一个特定内核的低延迟问题。以下是限制因素。
    我只是想知道这种情况下的最佳调整是什么。因为如果活动块至少没有并发执行,那么增加活动块计数是没有意义的。因为,拥有最少数量的活动块和64个活动扭曲将更好地执行(忽略寄存器限制,因为我可以相应地调整它)。

    假设满足所有资源约束,所有块/扭曲将同时驻留在SM 3.0-7.0上,并且每个SM扭曲调度器(每个SM 4个)将分配1/4扭曲。在每个周期中,warp调度程序将选择最合适的活动warp并执行1-2条指令(取决于架构)。1 SM的最大指令发布并行度为4个扭曲。飞行指令的最大扭曲并行度是64个扭曲的SM限制


    每个SM的最佳扭曲数将随指令组合、资源需求和内存访问模式而变化。探查器可用于确定配置是否有足够的扭曲来隐藏延迟。增加扭曲会牺牲寄存器,但会增加潜在的延迟隐藏。增加每个块的扭曲可以增加扭曲之间的数据共享,但如果内核具有尾部效应,则可能导致较低的占用率;如果大量使用屏障,则可能导致较低的合格扭曲率。在这些情况下,建议减少每个块的翘曲。如果内核未使用共享内存,则建议使用较小的块大小(256个线程/块)。

    1。是的,2。取决于内核和内核所需的资源以及GPU上可用的资源。3.多达2048个线程可能会根据数据可用性并发执行,但不是所有指令同时执行:交错每个扭曲的可执行扭曲指令。想想同步线程的可行性。当运行单个内核时,与(2)和(3)相关的场景是不可能的。为什么说第二个和第三个是不可能的Talonmies我接受1和3的答案。但在第二篇文章中,我试着提到有12个活动块,这意味着有足够的寄存器、共享内存和最大线程数来拥有12个活动块。我想知道这12个块是像warps一样并发执行,还是像SMs一样并行执行-Florent DUGUETChange(2)到8个块(8个扭曲/块)还是12个块(4个扭曲)。假设满足所有资源约束,所有块/扭曲将同时驻留在SM 3.0-7.0上,并且每个SM扭曲调度器(每个SM 4个)将分配1/4扭曲。在每个周期中,warp调度程序将选择最合适的活动warp并执行1-2条指令(取决于架构)。1 SM的最大指令发布并行度为4个扭曲。飞行中的最大指令并行性等于64个扭曲的SM限制。