AMD Accelerated Parallel Processing

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

同テクノロジーおよび開発キットの初期の名称はATI StreamおよびATI Stream SDKでありASCII.jp：OpenCLでCUDAを追撃!?　AMD「ATI Stream」が狙うものは、ATIがAMDに買収された後、ATIブランドが存続している間は使われ続けていたが、その後ATIブランドの消滅・統合【PC Watch】 AMD、今年中にATIブランドをAMDブランドに統合とともにAMD Stream/AMD APPおよびAMD APP SDKに名称変更されている。

 概要 
AMD Stream (ATI Stream) SDKはスタンフォード大学で開発されたBrook言語をベースとして構築されたBrook+と、ランタイムを含む抽象化レイヤーとしてハードウェアの制御を行なうATI Compute Abstraction Layer (CAL) AMD CAL Programming Guide v2.0によって構成されたGPGPU対応ソフトウェア開発用プラットフォームである。AMD Stream (ATI Stream) はGPGPUの実行基盤テクノロジーを指し、競合となるNVIDIAのCUDAに近い意味合いを持つAMDのGPGPU戦略は新章へ - ATI Streamの展望、DirectX Compute Shaderの衝撃 (2) ATI Streamとは? | マイナビニュース。ATI Streamのリリース当初はAMD FireStreamシリーズ専用の開発・実行環境だったが、のちにAMD RadeonでもAMD Catalyst 8.12以降のドライバーを導入することでGPGPUソフトウェアを開発・実行できるようになったAMDのGPGPU戦略は新章へ - ATI Streamの展望、DirectX Compute Shaderの衝撃 (1) Radeon HD 4000シリーズでネイティブGPGPU | マイナビニュース。

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

AMD APP SDKは、バージョン3.0時点でOpenCL 2.0APP SDK - A Complete Development Platform - AMD、および 1.2に対応しているAMD's APP SDK 3.0 Beta with OpenCL 2.0 support AMD APP SDK v3.0 Beta Developer Release Notes。

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

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

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

 Bolt 
STL互換のC++並列アルゴリズムライブラリBolt C++ Template Library - AMD。GitHubで公開されているHSA-Libraries/Bolt · 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

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