kir*_*off 4 gpu computer-architecture core cpu-architecture nvidia-graphics-card
(比如 NVidia)GPU 由流多处理器组成,流多处理器由流处理器阵列或 CUDA 核心组成。V100 上有 5120 个 CUDA 内核。通用(例如英特尔)CPU“仅”最多 48 个内核。
GPU 核心与 CPU 核心有何不同?区别本质上是支持的指令集吗?CUDA 核心的频率是多少?
编辑
CPU上的向量寄存器操作是单指令多数据(SIMD),GPU上网格/线程块/线程之间分布的内核是单指令多线程(SIMT)。我们可以说 GPU 只是一个 SIMT 设备吗?数据呢?并行运行的不同线程是否将相同的内核应用于不同的数据集?然后似乎 GPU 同时执行 SIMD 和 SIMT。你想对此有何评论 ?
CPU 是比 GPU 更通用的机器。我们可能会谈论将 GPU 用作“通用”GPU,但它们具有不同的优势。
CPU 内核能够执行多种操作并处理(所有意图都可以被认为是)随机分支指令流。多个程序都在处理器上争夺时间并由操作系统控制。他们尽可能多地缓存和预测,同时仍然试图保持能够处理指令流中的突然变化。
另一方面,GPU 是旨在处理数据流的处理器。他们的处理器设计用于处理潜在大量数据的小系列指令(着色器程序)。HD、2k 和 4k 屏幕包含大量像素,着色器必须在连续运行中跨每个像素运行程序才能实现特定效果。为此,他们的程序(与 CPU 相比)更小,他们的每核缓存同样更小,但他们的内存带宽明显更快。
通过适当的编程,它们可能能够实现相同的任务,但指令与数据处理的重点是将 CPU 与 GPU 分开的原因。
因此,它们的核心旨在发挥这些优势。很长一段时间以来,GPU 着色器核心一直在 1-2GHz 左右运行(现代英特尔图形核心将其速度列为 500MHz 到 1.5GHz),而 CPU 一直在 1.5 到 4GHz 之间,甚至更高。
指令处理从单个单元的速度中获益更多,因为将指令流分解为多个流可能很困难或不可能,因此 CPU 需要更快以更快地处理指令。问题在于,核心运行速度越快,它产生的热量就越多,因此您的运行速度会受到限制。(还有其他技术限制会影响时钟速度,但这是另一回事。)
另一方面,数据处理有助于在不同的数据集和并行性上运行相同的任务(程序),因此您可以在任务中投入的内核越多越好。以较慢的速度运行内核会产生较少的热量。更少的热量意味着您可以放入更多内核,从而提高数据吞吐量。因此,数据任务受益于与 CPU 不同(更小、更精简)类型的内核。
最终结果是我们有两种不同类型的处理器。一种针对通用指令流,另一种针对批量数据处理。
归档时间: |
|
查看次数: |
8748 次 |
最近记录: |