网友提问:
造cpu芯片和gpu芯片哪个更难?
优质回答:
从芯片设计的复杂度来说,高性能通用CPU芯片设计肯定超过GPU芯片。
应用范围不同导致各自的着力点也不同,CPU芯片属于全能型选手,控制、运算样样皆能,所以它所需要的专业知识面也广,技术团队成员组成也更多元;GPU芯片更像专项运动员,任务对象相对单一,尤其是核心的算法单元部分是可以以搭积木的方式堆积,所以导致它除了算法技术人员外对并行处理技术人员也有需求,至于HBM这种高带宽技术也是源于加速并行处理能力所需。
所以,虽然CPU设计复杂度高于GPU设计,但并不意味着CPU设计者就一定强过GPU设计者,Intel CPU芯片组的内置显卡就没有N记独立显卡牛掰,当然这里面不单纯是技术深度因素,和各自的策略和兼容包袱也有关。
其他网友回答
CPU和GPU都是具有运算能力的芯片,CPU更像“通才”——指令运算(执行)为重+数值运算,GPU更像“专才”——图形类数值计算为核心。在不同类型的运算方面的速度也就决定了它们的能力——“擅长和不擅长”。芯片的速度主要取决于三个方面:微架构,主频和IPC(每个时钟周期执行的指令数)。
微架构
CPU微架构的设计是面向指令执行高效率而设计的,因而CPU是计算机中设计最复杂的芯片。和GPU相比,CPU核心的重复设计部分不多,这种复杂性不能仅以晶体管的多寡来衡量,这种复杂性来自于实现:如程序分支预测,推测执行,多重嵌套分支执行,并行执行时候的指令相关性和数据相关性,多核协同处理时候的数据一致性等等复杂逻辑。
GPU其实是由硬件实现的一组图形函数的集合,这些函数主要用于绘制各种图形所需要的运算。这些和像素,光影处理,3D坐标变换等相关的运算由GPU硬件加速来实现。图形运算的特点是大量同类型数据的密集运算——如图形数据的矩阵运算,GPU的微架构就是面向适合于矩阵类型的数值计算而设计的,大量重复设计的计算单元,这类计算可以分成众多独立的数值计算——大量数值运算的线程,而且数据之间没有像程序执行的那种逻辑关联性。
因此从微架构上看,CPU擅长的是像操作系统、系统软件和通用应用程序这类拥有复杂指令调度、循环、分支、逻辑判断以及执行等的程序任务。它的并行优势是程序执行层面的,程序逻辑的复杂度也限定了程序执行的指令并行性,上百个并行程序执行的线程基本看不到。GPU擅长的是图形类的或者是非图形类的高度并行数值计算,GPU可以容纳上千个没有逻辑关系的数值计算线程,它的优势是无逻辑关系数据的并行计算。
主频
GPU执行每个数值计算的速度并没有比CPU快,从目前主流CPU和GPU的主频就可以看出了,CPU的主频都超过了2GHz,甚至3GHz,而GPU的主频最高还不到2GHz,主流的也就1GHz。所以GPU在执行少量线程的数值计算时速度并不能超过CPU。
目前GPU数值计算的优势主要是浮点运算,它执行浮点运算快是靠大量并行,但是这种数值运算的并行性在面对程序的逻辑执行时毫无用处。
IPC(每个时钟周期执行的指令数)
这个方面,CPU和GPU无法比较,因为GPU大多数指令都是面向数值计算的,少量的控制指令也无法被操作系统和软件直接使用。如果比较数据指令的IPC,GPU显然要高过CPU,因为并行的原因。但是,如果比较控制指令的IPC,自然是CPU的要高的多。原因很简单,CPU着重的是指令执行的并行性。
另外,目前有些GPU也能够支持比较复杂的控制指令,比如条件转移、分支、循环和子程序调用等,但是GPU程序控制这方面的增加,和支持操作系统所需要的能力CPU相比还是天壤之别,而且指令执行的效率也无法和CPU相提并论。
总结一下:
CPU更适合处理逻辑控制密集的计算任务,而GPU适合处理数据密集的计算任务。并且由于现代CPU的发展,使得CPU与计算机主存的交换速度要远远大于GPU与计算机主存的交换速度,因此GPU更适合处理SIMD(SingleInstruction MultiData,单数据多指令)的运算,即将数据放到显存中进行多次计算的计算任务。
目前比较流行CPU+GPU的协同计算模型,在这个模型中,CPU与CPU协同工作,各司其职。CPU负责进行逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务。CPU、GPU各自拥有相互独立的存储器地址空间:主机端的内存和设备端的显存。
其他网友回答
CPU不但要处理大量的数据,还要逻辑判断又会引入大量的分支跳转和中断的处理,CPU擅长逻辑控制,串行的运算。
GPU的工作相对来说就比较专一,擅长大规模并发计算。
所以从芯片设计的复杂程度来说,CPU的技术含量更好些
其他网友回答
两者都算是芯片行业的集大成者,因为分工不同所以取了不同的名字,部署方式也有所不同。如果说复杂程度的话,两者应该是不相上下,CPU会更侧重流水线中串行部分的优化,比如分支预测、乱序执行以及超线程等等;而GPU则更侧重流水线中并行的能力,并行是GPU处理的核心,如何高效地完成并行分配并在流水线结尾执行等待是相对核心的部分。
其他网友回答
CPU的主流厂家:英特尔、AMD
GPU的主流厂家:英伟达
CPU从1971年到如今有近50年的发展历程;GPU从1999年到现在有20余年的发展历程。从发展先后顺序来比较,以个人目前的使用来看,顶级的CPU和GPU均能满足个人电脑的速度和画面质量要求,以此来看,貌似GPU的发展历程更短一些,更容易一些。
从以后的发展来看,非结构化数据的上升速度远远大于结构化数据,所以在性能提升层面,GPU的提升速度需要匹配非结构化数据的产生发展速度,肯定要求高且紧迫。
在目前两个比较成熟的情况下,GPU未来发展的挑战相对较大,从这个层面来讲,更难的倾向于GPU。