CPU的单个处理单元和GPU的单个处理单元有什么区别?
我在互联网上看到的大多数地方都涵盖了两者之间的高级差异。我想知道每条指令可以执行哪些指令,它们的速度有多快,以及这些处理单元如何集成到完整的架构中?
这似乎是一个答案很长的问题。所以很多链接都很好。
edit:
在CPU中,FPU运行实数运算。每个 GPU 核心执行相同操作的速度有多快?如果快的话为什么这么快?
我知道我的问题很笼统,但我的目标是回答这些问题。
简短回答
GPU 和 CPU 之间的主要区别在于 GPU 被设计为在许多独立数据元素上并行执行相同的操作,而 CPU 被设计为尽快执行单个指令流。
详细解答
部分问题提出
在CPU中,FPU运行实数运算。多快都一样
每个 GPU 核心正在执行哪些操作?如果快的话为什么这么快?
这是指 CPU 和 GPU 中使用的浮点 (FP) 执行单元。这主要区别 is not单个 FP 执行单元是如何实现的。相反,区别在于 CPU 核心只有几个 FP 执行单元独立指令,而一个 GPU 将有数百个在其上运行独立数据在平行下。
GPU 最初是为执行图形应用程序的计算而开发的,在这些应用程序中,对数百万个不同的数据点重复执行相同的操作(想象一下应用查看屏幕上每个像素的操作)。通过使用SIMD https://en.wikipedia.org/wiki/SIMD or SIMT https://en.wikipedia.org/wiki/Single_instruction,_multiple_threadsGPU 减少了处理单个指令的开销,但代价是需要多个指令以锁步操作。
Later GPGPU编程 http://gpgpu.org/该模型之所以流行,是因为除了图形之外,还有许多类型的编程问题都适合该模型。主要特点是问题是数据并行的,即相同的操作可以在许多单独的数据元素上独立执行。
与 GPU 相比,CPU 经过优化,可以尽快执行单个指令流。 CPU使用流水线、缓存、分支预测、乱序执行等来实现这一目标。执行单个浮点指令所花费的大部分晶体管和能量都花在管理流经流水线的指令的开销上,而不是花在浮点执行单元上。虽然 GPU 和 CPU 的 FP 单元可能会有所不同,但这并不是两种架构之间的主要区别。主要区别在于指令流的处理方式。 CPU 还往往在不同的内核之间拥有高速缓存一致性内存,而 GPU 则不然。
当然,特定 CPU 和 GPU 的实现方式有很多变化。但高级编程的区别在于 GPU 针对数据并行工作负载进行了优化,而 CPU 内核针对尽快执行单个指令流进行了优化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)