CPU的单个处理单元和GPU的单个处理单元有什么区别?
我在互联网上走过的大多数地方都掩盖了两者之间的高层差异。我想知道每条指令可以执行什么指令,它们执行的速度有多快?这些处理单元如何集成到竞争体系结构中?
这似乎是一个答案很长的问题。所以很多链接都很好。
编辑:
在CPU中,FPU运行实数运算。每个GPU内核中完成相同操作的速度有多快?如果快,那为什么会快呢?
我知道我的问题很笼统,但我的目标是要回答这些问题。
GPU和CPU之间的主要区别在于,GPU被设计为在许多独立的数据元素上并行执行相同的操作,而CPU被设计为尽可能快地执行单个指令流。
部分问题问
在CPU中,FPU运行实数运算。每个GPU内核中完成相同操作的速度有多快?如果快,那为什么会快呢?
这是指在CPU和GPU中使用的浮点(FP)执行单元。的主要差别是不单个FP执行单元是如何实现的。相反,不同之处在于,CPU内核将只有少数几个执行独立指令的FP执行单元,而GPU将有数百个并行执行独立数据的指令执行单元。
GPU最初是为图形应用程序执行计算而开发的,在这些应用程序中,相同的操作在数百万个不同的数据点上重复执行(想象一下应用一个操作来查看屏幕上的每个像素)。通过使用SIMD或SIMT操作,GPU降低了处理单个指令的开销,但需要多个指令以同步方式进行操作。
后来GPGPU编程变得流行,因为除了适用于该模型的图形外,还有许多类型的编程问题。主要特征是问题是数据并行的,即可以对许多单独的数据元素独立执行相同的操作。
与GPU相比,CPU经过了优化,可以尽快执行单个指令流。CPU使用流水线处理,缓存,分支预测,乱序执行等方法来实现此目标。执行单个浮点指令所花费的大多数晶体管和精力都花费在管理指令流经管线而不是FP执行单元的开销中。尽管GPU和CPU的FP单元可能会有所不同,但这并不是两种体系结构之间的主要区别。主要区别在于指令流的处理方式。CPU也倾向于在单独的内核之间具有缓存一致性内存,而GPU则没有。
当然,具体的CPU和GPU的实现方式有很多变体。但是高级编程的区别在于,GPU针对数据并行工作负载进行了优化,而CPU内核针对尽快执行单个指令流进行了优化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句