OpenCL

「OpenCL」の編集履歴(バックアップ)一覧はこちら

OpenCL - (2009/10/25 (日) 15:29:37) の最新版との変更点

追加された行は緑色になります。

削除された行は赤色になります。

*■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>>http://images.apple.com/jp/macosx/technology/docs/OpenCL_TB_brief_20090608.pdf]]である。  Snow LeopardはOpenCLを実装した初めてのOSであり、以下のGPUの組み合わせで使用することができる。 |>|BGCOLOR(mediumseagreen):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| |>|BGCOLOR(lightsalmon):ATI| |Radeon 48xx| Radeon 4850、Radeon 4870| **■追記 (2009/10/25)  Late 2009 iMacでATI Radeon 4670がサポートされた。Snow Leopardの[[技術情報>>http://www.apple.com/jp/macosx/specs.html]]では更新されていないが、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などを組み合わせた構成を取ることも想定できるということである。 #size(small){(*1) パフォマーンスの観点ではRadeon 4550はGeForce 9400GTよりも性能は上で、消費電力は少ない。} **2. テストプログラムの実行  OpenCLを使用したアプリケーションはSnow Leopardリリース時点では無いが、Appleの開発者向けサイトでサンプルプログラムが公開されている。ただし、かなり不親切で公開されているのはソースのみであり、OpenCLの実力を体験するには自分でビルドする必要がある(説明ドキュメントも満足に整備されておらず、ソースを読まなければいけない状態とかなり雑)。 ***■テストプログラム実行環境 |BGCOLOR(skyblue):MainMachine|BGCOLOR(skyblue):>|BGCOLOR(skyblue):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カーネル>>http://www39.atwiki.jp/macmini/pages/30.html]])| HFS+ (Journal Enabled)| ***■テストプログラムと実行結果 [[OpenCL NBody Simulation Example(ソース)>>https://developer.apple.com/mac/library/samplecode/OpenCL_NBody_Simulation_Example/]]/[[Galaxies(実行バイナリ)>>http://www.mediafire.com/file/mu1no52ntoy/Galaxies.zip]] #aa(){ 主な操作キー 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演算の結果 #image(http://www39.atwiki.jp/macmini/pub/galaxies1.jpg,width=600,height=338,title=CPUの結果,http://www39.atwiki.jp/macmini/pub/galaxies1.jpg,blank,left) ・GPU演算の結果 #image(http://www39.atwiki.jp/macmini/pub/galaxies2.jpg,width=600,height=338,title=GPU演算の結果,http://www39.atwiki.jp/macmini/pub/galaxies2.jpg,blank,left) ・CPU+GPU演算の結果 #image(http://www39.atwiki.jp/macmini/pub/galaxies3.jpg,width=600,height=338,title=CPU+GPU演算の結果,http://www39.atwiki.jp/macmini/pub/galaxies3.jpg,blank,left) [[OpenCL Procedural Grass and Terrain Example(ソース)>>https://developer.apple.com/mac/library/samplecode/OpenCL_Procedural_Grass_and_Terrain_Example/]]/[[Glass(実行バイナリ)>>http://www.mediafire.com/file/zc5dmy2mjnu/Grass.zip]] #aa(){ 主な操作キー . : NoisesBias up / : NoisesBias down - : FieldInstance(Glass) up = : FieldInstance(Glass) down ; : FlowSpped(Wind) up ' : FlowSpped(Wind) down q : quit } ・FieldInstance Max #image(http://www39.atwiki.jp/macmini/pub/glass.jpg,width=512,height=482,title=FieldInstance Max,http://www39.atwiki.jp/macmini/pub/glass.jpg,blank,left) ---- [[戻る>トップページ]]
*■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>>http://images.apple.com/jp/macosx/technology/docs/OpenCL_TB_brief_20090608.pdf]]である。  Snow LeopardはOpenCLを実装した初めてのOSであり、以下のGPUの組み合わせで使用することができる。 |>|BGCOLOR(mediumseagreen):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| |>|BGCOLOR(lightsalmon):ATI| |Radeon 48x0| Radeon 4850、Radeon 4870| **■追記 (2009/10/25)  Late 2009 iMacでATI Radeon 4670がサポートされた。Snow Leopardの[[技術情報>>http://www.apple.com/jp/macosx/specs.html]]では更新されていないが、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などを組み合わせた構成を取ることも想定できる。 &small(){(*1) デスクトップ版で消費電力は20Wであり、パフォマーンスにおいてもGeForce 9400GTより上である。} **2. テストプログラムの実行  OpenCLを使用したアプリケーションはSnow Leopardリリース時点では無いが、Appleの開発者向けサイトでサンプルプログラムが公開されている。ただし、かなり不親切で公開されているのはソースのみであり、OpenCLの実力を体験するには自分でビルドする必要がある(説明ドキュメントも満足に整備されておらず、ソースを読まなければいけない状態とかなり雑)。 ***■テストプログラム実行環境 |BGCOLOR(skyblue):MainMachine|BGCOLOR(skyblue):>|BGCOLOR(skyblue):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カーネル>>http://www39.atwiki.jp/macmini/pages/30.html]])| HFS+ (Journal Enabled)| ***■テストプログラムと実行結果 1. [[OpenCL NBody Simulation Example(ソース)>>https://developer.apple.com/mac/library/samplecode/OpenCL_NBody_Simulation_Example/]]/[[Galaxies(実行バイナリ)>>http://www.mediafire.com/file/mu1no52ntoy/Galaxies.zip]] #aa(){ 主な操作キー 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) #image(http://www39.atwiki.jp/macmini/pub/galaxies1.jpg,width=600,height=338,title=CPUの結果,http://www39.atwiki.jp/macmini/pub/galaxies1.jpg,blank,left) ・GPU演算の結果 (GeForce 9400M Core 450MHz/Shader 1100MHz/SP16) #image(http://www39.atwiki.jp/macmini/pub/galaxies2.jpg,width=600,height=338,title=GPU演算の結果,http://www39.atwiki.jp/macmini/pub/galaxies2.jpg,blank,left) ・CPU+GPU演算の結果 (Core 2 Duo 2.0GHz+GeForce 9400M) #image(http://www39.atwiki.jp/macmini/pub/galaxies3.jpg,width=600,height=338,title=CPU+GPU演算の結果,http://www39.atwiki.jp/macmini/pub/galaxies3.jpg,blank,left)  (追記:2010/1/20) ・9800GT GEのパフォーマンス (GeForce 9800 GT Core 550MHz/Shader 1375MHz/SP112) #image(http://www39.atwiki.jp/macmini/pub/9800_OpenCL.jpg,width=600,height=338,title=GPU演算の結果,http://www39.atwiki.jp/macmini/pub/9800_OpenCL.jpg,blank,left) 2. [[OpenCL Procedural Grass and Terrain Example(ソース)>>https://developer.apple.com/mac/library/samplecode/OpenCL_Procedural_Grass_and_Terrain_Example/]]/[[Glass(実行バイナリ)>>http://www.mediafire.com/file/zc5dmy2mjnu/Grass.zip]] #aa(){ 主な操作キー . : NoisesBias up / : NoisesBias down - : FieldInstance(Glass) up = : FieldInstance(Glass) down ; : FlowSpped(Wind) up ' : FlowSpped(Wind) down q : quit } ・FieldInstance Max #image(http://www39.atwiki.jp/macmini/pub/glass.jpg,width=512,height=482,title=FieldInstance Max,http://www39.atwiki.jp/macmini/pub/glass.jpg,blank,left) ・参考 OpenGLツール  [[OepnGL Extension Viewer>>http://www.realtech-vr.com/glview/]] ---- [[戻る>トップページ]]

表示オプション

横に並べて表示:
変化行の前後のみ表示: