OpenCL

■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 48x0 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)やそれ以下のMobility Radeon 4570/4530などを組み合わせた構成を取ることも想定できる。

(*1) デスクトップ版で消費電力は20Wであり、パフォマーンスにおいても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演算の結果 (Core 2 Duo 2.0GHz 2Core/2Thread)
  • GPU演算の結果 (GeForce 9400M Core 450MHz/Shader 1100MHz/SP16)
  • CPU+GPU演算の結果 (Core 2 Duo 2.0GHz+GeForce 9400M)

 (追記:2010/1/20)
  • 9800GT GEのパフォーマンス (GeForce 9800 GT Core 550MHz/Shader 1375MHz/SP112)


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

  • 参考 OpenGLツール


最終更新:2010年01月20日 21:45