OpenCL

「OpenCL」の編集履歴(バックアップ)一覧に戻る

OpenCL - (2009/10/25 (日) 15:26:01) の編集履歴(バックアップ)


■OpenCLの実力

1. OpenCLとは

 OpenCLとは、今まで描画に使用されていたGPUの演算能力を、3D描画などの目的以外でも汎用的に使用する技術のことである。

 FPS(First Person Shootin)などの3Dゲームはともかく、通常の使用においては、GPU(Graphics Processing Unit)は常に処理をしている訳でなく、アイドルの状態である。また、CPUとは異なり、複雑な条件分岐が発生しないストリームデータの処理においてはCPUよりも遥かに高速に処理することができる。そこで、CPUの用に汎用的にGPUを活用しようとGPGPU(General Purpose GPU)というアプローチが生まれ、特定のGPUに依存しないオープンな規格として纏めようとAppleが中心となって提唱したのがOpenCLである。

 Snow LeopardはOpenCLを実装した初めてのOSであり、以下のGPUの組み合わせで使用することができる。
NVIDIA
GeForce 8xxx GeForce 8600M GT、GeForce 8800 GT、GeForce 8800 GS
GeForce 9xxx GeForce 9400M、GeForce 9600M GT
GeForce GT1x GeForce GT 120、GeForce GT 130
GeForce GT2X GeForce GTX 285
Quadro FX Quadro FX 4800、Quadro FX5600
ATI
Radeon 48xx Radeon 4850、Radeon 4870

■追記 (2009/10/25)

 Late 2009 iMacでATI Radeon 4670がサポートされた。Snow Leopardの技術情報では更新されていないが、Open CLをサポートしていると思われる。

 スペックをみるとCore 680MHz/Memory 790MHz(GDR3)であり、デスクトップ版のCore 750MHz/Memory 1000MHz(GDR3)よりもクロックが下げられている。4650がCore 600Mhz/Memory 500MHz(DDR2)である為、実パフォーマンスは4650と4670の中間あたりと思われる。

 現状、Radeon 4670のサポートは2009 Late iMacのプレインストール版10.6.1(カーネル10.1.2)のみであるが、10.6.2では、Radeon 4670が標準でサポートされる。これにより、kextにデバイスIDを追記することにより、4350/4650も使用することが可能となり、現状の48x0のみから、46x0/45x0/43x0も使用できるようになる。

 Mac miniとしてこの情報から考察すべき点は、内蔵GPUのパフォーマンスが振るわないArandaleではなく、独立GPUを必要とするMobile版Core i5/i7のClarksfiledと、消費電力の少ないRadeon 4550(*1)(デスクトップ版20W)やそれ以下のMobility Radeon 4570/4530などと組み合わせた構成を取ることも想定できるということである。

(*1) パフォマーンスの観点ではRadeon 4550はGeForce 9400GTよりも性能は上で、消費電力は少ない。

2. テストプログラムの実行

 OpenCLを使用したアプリケーションはSnow Leopardリリース時点では無いが、Appleの開発者向けサイトでサンプルプログラムが公開されている。ただし、かなり不親切で公開されているのはソースのみであり、OpenCLの実力を体験するには自分でビルドする必要がある(説明ドキュメントも満足に整備されておらず、ソースを読まなければいけない状態とかなり雑)。

■テストプログラム実行環境

MainMachine Apple Mac mini (MB463J/A)
Memory 8GB(4GBx2) SanMax SMD-N4G68HP-10F DDR3-1066 S.O.DIMM 4GB CL7 hynix/JEDEC
Storage SSD 256GB SAMSUNG PB-22J (MMDOE56G5MXP-0VB)
ODD Blu-ray Read Super Drive Sony NEC Optiarc BC-5600S Slim Combo Drive
OS OSX Snow Leopard 10.6.1(64bitカーネル) HFS+ (Journal Enabled)

■テストプログラムと実行結果


主な操作キー
1-6: Select an N-Body System Configuration
g: Select the next Graphics Device
s: Select the next Simulation Device
r: Enable/Disable Auto Rotation
d: Show/Hide Dock UI
h: Show/Hide HUD UI
u: Show/Hide Simulation Updates Meter
f: Show/Hide FPS Meter
space: Pause/Unpause Simulation
0: Quit
  • CPU演算の結果
  • GPU演算の結果
  • CPU+GPU演算の結果


主な操作キー
. : NoisesBias up
/ : NoisesBias down
- : FieldInstance(Glass) up
= : FieldInstance(Glass) down
; : FlowSpped(Wind) up
' : FlowSpped(Wind) down
q : quit
  • FieldInstance Max