OpenCL

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

OpenCL - (2009/10/25 (日) 15:03:14) の1つ前との変更点

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

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

*■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でRadeon 4670がサポートされた。  スペックをみると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.2では、Radeon 4670が標準でサポートされる。これにより、kextにデバイスIDを追記することにより、4350/4650も使用することが可能となり、現状の48x0のみから、46x0/45x0/43x0も使用できるようになる。 **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 48xx| Radeon 4850、Radeon 4870| **■追記 (2009/10/25)  Late 2009 iMacでATI Radeon 4670がサポートされた。  スペックをみると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.2では、Radeon 4670が標準でサポートされる。これにより、kextにデバイスIDを追記することにより、4350/4650も使用することが可能となり、現状の48x0のみから、46x0/45x0/43x0も使用できるようになる。 **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) ---- [[戻る>トップページ]]

表示オプション

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