安卓系统

多核芯片构成行业的下一个巨大挑战

印度研制出第一款RISC-V芯片原型Shakrti

印度研制出第一款RISC-V芯片原型Shakrti
Anonim

增加更多处理内核已成为提高服务器和PC芯片性能的主要方式,但如果行业无法克服某些硬件和编程挑战,则会大大降低其优势,参加圣克拉拉Multicore Expo的参与者加利福尼亚州本周表示,目前大多数软件仍然是针对单核芯片编写的,需要重写或更新以利用英特尔,Sun Microsystems和其他芯片制造商增加的越来越多的内核。 Linley集团总裁兼首席分析师Linley Gwennap说,

现有的应用程序通常运行速度更快,CPU数最多可达4个处理器内核,但超出此性能他说,随着更多内核的添加,它甚至可能会恶化。 Gartner最近的一份报告也强调了这个问题。芯片制造商和系统制造商已经开始努力教育开发人员并为他们提供更好的多核编程工具。一年前,英特尔和微软表示,他们将投资2000万美元在美国大学开设两个研究中心,致力于解决这个问题。 Gwennap说,缺乏针对主流开发人员的多核编程工具可能是当前行业面临的最大挑战。应用程序的写作方式可以让计算任务的不同部分(如解决数学问题或渲染图像)划分并跨多个核心同时执行并不新鲜。但是,这种通常称为并行计算的模式迄今为止主要限于专用的高性能计算环境。但近年来,英特尔和AMD已经将内核作为一种更节能的方式来提升性能芯片性能,这是他们传统的增加时钟速度的显着变化。英特尔正在为其即将推出的Nehalem-EX芯片构建八个内核,而AMD正在为服务器设计12核芯片。他们还增加了多线程功能,允许每个内核同时在多行代码上工作。

这意味着主流应用程序必须以不同的方式编写,以利用可用的额外内核。这项工作很难做到,并为软件缺陷的新类型创造了潜力。其中最常见的是“竞赛条件”,其中计算的输出取决于以特定顺序完成的任务的各种要素。如果不是这样,就会导致错误。

有一些并行编程工具可用,例如英特尔的Parallel Studio for C和C ++。该领域的其他厂商还有Codeplay,Polycore Software和Clik Arts。还有一个新的基于C的并行编程模型,称为OpenCL,由Khronos Group开发,并得到Apple,Intel,AMD,Nvidia等的支持。多核世博会说。软件编译器需要能够识别可以并行化的代码,然后在没有程序员的手动干预的情况下进行并行化工作,EEMBC软件工程总监Shay Gal-on表示,该公司是开发嵌入式芯片基准的非营利组织。

尽管缺乏工具,但一些软件供应商发现为简单计算作业(如图像和视频处理)创建并行代码相对容易,Gwennapp说。 Adobe已经重写了Photoshop,可以将特定的放大和图像过滤等任务分配给特定的x86内核,从而将性能提高三到四倍,他说。“如果您正在制作视频或图形,则可以采用不同的像素并将它们分配给不同的CPU,这样就可以获得很多并行性,“他说。但是对于更复杂的任务,很难找到一种方法来识别可以并行化然后划分的一系列计算。

尽管编程方面可能面临最大的挑战,但也需要进行硬件更改,以克服诸如内存延迟和总线速度慢等问题。 “在芯片上添加越来越多的CPU时,需要内存带宽来支持它,”Gwennap说。“在多个内核之间共享单个内存缓存或数据总线可能会造成瓶颈,这意味着额外的内核将会大量浪费。 “当你达到六到八个CPU时,他们会把所有的时间花在互相交流,而不是继续完成任何工作,”他说。“最终,开发人员可能会因此而搁置硬件和软件编写更好的并行程序。 Gal-on表示,许多编码人员无法加速硬件设计的最新发展。他们应该开放数据表并研究芯片架构,以了解他们的代码如何更好地执行,“他说