首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CUDA核和CPU核有什么区别?

CUDA核和CPU核有什么区别?
EN

Stack Overflow用户
提问于 2014-01-08 00:17:08
回答 4查看 24.5K关注 0票数 27

我用过一点CUDA,也用过很多CPU,我正在尝试理解这两者之间的区别。我的I5处理器有4个内核,售价200美元,而我的NVidia 660有960个内核,价格大致相同。

如果有人能解释一下这两个处理单元架构在能力、优缺点方面的关键区别,我会非常高兴。例如,CUDA核心是否有分支预测?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-09 00:54:54

这是一个计算机体系结构问题,需要一个很长的答案。我将尽量保持它非常简单,以避免不准确的风险。你基本上自己回答了你的问题,问做CUDA核心处理分支预测,答案是否定的。CPU核心必须处理计算机执行的每一项操作,计算、内存获取、IO、中断,因此它具有巨大的复杂指令集,并使用分支预测来优化获取指令的速度。

此外,它有一个大的缓存和快速的时钟频率。为了实现指令集,你需要更多的逻辑,因此与GPU相比,更多的晶体管,更多的核心成本。

GPU内核具有更少的高速缓存,更简单的指令和更低的每时钟时钟频率,但它们经过优化,可以作为一个组进行更多的计算。指令集越简单,缓存越少,每个内核的成本就越低。

票数 10
EN

Stack Overflow用户

发布于 2016-05-17 05:24:39

Cuda核心是向量单元的更多通道,聚集到翘曲中。本质上,cuda核心是更广泛的AVX或VSX或霓虹灯矢量中的条目。

最接近CPU核心的是SMX。它可以处理多个上下文(warps,超线程,SMT),并且有几个并行执行流水线(6个FP32用于开普勒,2个在Haswell上,2个在Power 8上)。每个SMX都是独立的,就像任何核心或通用CPU一样。

这个类比在这里有更详细的描述:https://stackoverflow.com/a/36812922/6218300

票数 6
EN

Stack Overflow用户

发布于 2016-05-17 04:36:35

它们现在在原则上与CPU核心相同。不久前,这还不是真的,例如,他们在2005年就无法处理整数操作数。

在比较双核i5的CPU核心复杂度时,请记住,最初的80386 CPU只有大约275K晶体管,而Core2Duo大约有2.3亿个晶体管。1000倍以上,所以这些数字符合得很好。

最大的不同是内存处理,它变得比过去我们需要分段寄存器的时候更加复杂。没有虚拟内存等,当你尝试移植正常的CPU程序时,它是一个非常细小的瓶颈,但真正的问题是,非本地内存访问非常昂贵,400-800个周期。他们使用的是GPU世界之外只有SUN Niagara T1/T2通用CPU拥有的技术。在等待内存访问时,它们使用其他准备好的指令来调度不同的线程集(称为wraps)。但是,如果所有线程都是围绕您的数据进行非线性跳转,那么您的性能就会失败。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20976556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档