专栏名称: 半导体行业观察
半导体行业第一垂直媒体,30万半导体精英的共同关注!实时、专业、原创,专注观察全球半导体行业最新资讯、技术前沿、发展趋势。欢迎订阅摩尔精英旗下更多公众号:摩尔精英MooreRen、摩尔芯闻MooreNEWS
目录
相关文章推荐
OFweek维科网  ·  突发!63亿锂电工厂暂停建设 ·  3 天前  
国芯网  ·  英特尔通知: 下月裁员20%! ·  2 天前  
国芯网  ·  英特尔通知: 下月裁员20%! ·  2 天前  
半导体行业联盟  ·  【倒计时6天参会指南】大咖阵容抢先看@The ... ·  2 天前  
半导体行业联盟  ·  沈阳中科仪冲刺北交所IPO ·  2 天前  
51好读  ›  专栏  ›  半导体行业观察

CPU和GPU双低效,未来性能提高万倍只看它?

半导体行业观察  · 公众号  · 半导体  · 2017-05-26 08:50

正文

请到「今天看啥」查看全文



何为“快”“慢”?口语中的“快”,可以指延迟小(从开始到结束间隔的时间短),也可以指带宽大(单位时间内通过的量大),说“高铁快”,指前者,说“网速快”,指后者。内存的带宽其实增长得还凑合,486时代CPU跑100MHz,SDRAM内存带宽为100MT/s;如今CPU达到2GHz~3GHz,DDR4内存带宽3200MT/s。虽然内存带宽有了几十倍的提升,但从发出读请求到内存条返回数据的延迟,这二十年来只减小了两倍多。


且不说外行人,很多初级程序员都不知道内存的延迟如此糟糕,即使是资深程序员,在大多数时候,也可以在编码中忽略它,为什么?这都是CPU的功劳。CPU使用了很多复杂的技术来隐藏内存的延迟,例如:


CPU使用非常大量的片上存储来做cache(缓存),把程序经常访问的数据放在片上,这样就不必访问内存了


CPU用复杂的技术猜测程序即将访问哪些数据,用预取的方式,提前把这些数据从内存中搬运到片上


当某一段程序由于等待内存数据而卡住无法执行时,CPU用乱序的方式,执行接下来的片段


使用超线程技术,当一个程序因为等待内存数据而卡住时,选择另外一个程序来执行


CPU的硅片上,绝大多数面积都是用来制造“内存访问近乎零延迟”这一假象的,真正用来做运算的逻辑,所占面积甚至不到1%——这就是它低效的根源。


CPU诞生于Logic和Memory的速度差不多的年代,那个时候,程序员就已经习惯于假设“内存访问近乎零延迟”,为了保证对软件的兼容,CPU多年来不惜一切代价维持这一假象。积重难返,时至今日,软件已经无法通过CPU来充分利用集成电路制造工艺所提供的澎湃动力。


为什么GPU是低效的


再用一句话来总结GPU最大的特点:它给程序员一个假象,让你感觉GPU上面有数十万个小程序在运行,彼此相安无事。


GPU的架构,简单地说,就是把类似CPU超线程的技术用到极致来隐藏内存访问的超长延迟。GPU里面有数千个小核心,每个都可以看成是个小CPU,与此同时,它同时运行最多数十万个小程序,大多数程序会因为等待访存而卡住,真正在小CPU上执行的程序只有数千个。


因为同时在工作的小核心有数千个,GPU比起CPU,单位时间内完成的运算量大多了。但它也有软肋,那就是:这数十万个小程序,彼此之间根本不可能相安无事,它们会抢存储带宽,抢得很凶。GPU要付出的管理代价相当高:


要做复杂的缓存,以备一块从显存取来的数据被很多小核心使用


访存接口只有8个,能发出访存请求的小核心确有数千个,必须分析它们发出的请求,把访问相邻地址的请求捏在一起作为一个请求送给显存


访存带宽必须做得远高于CPU,才能喂饱数千个小核心


数千个小核心上,每个时钟周期所运行的小程序都可能不一样,每个小程序的上下文都要保留,以备将来唤醒。为了存储上下文所付出的片上Memory的面积,堪比CPU上的庞大缓存


相对于CPU,GPU制造假象的能力稍逊一筹,稍有经验的GPU程序员,都明白要尽可能让GPU上并行跑的数十万小程序在访存时呈现一定的规律,否则GPU的效率会大打折扣。


GPU的定位,不单单是图形加速,而是所有的有海量数据并行运算的应用,因此它必须非常通用,不能对其上运行的数十万个小程序做限制。事实上,这数十万的小程序每个都可以任意访问到显存的所有位置,而且访问的位置各不相同,在这种情况下,GPU也要保证功能的正确性,哪怕跑得慢些。管理和组织这数十万个不受限制的小程序所付出的硅片面积代价和内存带宽的代价,是GPU低效的根源。


为什么FPGA只是过渡方案


CPU和GPU的架构都有非常沉重的历史包袱,体现在:


它们都有很强的通用性,不能仅仅只针对某个领域做优化


它们都有很强的兼容性,过去编写的程序必须能够运行


它们都有稳定而庞大的程序员队伍,这些程序员的思维方式不加改变的话,它们就不能放弃提供那些“假象”


这些也是非常伟大而甜蜜的包袱,正因为背负着它们,CPU和GPU厂商才能在它们既有的市场里呼风唤雨,并且把竞争者挡在门外。







请到「今天看啥」查看全文