AMD Accelerated Parallel Processing

AMD Accelerated Parallel Processing (AMD APP : エーエムディー・エーピーピー) とは、AMDによる、同社製CPU/GPU/APU向けの並列コンピューティング基盤テクノロジーである。AMD APP環境向けのソフトウェア開発キットとして、AMD APP SDKが公開されている。

同テクノロジーおよび開発キットの初期の名称はATI StreamおよびATI Stream SDKであり、ATIがAMDに買収された後、ATIブランドが存続している間は使われ続けていたが、その後ATIブランドの消滅・統合とともにAMD Stream/AMD APPおよびAMD APP SDKに名称変更されている。

概要 
AMD Stream (ATI Stream) SDKはスタンフォード大学で開発されたBrook言語をベースとして構築されたBrook+と、ランタイムを含む抽象化レイヤーとしてハードウェアの制御を行なうATI Compute Abstraction Layer (CAL) によって構成されたGPGPU対応ソフトウェア開発用プラットフォームである。AMD Stream (ATI Stream) はGPGPUの実行基盤テクノロジーを指し、競合となるNVIDIAのCUDAに近い意味合いを持つ。ATI Streamのリリース当初はAMD FireStreamシリーズ専用の開発・実行環境だったが、のちにAMD RadeonでもAMD Catalyst 8.12以降のドライバーを導入することでGPGPUソフトウェアを開発・実行できるようになった。

なお2015年現在のAMD APPは、AMD社が注力・推進しているヘテロジニアス環境（HSA）の標準API規格であるOpenCLを中核とする開発・実行環境にシフトしている。AMD APPプラットフォームにおけるOpenCLは、同社製のAMD RadeonやAMD FireProといったGPUのほか、AMD FXシリーズのようなCPU、およびAMD AシリーズのようなAPUを総括的にサポートする。

AMD APP SDKは、バージョン3.0時点でOpenCL 2.0、および 1.2に対応している 。

なお、AMD OpenCL 2.0ドライバーはGCN第1世代以降のAMDグラフィックス製品と互換性がある。

ライブラリ 
AMD APPに関連して、AMDはGPGPU対応のライブラリをいくつか開発・公開している。

clMath 
OpenCLベースのBLAS/FFTライブラリ（clBLAS/clFFT）。かつてAccelerated Parallel Processing Math Libraries (APPML) としてバイナリのみが公開されていたが、clMathはGitHubで公開されている。Microsoft Windows、Linux、Mac OS Xに対応している。

Bolt 
STL互換のC++並列アルゴリズムライブラリ。GitHubで公開されている。二分探索、ソート、リダクション、スキャンなどのアルゴリズムが実装されている。OpenCL版とC++ AMP版が存在するが、バージョン1.3時点でWindows (Visual C++) とLinux (GCC) のみに対応しており、またAMDハードウェアのみをサポートしている。

脚注

関連項目 
 AMD
 ATI
 AMD Catalyst
 OpenCL
 GPGPU
 AMD Radeon
 AMD FirePro
 AMD FireStream
 AMD APU (AMD Accelerated Processing Unit, AMD Fusion APU, AMD Fusion)
 HSA (Heterogeneous System Architecture)
 GCN (Graphics Core Next)
 ストリームプロセッシング
 ユニファイドメモリアーキテクチャ
 hUMA (heterogeneous Uniform Memory Access)
 :en:Uniform memory access (英語版)
 :en:Shared memory architecture (英語版)
 :en:Close to Metal (英語版)
 :en:BrookGPU (英語版)
 :en:AMD Accelerated Processing Unit (英語版)
 CUDA

GPGPU
並列コンピューティング
長大な項目名