新闻中心

EEPW首页>嵌入式系统>设计应用> 利用高效的编程技术发挥多内核架构优势

利用高效的编程技术发挥多内核架构优势

作者: 时间:2014-01-07 来源:网络 收藏

TI的OMAP 44xx平台整合了ARM Cortex-A9、PowerVR SGX 540 GPU、C64x DSP和图像信号处理器。每个内核有专门的功能,处理器之间的通信不是对称的。OMAP只工作在AMP模式,而P4080的内核是系统,但也能够将内核划分为AMP模式。8内核芯片可以像8个独立内核那样运行,在许多配置中也可以联合起来使用(如一对双内核子系统,或四个单内核子系统)。

OMAP和P4080在高层架构的主要区别是OMAP功能是固定的,内核针对各自的事务做了优化。这将使编程容易得多,因为可以根据匹配功能将应用程序划分到特定内核。

每个子系统的性能水平受架构的限制,但P4080可以调整划分方案,虽然划分通常是在系统启动时完成的。系统设计师可以调整P4080中内核的分配,前提是有足够多的内核。市场上也有内核数量较少的QorIQ平台,因此可以选用更经济的芯片。

IBM的Cell处理器填补了中间的空白。它采用了1个64位的Power内核和8个增效处理单元(SPE)。所有SPE都是相同的(每个有256KB的内存),它们工作在隔离状态,这与上述讨论的共享内存系统有所不同。SPE内没有缓存,也不支持虚拟内存。

对软硬件设计来说,这种方式既有优点又有缺点。优点为是简化了硬件实现,但从多个角度看都使软件复杂化了。例如,内存管理受应用程序控制,就像内核间的通信一样。数据在能够操作之前必须要移进SPE的本地内存。完全开发Cell这样的架构很花时间,因为它们有别于更传统的SMP或AMP平台。多年来在像索尼的PlayStation 3这样的基于Cell的平台上所作的软件改进突显了和经验的变化。

GPU等专用处理器

改变是使用图形处理单元(GPU)是否成功的关健。来自ATI和Nvidia等公司的GPU在单个芯片内有上百个内核,这些GPU可以被整合进多芯片解决方案,向开发人员提供上千个内核。例如,集成进1U机箱的4个Nvidia Tesla T10就可以提供960个内核(图4)。
利用高效的编程技术发挥多内核架构优势

对Tesla或其它任何兼容的Nvidia GPU芯片进行编程都极具挑战性,但类似Nvidia的CUDA这样的架构或基于CUDA的运行时利用可以使工作变得更加轻松。部分挑战来自于Nvidia GPU的单指令、多线程(SIMT)架构。与许多高性能系统一样,这种GPU喜欢处理数组数据。对许多应用来说这是不错的选择,但并非都是这样,这正是GPU经常要与多内核CPU匹配的原因之一。

另一种并行编程架构,CUDA和OpenCL(开放计算语言),则完全匹配GPU方法(使用与主处理器分开的存储器)。这意味着数据在能被操作之前必须从一个地方移动到另一个地方。C编程语言有一定扩展,但也有限制。例如,它是自由递归的,不支持函数指针。其中一些限制源自SIMT方法。

许多应用程序使用CUDA,但与传统SMP平台相比,性能增益有很大的变化,从2倍到100倍不等。造成这种变化的原因是,线程以32为组运行时的效率最高。分支不影响性能,前提是32线程组在同一分支内。

像GPU这样的专用处理器,其采用的方案是同时提供图形和多内核处理。另外一种方案是使用许多传统内核,如Intel的Larrabee(图5)。Larrabee使用专门针对矢量处理优化过的x86兼容内核。
利用高效的编程技术发挥多内核架构优势



评论


相关推荐

技术专区

关闭