X



OpenCLプログラミング#1
■ このスレッドは過去ログ倉庫に格納されています
0001a36 ◆K0BqlCB3.k
垢版 |
2008/12/10(水) 15:38:25
さてついにOpenCLの仕様が公開されました。

http://www.khronos.org/opencl/

公式ページにはAPIのヘッダファイルが公開されており、
まだ実際に動かす事はできないもののプログラミングすることは可能となっています。
ということで、公開に先んじてプログラミングを始めてしまいましょう。
0002デフォルトの名無しさん
垢版 |
2008/12/10(水) 15:57:47
ひとまずwgetじゃなくて2get
Mac界隈ではCore Imageみたいにかなり使われそうだけど他のプラットフォームではどうなるかな?
0003デフォルトの名無しさん
垢版 |
2008/12/10(水) 19:55:47
仕様策定にあたり、国内メーカはほとんどなし?

NやFなどのスパコンメーカは入っていてもよさそうなのに…
0005a36 ◆K0BqlCB3.k
垢版 |
2008/12/10(水) 20:10:45
>>2
まだGPGPUでどんな事ができるのか模索している段階ですので、
キラーアプリが早い段階で出てこないとOpenCLを標準化するのは
難しくなっていくと思います。
Microsoftや他の団体が別の標準を作ってしまってからでは
OpenGLとDirectXのような亀裂を生んでしまうでしょう。
0006a36 ◆K0BqlCB3.k
垢版 |
2008/12/10(水) 20:12:58
とりあえず、仕様書の翻訳を始めるために許可とってきます。
0008デフォルトの名無しさん
垢版 |
2008/12/10(水) 20:49:11
>汎用API「Open CL」への対応も「好きな奴がいて、
>仕事の合間にやっている」(同氏)とのこと。これが実現すると、
>「同じプログラムがCPUでもGPUでもSpursでも動く」
>という環境になるが、進行状況については「上司からお金が
>もらえなくても、コツコツと(笑」なのだとか。

期待できるのかなw
0012デフォルトの名無しさん
垢版 |
2008/12/10(水) 22:29:24
簡単に言うと、NVIDIAが独自にGPU用に作ったのがCUDAで、
GPU以外のデバイスも視野に入れられて作られようとしているのがOpenCL。
0015デフォルトの名無しさん
垢版 |
2008/12/10(水) 22:43:28
想像だけど、ClearCaseやTerareconのようなデバイスメーカも対応せざるを得なくなるかもね。
CPUでも実装可能だし、当然ララビーも対応してくるんじゃない?
0017a36 ◆K0BqlCB3.k
垢版 |
2008/12/10(水) 23:17:58
■Khronos Group発表ニュースリリースの抄訳
http://www.khronos.org/news/articles/20081209-OpenCL-1-0-jp.pdf

■OpenCL 1.0 仕様書(英語)
http://www.khronos.org/registry/cl/specs/opencl-1.0.29.pdf

■cl.h - OpenCL 1.0 ヘッダファイル
http://www.khronos.org/registry/cl/api/1.0/cl.h

■cl_gl.h - OpenCL 1.0 OpenGLインテグレーションヘッダファイル
http://www.khronos.org/registry/cl/api/1.0/cl_gl.h

■cl_platform.h - OpenCL 1.0 環境依存マクロ
http://www.khronos.org/registry/cl/api/1.0/cl_platform.h

※まだ OpenCL 1.0 ツールキットはリリースされていません
0018デフォルトの名無しさん
垢版 |
2008/12/10(水) 23:30:05
さらっとサンプルソース見たけど
clCreateProgramWithSourceに渡すのはソースのテキストそのままだけど、
clCreateProgramWithBinaryに渡すバイナリって何だろ、
そのバイナリってデバイス間で互換性あんの?
0022デフォルトの名無しさん
垢版 |
2008/12/11(木) 03:46:32
>>14
重箱隅ですがspursはCell規格じゃないですよ。PPEねーし。

PS3以外のCellにOpenうんちゃらみたいな標準規格って需要あんのかな?
IBMのCellスパコンとかは、素人目には専門家がカリカリチューニングしてそうな印象あるし

OpenGL以外におけるKhronosをどこまで信用して良いのかもいまいち。
COLLADAとか半端仕事な印象拭えないんだよな……。使ってるとこは使ってんだろか?
0023デフォルトの名無しさん
垢版 |
2008/12/11(木) 21:38:21
>>22
PS3 みたいなガチガチに決まってる奴にこそ不要だろ。

例えばこういうの
http://www.hirax.net/dekirukana8/bijin2/
こそ、OpenCL的なものが実力を発揮しやすい。
で、この機能がDVカムとかに普及したとしよう。
OpenCL で実装しておけば、次のバージョンの製品の該当部分を、OpenCL 対応の別のチップに変更することも出来る。Cell から nVidia へというように。

これは一例だが、要するに標準規格への需要はある。
だけど、汎用性は効率とのトレードオフでもあるし、ネガティブな要素を数え上げればきりがない。

現段階で普及するかどうかを予測するのは無意味に近いが、今なら先行者利益に預かれるかも知れない。
0024デフォルトの名無しさん
垢版 |
2008/12/12(金) 21:58:03
組み込み関連の所が多いって所にやっぱメディア系の家電とかへの需要が期待されてるのかね
車載とか携帯電話もありうるのかな
0025デフォルトの名無しさん
垢版 |
2008/12/13(土) 06:17:58
>>24
ありうるけど、まだ高価すぎる。
PIC や DSP なみにコモディティ化したら、みんなが使うだろう。
組み込みにとっては、CUDA か CL かというのは、次かその次の世代の話だろう。

ま、現場はアレもコレも知っとかないとねw
0028デフォルトの名無しさん
垢版 |
2008/12/15(月) 02:44:31
DsPICってのも有るし、しかも最近clockがどんどん上がってる。
このPICに載ってるDSPの数が増えたら8bitのGPGPUって感じじゃね?
0032デフォルトの名無しさん
垢版 |
2008/12/22(月) 21:22:09
spec読んだけどcudaに毛が生えたようなもんだね
メモリ階層もモデル化したと言うけど、ほぼ現行のGPUが前提。
興味なくなった。
0037デフォルトの名無しさん
垢版 |
2009/02/15(日) 19:15:04
>>32
>OpenCLについて,「Direct3DにおけるDirectX Compute Shaderのようなもの?」
>というイメージを抱くかもしれないが,コンセプトや実現様式が微妙に違う。
>
>最大の違いは,OpenCLが,GPUだけを対象としているわけではないということだ。
>x86プロセッサやCellプロセッサといったCPU,あるいは DSP(Digital Signal Processor)
>のようなメディアプロセッサなどのプログラミングに対応するコンセプトを持っており,
>GPUに特化したDirectX Compute Shaderとは似て非なるものだといえる。
0038デフォルトの名無しさん
垢版 |
2009/02/15(日) 20:17:07
>>37
大丈夫、DSPがOpenCLに対応する可能性は限りなく低いから。
まして、x86プロセッサでOpenCL対応するくらいならCt使う方が遥かにまし。
0040デフォルトの名無しさん
垢版 |
2009/02/15(日) 22:27:21
なんで?
0043デフォルトの名無しさん
垢版 |
2009/02/15(日) 22:42:47
>>38
なんか理解できてないようだけど、
こいつの価値は並列処理にあると思う。
要するに今までのGPGPUは、GPUによる高速化
というのがメインだったけど、OpenCLの場合は、
CPUとGPUで並列処理が可能になる。

元々はAppleとNVIDIAが協力して、CUDAを基礎に
した(と思われる)ものを、さらに標準化の過程で
より汎用性を重視して、GPUに依存しないよう設計
にしたものがOpenCL。
0044デフォルトの名無しさん
垢版 |
2009/02/15(日) 22:48:46
>>42
大丈夫、Mac専用じゃないよ。
Appleが規格の孤立化を避けるのが目的だと思うけど、
最初からオープン標準化にこだわって作られた規格。

規格の策定作業のメンバーにはIntelやAMD、NVIDIA、
ソニーなど、MSを除く主要企業は全て参加しているし、
OpenGL(ES)との連携やスマートフォンへの対応もあるし、
これから先、携帯端末全盛の時代の最有力候補でもある。
0046デフォルトの名無しさん
垢版 |
2009/02/15(日) 23:06:31
>>45
あうごめんwでも答えちゃうよ?

Mac OS X Snow Leopardに実装されるのがOpenCLで、
Windows7/vistaに実装されるのがDirectX Compute Shader。
どちらのGPGPU技術もまあ競合するものだわさ。

スマートフォンへの実装は別にして、DirectX系技術はWindows限定だし、
OpenCLにはオープンな技術というメリットがある。ただし、Windowsが市場を
ほぼ独占してるPC業界にとって、有力なのはやはりDirectX Compute Shader
の方になる。だから当面、OpenCLの主要プラットフォームがとりあえず
Macなのは致し方ない現実、という考え方じゃないのかな?

もちろんマルチプラットフォーム化を重視して、Windows環境下でも
OpenCLを採用する企業も当然存在するとは思うけど。
0052デフォルトの名無しさん
垢版 |
2009/02/17(火) 12:35:14
妨害つーか、OpenCLはOpenGLとは連携するが
Direct3Dとは連携しないので、MSが自前で作るしかない。
0055デフォルトの名無しさん
垢版 |
2009/02/26(木) 00:45:30
言語はC99ベースだからいいかと思ったけど、再帰が使えないのは痛いな。
Cで書いてコンパイルしたバイナリと、OpenCLで書いてコンパイルしたバイナリを
リンクできればいいな。

0058デフォルトの名無しさん
垢版 |
2009/04/02(木) 08:17:35
並列化しやすい問題で結構使うぞ、再帰探索は
こっち方面はIntelに期待するしかないかもね
0059デフォルトの名無しさん
垢版 |
2009/04/02(木) 23:41:47
時間とメモリの使用量が不定になるからねぇ。
OpenCLの主戦場を考えるとどうなんでしょうか。
0060デフォルトの名無しさん
垢版 |
2009/04/03(金) 01:52:09
再帰するようなアルゴリズムの場合、命令ポインタの動きに一意性がないし
決してデータレベル並列ではないんだよな。
SIMDでは命令ポインタが要素ごとに独立、というわけにはいかない。
プレディケートをやるのは逆に言うと自由に分岐ができないことの現れだし。
0063デフォルトの名無しさん
垢版 |
2009/06/14(日) 18:31:47
>>55
残念だが OpenCL C は Java や .NET のような中間コードで
OS 上のドライバがリアルタイム翻訳するからリンクは無理。

だが OpenCL を利用する本体は何でもいいから
C や C++、Objective-C なんかで再帰検索すればいい。
0064デフォルトの名無しさん
垢版 |
2009/06/20(土) 18:47:32
企画書ってどこで読めるの?
0068デフォルトの名無しさん
垢版 |
2009/06/30(火) 20:18:36
Intel か Apple が CPU 用 OpenCL ドライバを作成すれば問題ない。

Windows や Linux の他社 OS や
AMD などの他社 CPU などで動作するドライバは
やっぱり公式待ちかな。

個人で Java VM や GPU Direct3D/OpenGL ドライバを
作ってしまえる人が興味を持ってくれたら話は別だけど。
0069デフォルトの名無しさん
垢版 |
2009/06/30(火) 20:23:54
スノレパにはCPU用ドライバが付いてくるでしょ

GPUよりも数十倍から100倍以上は処理が遅いCPUで
Open CLを動かす価値が有るかはわからないけれど
0073デフォルトの名無しさん
垢版 |
2009/07/01(水) 00:44:41
CPU と GPU を並列に走らせて 10 が 11 になるよりも、
その1をUIやGPUが苦手な処理を与えたほうがいいんじゃね?

マルチタスク(プロセス)的にも CPU は空けておきたいかも
0074デフォルトの名無しさん
垢版 |
2009/07/01(水) 02:58:17
CPUよりGPUのが早いってことになってるけど
それは実は大嘘でちゃんとマルチコアで作りこんだらスピードは大差ない
GPUメーカー製のドライバはCPUでも動くような振りだけは実装するだろうけど
絶対にまともな実装はしない、ばれるから
だからちゃんとしたCPUメーカーか第三者が作ったものが必要
0075デフォルトの名無しさん
垢版 |
2009/07/01(水) 03:05:43
>>71
それは理論的な演算速度だけだとそうだけど
メインメモリからデータを取り出して結果を戻すのに要する時間で計算すると
遥かにCPUの方が早い
0076デフォルトの名無しさん
垢版 |
2009/07/01(水) 06:44:02
結局ワークロード次第なのだがGPUが明らかに速い分野なんて非常に限定的で馬鹿にされまくっているのが実情
GPGPUは過去のEPICと被るな
0077デフォルトの名無しさん
垢版 |
2009/07/01(水) 11:17:39
>>74
なんでGPUメーカーがCPU用ドライバを作るんだよ。
DirectXですらCPU用ドライバはMSが作ってるんだぜ?

>>75
特定分野に関してならメモリアクセスは速いでしょ。
じゃないと3Dレンダリングが使い物にならないものになる。

結局プログラマがどれだけ局所化を行えるかだろうね
0078デフォルトの名無しさん
垢版 |
2009/07/01(水) 14:42:50
>>77
3Dは転送する情報量は頂点座標だけなんだからCPUより早いのは当たり前でしょ
CPUのネックはメモリ転送速度だって言ってるでしょ
大量のデータを計算するような用途ではどんな工夫をしようがCPUには勝てない
0079デフォルトの名無しさん
垢版 |
2009/07/01(水) 14:45:50
しかも分散処理する部分は複雑に作りこんでないから
計算してる間は描画が止まるからな
計算してる間は文句なしに画面描画が止まる
CPUだと計算負荷に応じて外も動くけど
0080デフォルトの名無しさん
垢版 |
2009/07/01(水) 14:51:59
>>78
だからそのCPUでは勝てない分野でGPUを有効活用しようっていうのがGPGPUでしょ

映像のエンコードしかり、ゲノムの解析しかり超大量のデータ処理を肩代わりしたり、
またはAIなどの人工知能やMSのProject Natalみたいなものを実現するため、とか
0081デフォルトの名無しさん
垢版 |
2009/07/01(水) 14:57:20
>>79
だからGPUの仮想化とかマルチタスク処理とかがあるんでしょう

3Dゲームとかでもない限り 1/60 秒毎に画面描画を
挟むのはたいした負荷でもないレベルだし。

GPUでは小回りが利かない部分を管理するのがCPUの得意分野
0084デフォルトの名無しさん
垢版 |
2009/07/01(水) 18:03:26
本来ならGPUの機能はCPU内部にあるべきだが、
IBMやINTELはサーバとか大規模計算方面ばかり気にして3Dとかグラフィックとかを軽視していたから、
見るに見かねた人がGPUなんてものを作ったんだよね。
0085デフォルトの名無しさん
垢版 |
2009/07/01(水) 18:04:59
GPUって、本質的に見たらやってることはCPUと変わらないのに、
CPUとバスを経由して通信している分無駄があるんだよね。
だから将来的にGPUはCPUに飲み込まれるのが健全だと思うね。
0089デフォルトの名無しさん
垢版 |
2009/07/01(水) 18:47:34
>>88
いや、まぁ実際にそういうことが多いわけだけど、俺が言いたいのそうじゃなくて、
GPUをCPUに統合するのが健全だと言っているだけであって・・
夢見がちな俺の願望でしかないわけだが。
0091デフォルトの名無しさん
垢版 |
2009/07/01(水) 22:00:36
ハードだけ買ってもOpenCLはじめソフトがgdgd
このままだとIntel最強ってゆー何時もの結論で終了する
0092デフォルトの名無しさん
垢版 |
2009/07/02(木) 01:07:12
マカーとして言わせてもらえばQuickTimeとAdobe CSくらいが対応してくれれば対応アプリとしては十分な気がするんだよな
OpenCLが一番活用できそうなのって結局画像動画関連だし
それにCoreImageやCoreVideoがCPUでも動いたようにOpenCLもCPU上で動かせるから未来がどっちに転んでも技術としては問題ないと思う
0094デフォルトの名無しさん
垢版 |
2009/07/02(木) 10:11:18
画像ビューアはCPUで処理したほうが速いだろ

>>89
Intel Larrabee というGPUは Pentium MMX というCPUに
GPU用のベクタプロセッサを沢山積んだモノになるよ。

で、そこで培った技術で後々 CPU 命令に GPU 命令が内蔵される。

>>92
Adobe CS4 はすでに CUDA や ATI Stream に対応しているから
下位互換でしかない OpenCL に対応する意味は余り無い。
0095デフォルトの名無しさん
垢版 |
2009/07/02(木) 12:51:12
DCのデモでも、CPUより早く動かすの苦労してたよ。
データ数が半端無く多くないとCPUを上回れない。
0096デフォルトの名無しさん
垢版 |
2009/07/02(木) 12:56:37
茸の左をひょいひょい躱した粟生と
リナレスの鬼速ジャブ…

この対決は興味深いぜ
0097デフォルトの名無しさん
垢版 |
2009/07/02(木) 16:12:28
CPUとは別に画像処理などに有用なコプロセッサが1つ
PCやMacで眠っているからそれも使おうって方向でいい。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況