【IT168 专稿】计算机硬件与软件之间的互动已经发展了50年之久。但在过去,双方的关系仍然保持一定的距离。往往是由硬件工程师研制出芯片之后,再扔给软件程序员。而随着多核处理器的出现,硬件/软件之间的联系会变得更加紧密。芯片制造商们逐渐认识到,多核架构正在从根本上改变传统的软件生产模式——过去的软件通常都是单线程的,要对它们进行改编使之适合多线程、多内核技术非常困难。因此,如果芯片厂商要想推广自己的产品,就必须想方设法缩短硬件和应用之间的鸿沟。
芯片厂商的共识
事实的情况是正是如此。在某种程度上,英特尔、IBM、AMD、NVIDIA等芯片厂商都在跟ISV和研究机构加强广泛合作,提供早期的硬件样品、软件支持及相关培训。芯片制造商们已经通过编译器和处理器接口库(processor interface libraries)等形式提供软件支持,来帮助工具开发商处理芯片上越来越多的内核。
比如,IBM为其CELL处理器提供软件开发套件(SDK)和其他工具(参见:Cell宽带引擎Linux扩展和软件开发工具发布:http://publish.it168.com/2005/1122/20051122046901.shtml),IBM 还启动了一个名为Octopiler的项目,使对Cell的编程更简单。
AMD为其GPU编程引入名为“Close to Metal”的CTM技术,使开发者能够随意访问AMD流处理器中的原生指令集和大规模并行计算单元的内存。利用CTM,流处理器就能够像今天的中央处理器(CPU)一样成为功能强大的开放式可编程架构。通过开放架构,CTM使开发者能够对硬件进行低阶、确定和可重复的访问,这一能力是开发编译器、调试器、数学库和应用平台等基本工具所必需的(参见:AMD发布针对流运算的CTM技术:http://publish.it168.com/2006/1120/20061120041201.shtml)。
![]() |
AMD 的CTM技术
NVIDIA则为其GPU产品提供了CUDA平台,开发人员可运用Quadro系列解决方案的高速运算性能,以研发、设计原型以及解决复杂的可视化问题。在多核X86软件支持方面,英特尔更是拥有非常广泛的商业产品、软件工具和教育培训服务,来帮助开发人员更好地应对多核芯趋势。针对大量存在的行业ISV,为了帮助其尽快的实现从单线程应用向多线程应用的转变,英特尔投入大量资源,向业界提供编译器、应用程序分析和调试、数学函数库等软件工具。
![]() |
NVIDIA CUDA技术架构辅助CPU进行运算功能
在高性能计算领域,这一策略已经变得更加清晰。最近的例子就是围绕相对较新的IBM Cell BE和通用GPU处理器,涌现了许多开发工具。在这些芯片出厂之前,PeakStream和RapidMind等厂商就开始为新的加速器设备提供应用开发平台。如果这些产品获得成功,将在芯片厂商和软件开发商之间就有望实现非常重要和关键的协同机制。下面,我们就以CELL和GPU在HPC中的应用为例,来看看其软件开发方面存在的机遇和挑战。
