什么是异构开发或者编程呢?编程
虽然本身从事CPU+GPU相关工做,可是对异构这个概念以前还不太明确,通过结合开发经验以及查阅资料,对此概念有了必定的理解。架构
学过计算机组成原理的人都会很是熟悉CPU原理及组成,CPU内部结构是由控制单元、运算单元、存储单元等主要部分组成,其经过地址总线与地址总线实现数据的操做,此处再也不多说了;但当处理大量图像图形渲染时,CPU效率不能知足要求(好比大型3D游戏),因而乎针对复杂图形图像处理的GPU就出现了;在这里就不解释GPU的工做原理了,你能够google 一下!编程语言
目前计算单元主要分为:通用计算单元(CPU),专用计算单元(GPU)性能
下面说说什么是异构呢?
由一个(或者多个)通用计算单元(CPU)加上一个(或者多个)专用计算单元构建(GPU等)的系统就是异构计算系统,由二者协同起来共同执行通用计算任务就是异构计算,目前在开发中最多见的组合就是CPU+GPU。对于高要求场合这是明智之举;
异构计算的目的通常是加速数据的处理能力,过去依靠工艺和频率来提升CPU的计算性能,可是如今遇到了瓶颈,加速的任务已经由过去依赖工艺和功耗转向依靠架构的改变。在过去GPU只能执行图形任务,不能执行通用计算,因此还称不上异构计算,如今的GPU已经具有了执行通用计算的能力,和CPU协同工做就组成了一个异构计算系统,AMD的APU就是其中的一个实现。
有了硬件的实现,一样须要软件的支持,目前比较流行的编程语言是C++AMP/OPENCL/CUDAgoogle
若是有理解不当之处,欢迎指正!spa