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、およびSPIR 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