gpt4 book ai didi

CUDA 核心管道

转载 作者:行者123 更新时间:2023-12-04 22:32:36 27 4
gpt4 key购买 nike

我关注 this article关于 GPU 的预测模型。在第 5 页的第二列中,他们几乎在最后说

One has to finally take care of the fact that each of the Nc cores(SPs) in an SM on the GPU has a D-deep pipeline that has the effect of executing D threads in parallel.



我的问题与 有关D-深管道 .这条管道是什么样的?它是否类似于 CPU 的管道(我的意思是 这个想法,因为 GPU-CPU 的架构完全不同)关于获取、解码、执行、写回?

是否有文档记录了这一点?

最佳答案

是的,GPU SM 的管道看起来有点像 CPU 的。不同之处在于管道的前端/后端比例:GPU 具有单个提取/解码和许多小型 ALU(认为有 32 个并行执行子管道),在 SM 内分组为“Cuda 核心”。这类似于超标量 CPU(例如,Core-i7 有 6-8 个问题端口,每个独立 ALU 流水线一个端口)。

有 GTX 460 SM(来自 destructoid.com 的图像;我们甚至可以看到每个 CUDA 核心内部有什么两条管道:调度端口,然后是操作数收集器,然后是两个并行单元,一个用于 Int,另一个用于 FP 和结果队列):GTX 460 SM

(或来自 http://www.legitreviews.com/images/reviews/1193/sm.jpg 的质量更好的图像 http://www.legitreviews.com/article/1193/2/ )

我们看到这个 SM 中有一个指令缓存,两个 warp 调度器和 4 个调度单元。并且有一个单一的寄存器文件。因此,GPU SM 流水线的第一阶段是 SM 的公共(public)资源。在指令规划之后,它们被分派(dispatch)到 CUDA 核心,每个核心可能有自己的多级(流水线)ALU,特别是对于复杂的操作。

流水线的长度隐藏在架构中,但我假设总流水线深度远大于 4。(显然有 4 个时钟滴答延迟的指令,因此 ALU 流水线 >= 4 阶段,并且假定总 SM 流水线深度为超过20个阶段:https://devtalk.nvidia.com/default/topic/390366/instruction-latency/)

还有一些关于指令完整延迟的附加信息:https://devtalk.nvidia.com/default/topic/419456/how-to-schedule-warps-/ - SP 为 24-28 个时钟,DP 为 48-52 个时钟。

Anandtech 发布了一些 AMD GPU 的图片,我们可以假设两个供应商的流水线的主要思想应该是相似的:http://www.anandtech.com/show/4455/amds-graphics-core-next-preview-amd-architects-for-compute/4

AMD core according to Anandtech

因此,获取、解码和分支单元对于所有 SIMD 内核都是通用的,并且有很多 ALU 管道。在 AMD 中,寄存器文件在 ALU 组之间分段,在 Nvidia 中显示为单个单元(但它可以实现为分段并通过互连网络访问)

正如 this work 中所说

Fine-grained parallelism, however, is what sets GPUs apart. Recall that threads execute synchronously in bundles known as warps. GPUs run most efficiently when the number of warps-in-flight is large. Although only one warp can be serviced per cycle (Fermi technically services two half-warps per shader cycle), the SM's scheduler will immediately switch to another active warp when a hazard is encountered. If the instruction stream generated by the CUDA compiler expresses an ILP of 3.0 (that is, an average of three instructions can be executed before a hazard), and the instruction pipeline depth is 22 stages, as few as eight active warps (22 / 3) may be sufficient to completely hide instruction latency and achieve max arithmetic throughput. GPU latency hiding delivers good utilization of the GPU's vast execution resources with little burden on the programmer.



因此,管道前端(SM 调度器)每个时钟一次只调度一个扭曲,并且调度器的调度与 ALU 完成计算的时间之间存在一些延迟。

部分图片来自 Realworldtech http://www.realworldtech.com/cayman/5/http://www.realworldtech.com/cayman/11/ 与 Fermi 管道。注意每个 ALU/FPU 中的 [16] 注释——这意味着物理上有 16 个相同的 ALU。

fermi pipeline according to Realwordtech

关于CUDA 核心管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16692572/

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