出处:pconline
作者:小米责任编辑:zhongyuexuan
芯片生产商nvidia的首席科学家davidkirk日前表示,人们需要深入研究芯片应用中的并行处理技术。
davidkirk在第17届hotchips会议上表示,在比较了未来的通用cpu和图形处理器之后,他发觉编程技术正面临一场危机。虽然目前的gpu技术仍在继续不断进步,但这场危机不仅将严重打击未来的cpu市场,还可能导致图形处理器的性能停滞不前。
“如果我们仔细审视通用cpu的形势。”kirk说,“我们会见到架构的变化正在迅速朝着多线程和多核心的方向发展,但我们并没有见到太多线程需要执行。在编程过程中,这种并行处理能力往往都被隐藏甚至丧失掉。”
kirk的悲观来自于游戏开发者在试图利用新的多核cpu芯片时的实际经验。“我们经常见到的是游戏受到cpu吞吐量的限制,贴图的速度可能比cpu发送数据的速度更高。”kirk说,“但当游戏开发者试图使用多核cpu改善这种情况时却发觉实际上并没有从第二个cpu核心中获益。如果开发者未能清楚理解不同核心及其缓存之间的交互机制,可能导致应用程序在双核机器上的运行速度更慢。”
kirk称,这种情形的出现是由于gpu内部完全不同的架构。“对图形的要求总是同时提出的,”他说。“而实际上,gpu管线中的每个阶段、场景中的每个顶点以及图像中的每个像素都是独立的,我们在编程时需要花大力气来迎合这种并行需求。”
对于gpu开发者来说,这个问题可以简单地通过添加更多的顶点处理器和着色引擎来实现同时处理更多的顶点和像素,但前提是制造工艺能跟得上要求。“现在限制我们的是芯片面积,而不是并行处理技术,”kirk评论说。
在本次会议之前,kirk曾指出使用在playstation3中的geforce图形处理器的每秒浮点运算能力比其所支持的cell处理器更高!
kirk的忧虑在于虽然gpu可以继续通过添加更多执行单元来满足图形任务几乎无穷无尽的并行处理要求,但cpu却已接近扩展的极限。没有更多的独立线程或者数据供处理的话,添加再多的线程或者核心也无济于事。而通用运算中的这种矛盾短期内似乎并没有改善的迹象。
“程序员们并不理解如何利用这种能力,”他说。“我们需要大学设立更多的并行编程技术课程并普及到本科而不仅仅是研究生课程中。在并行语言方面的研究停滞不前,大家的精力都花在java虚拟机和网络编程上了,但这方面的研究已经太多了。”
他还表示,cpu设计者转向并行架构的其中一个原因是能源方面的危机。“架构上能源方面的影响将迫使其变得并行能力更强,”kirk说。“如果没有足够多的线程利用这些硬件,多核cpu的价值将被贬低到连单核都不如。”
“这样的结果将是cpu供应商所无法接受的,”他最后补充说。