标题：AMD APP
APP技术概览
AMD APP技术发展历程AMD APP技术沿袭自ATI Stream技术。 在过去的几年里，GPU一直以每年或每半年更新一代的速度发展，其发展速度已远把CPU抛在后面。随着DirectX 10规范的出现，GPU开始采用统一渲染架构，其性能与功能也变得更为强大，它能做的事情已不单只是运行3D游戏，不少科学计算领域已开始利用GPU的优势进行计算。ATI最先提出通用计算的概念，与斯坦福大学合作，在Folding@Home研究项目中利用ATI Radeon X1900作运算加速。通过GPU来模拟蛋白质合成，进而找寻有关蛋白质的疾病。自ATI R520 GPU问世以来，基于它的可编程架构，ATI投入大量资源研究通用计算，也就是说用GPU处理非图形数据，处理一般在主流服务器和桌面处理器上运行的软件，性能比CPU高出10-30倍。 由于CPU与GPU在架构完全不同，软件要在GPU上运行，就必须通过特定的环境或接口。为此，NVIDIA方面发布了CUDA技术，并放出了相应的开发包，程序员通过这个接口进行软件开发，软件就能在GeForce 8系列及其以上的显卡上运行。作为NVIDIA显卡市场上最大的竞争对手，AMD方面当然不甘落后，在08年12月发布了ATI Stream技术（现称作AMD APP技术）回应NVIDIA的CUDA。这样，NVIDIA与AMD的竞争便从3D性能扩展到GPU并行计算上了。 
AMD的APP流处理技术可使Radeon HD系列显卡发挥出其强大的并行计算能力。现在AMD的高端显卡Radeon HD5970拥有3200个流处理器，可以简单理解成拥有3200个核心，通过APP技术便可发挥这3200个核心的计算能力。
相比于CUDA基于nVIDIA自身的封闭架构不同，AMD APP技术是基于开放标准的，因为几乎所有曾经存在的私有标准都消亡了。目前还活着的私有标准几乎只剩下Nvidia的CUDA了，而同样是Nvidia的标准，其早先的Cg已经看不见身影。相对的，开放性标准中，DirectX、OpenGL都是为我们所熟知的，而DVI、CDP、JEDEC也都还确实存在着。AMD企业级计算的产品专家Ed Buckingham表示，他们认为未来的标准将必然倾向于开放式，而其中最有前途的就是OpenCL和DirectX。因此AMD APP技术自从其诞生之日便是基于OpenCL和Directcompute这些开放标准。
最新的APP技术依然基于开放型标准的OpenCL开发而来，并且AMD目前还提供了APP SDK2.2技术开放。而且在未来一段时间里，包括微软在内的越来越多厂商也将纷纷加入AMD APP技术的阵营当中。Fusion理念无论是NIVIDA还是AMD，都意识到GPU强大的运算能力并不只在3D游戏领域，在其他需要类似大型运算的领域里，GPU同样可以胜任，因此便有了GPU用于并行计算的概念。但与NVIDIA力推GPU最为重要或Intel坚持CPU更重要不同，AMD认为CPU和GPU同样重要。AMD认为，GPU可用于大型运算，而CPU则继续负责传统的串行运算。只有两个配件相互配合，发挥自己的优势，才是最优化的平台，这也是AMD的“Fusion”理念。通过AMD APP这项技术，AMD可以让GPU和CPU联合起来进行通用计算，大大提高计算机的速度。
GPU相对CPU具有着两方面的特性，一是具备庞大的并行运算能力，任务越复杂，越能体现其运算优势；另一个特性是因为GPU的并行能力，所以其编程环境和开发方法与CPU相比要有所不同。
AMD意识到GPU的强大运算潜力并不一定只该应用在图形处理领域，在其他需要进行类似运算的领域里，GPU同样可以发挥作用。AMD认为，让CPU充当一个指令翻译或是将任务分解为很多小任务的工作，然后将这些任务交给GPU来运算，这会大大提高运算速度。于是有了Fusion的融合理念。
相比CUDA需要独立的编程环境来针对GPU编程，AMD的AMD APP SDK则是开放的。也就是说，通过后面第三方开发的接口程序，用户甚至可以直接让CPU充当翻译的工作，只需要像以往一样编程，也可以调用GPU来做大规模运算。
这个Fusion这个理念里，我们不会看到GPU取代CPU的想法，也不会看到CPU仍然把持主要计算，而让GPU充当协处理器。实际上，GPU在某种程度上与CPU站在了一起，CPU和GPU真正融合，互相发挥长处，弥补不足，发挥更大性能。驱动支持从2010年10月开始，AMD将在驱动发布中同时提供两个版本，其中的Catalyst APP版本驱动在提供传统驱动功能的同时，加入了对AMD APP技术的支持，并将完整的支持OpenCL。目前为止，支持AMD APP技术的显卡包括AMD Radeon HD4000、HD5000、HD6000系列显卡。
AMD APP技术的应用
视频处理AMD显卡驱动中自带的ATI Video Converter便是基于APP技术的视频转码软件，ATI Video Converter并非一个完全基于GPU转码的软件，而是CPU+GPU联合转码。它能够让AMD GPU与CPU共同加速，来一起完成以往仅有CPU参与的视频压缩，大大减少压缩时间。与支持NVIDIA CUDA技术的Badaboom视频压缩软件相比，ATI Video Converter拥有更好的转换效率，并支持更多的格式，最重要的是ATI Video Converter是免费的，而Badaboom是收费的。
在视频转换的速度上，ATI Video Converter确实比Badaboom更快。转换同一个视频，HD 4870的电脑采用AVIVO仅需48秒就转换完成，而GTX 280采用Badaboom则需要114秒。当然，速度不是唯一的标准，质量更为重要，ATI Video Converter的压缩质量目前还比不上Badaboom，这点仍需要改进。
不过需要注意的是：ATI Video Converter并非调用显卡中的流处理器来进行转码，而是调用UVD引擎进行视频转码。因此不同档次的ATI显卡在使用ATI Video Converter转码时，能力是一样的。而Badaboom是调用nVIDIA显卡的CUDA单元（流处理器）参与转码，CUDA单元多的显卡转码就会更快。
除了驱动自带的ATI Video Converter之外，CyberLink公司的威力导演系列软件，魅力四射系列软件、ArcSoft TotalMedia公司的Theater软件等均支持AMD APP技术。物理加速nVIDIA公司非常成功的将PhysX物理引擎，通过CUDA技术与Geforce显卡相结合，诞生了nVIDIA PhysX物理加速技术。为了与之竞争，AMD推出了基于AMD APP技术的“开放物理计划”与之抗衡。开放物理计划联合了Havok、Bullet和Pixelux DMM三种物理引擎，基于OpenCL标准和AMD APP技术，将AMD GPU中强大的并行计算能力运用到游戏中去加速物理计算。同时开放物理计划也贯彻了Fusion理念，由CPU+GPU联合进行物理计算，GPU负责柔性材料模拟、流体模拟、爆炸模拟等大计算量的物理模拟计算。
开放物理计划尚没有游戏支持，但是已经不断有新的DEMO在各个场合进行展出。科学研究Folding@HomeATI与斯坦福大学合作，在Folding@Home研究项目中利用ATI Radeon X1900作运算加速。这是GPU第一次用于科学研究计算。在AMD收购ATI之后，双方继续进行合作。迄今为止，全球有不计其数的AMD GPU正在基于AMD APP技术折叠蛋白质，以帮助科学家攻克人类疾病。
同时，AMD APP技术在石油勘探，地震研究等方面也有很多应用。中国超级计算机“天河一号”便使用了2560块4870x2显卡做并行计算处理器，这同样是基于AMD APP实现的。
Brown Deer技术公司是一个通过地动波来勘测石油天然气的公司。在用到AMD APP技术以后，该公司发现其地动波的实时运算比用CPU快了120多倍。而同样，在中国高性能计算年会上获得第二名的中国科学院的研究生用AMD APP技术在HD 4870显卡上计算中型到大型规模的矩阵，在迭代次数达到3000以上的时候比CPU提升了至少27倍的效率。其他方面的应用Excel2010、PowerPoint2010、Internet Explorer 9、Adobe Flash 10.1等软件均加入了对AMD APP技术的支持。