OpenCLプログラミング#1

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

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

公式ページにはAPIのヘッダファイルが公開されており、
まだ実際に動かす事はできないもののプログラミングすることは可能となっています。
ということで、公開に先んじてプログラミングを始めてしまいましょう。
2009/08/15(土) 19:07:04
ごめん間違えた。
2009/08/17(月) 10:37:46
>>122
DX11 Compute Shaderなら(機能は限定されるだろうけど)DX10以降のGPUで動くよ
2009/08/18(火) 00:53:33
はやくCLとDX10こねーかなー
2009/08/18(火) 00:54:40
11だった どんだけwktkして待ってるとおもってんだ
2009/08/24(月) 13:36:00
http://pc.watch.impress.co.jp/docs/news/20090824_310402.html
先にDirectComputeの方がきちまった
2009/08/25(火) 01:30:39
AMD DX11 Cypress is Radeon HD 5870 & HD 5850
ttp://vr-zone.com/articles/-rumour-amd-dx11-cypress-is-radeon-hd-5870--hd-5850/7469.html?doc=7469

・1GB GDDR5 memory
・ATI Eyefinity technology with support for up to three displays
・ATI Stream technology,
・Designed for DirectCompute 5.0 and OpenCL
・Accelerated Video Transcoding (AVT)
・Compliant with DirectX 11 and earlier revisions
・Supports OpenGL 3.1
・ATI CrossFireX multi-GPU support for highly scalable performance6
・ATI Avivo HD video and display technology
・Dynamic power management with ATI PowerPlay? technology
・DL-DVI, DL-DVI, DisplayPort, HDMI
・PCI Express 2.0 support
2009/08/25(火) 07:51:29
AMDの場合、1月頃に出したGPUにも"OpenCL ready"ってスペック表にあったんだよな・・・(遠い目)
2009/08/25(火) 07:54:26
実際出してもまともに動かないATI
2009/08/25(火) 11:24:47
Snow Leopard(10.6)が28日に出るらしいぞ。
技術仕様の中に
「OpenCL
以下のグラフィックカードまたはグラフィックプロセッサのうち、いずれかひとつが必要です。
# ATI Radeon 4850、Radeon 4870」
ってあったから、こっち優先して他のは後回しにされてんじゃね?
2009/08/25(火) 11:52:01
AMDのOpenCL入門記事「Introductory Tutorial to OpenCL」
ttp://developer.amd.com/gpu/ATIStreamSDK/pages/TutorialOpenCL.aspx
2009/08/25(火) 21:19:55
>>132
ないない。
ATIのMac版は常に後。再生支援すらまともじゃない笑えない現実がある。
2009/08/25(火) 21:55:12
再生支援とは別としてOpenCLは力を入れてくるんじゃないか
2009/08/26(水) 08:51:22
>>135
ATIのOpenCL対応GPUが>>132の二つだけということからも極めて怪しい。
2009/08/26(水) 23:19:23
? よくわからんが後回しどころか4800シリーズの二つは既に対応してるんだよな?
2009/08/27(木) 00:17:44
後一両日中には分かることさ
2009/08/27(木) 11:05:51
>>137
nVidiaに比べてしょぼしょぼ。

http://netkas.org/?p=164
>Radeond OpenCL support is very poor, only few of many apple’s opencl
>demo run on it
2009/08/28(金) 20:25:46
だれかOSXで試してみたやつおる?
2009/08/29(土) 07:02:33
OSXでOpenCL使っているアプリが無い
2009/08/29(土) 08:49:38
ATIは宣伝文句ばっかりでやることはごみ
まさかこんな最新技術を扱うスレでRADEONなんて買ってる情弱はいないと思うが
2009/08/29(土) 10:25:26
>>141
そっちは今からじゃね?
次のiLife系列で対応してきそうだし
2009/08/29(土) 14:00:11
QTXがたいおうしていなかったっけ?
2009/09/05(土) 03:48:17
対応したところで現在のところ95%のMacに載ってるGPUは使い物にならない性能
Mac ProですらGT120 (9500GT相当) だからな
2009/09/11(金) 08:23:44
>ATI StreamSDK 2.0 beta(Windows, CPU 利用)の
>OpenCL 実装だと、8 秒近くもかかってとてつもなく遅い!
>(SnowLeopard だと 0.0001 秒なのに…)
http://lucille.atso-net.jp/blog/?p=907

そもそもAMDの実装が糞という話が・・・
2009/09/12(土) 22:51:30
>>146
世に出すってレベルじゃねーな。何かの間違いだとは思うが。
148デフォルトの名無しさん
垢版 |
2009/09/13(日) 02:25:23
つ AMD StreamSDK v.20 「ベータ」
2009/09/13(日) 10:34:43
1.0すらβな件

αの間違いじゃねーのか?w
2009/09/13(日) 14:21:31
γはまだ〜?
2009/09/13(日) 18:38:32
>>146
OpenCLって単に実行ファイルを一つにできるというだけで
結局各社のCPUなりGPUなりの特性にあったコードを別々に書かなくちゃ性能出ないの?
2009/09/13(日) 22:39:40
うん
CPUでも性能出そうと思ったら、CPUごとに最適化しないと駄目だし、しょうがないんじゃね
2009/09/13(日) 22:44:14
曲がりなりにもC/C++が使えるCellがあんなことになってたりするけど
ハードウェアの特性の違いまでは言語・フレームワークで吸収できるものではありません。
OpenCLの実態も、まあお察し下さい。
2009/09/13(日) 22:47:13
あと、Appleの実装はともかくAppleの力の及ばないWindowsやLinuxまで
NVIDIAとATIのOpenCLコードにバイナリレベルの互換性があるとは限らないぞ
OpenGLが各社独自拡張によってカオスなことになってるようにね。
2009/09/13(日) 22:51:24
OpenCLの互換性はソースレベルだろ。
それも最低限の仕様だけを使ったものなら
どれでも動くというレベル

ハードの特性を取得して、場合わけするなど
OpenGLとほぼ一緒
2009/09/13(日) 23:09:02
それじゃ結局各社が出してるGPGPU環境使ってそれぞれに開発した方が効率よくない・・・?
2009/09/13(日) 23:21:12
それでも同じコードで動くかどうかは重要だよ。
必ずしも全部を最適化する必要なんてないんだし。
2009/09/13(日) 23:57:09
でもカーネルのソース読み込んでオンライン・ビルドってのがなー
この仕様だと製品版でOpenCL対応しましたーって会社でないんじゃないかな??
2009/09/14(月) 10:56:56
とりあえず標準仕様に合わせて書いておけば動くというのは心強いぞ。
現状Intelコンパイラの自動ベクトル化とか糞過ぎるから、今後こういうところで頑張らないと計算分野でGPUに水をあけられる可能性がある。
AMDは…お察し下さい。
2009/09/14(月) 17:57:33
将来のハードの進歩でって投げ技が使えていいんじゃないか?
2009/09/14(月) 21:00:45
>>155
>ハードの特性を取得して、場合わけするなど
そういった特性とか最適化を担っているのがLLVM。

OpenCL→LLVM→
2009/09/14(月) 21:30:32
LLVM(笑)

そりゃそんな物に頼ってるからGPUに対応できないわけだ

LLVMは魔法のソフトじゃない。
未知のアーキテクチャに対応できるのはハードを知り尽くした人間だけだ。
ハード作った人間が対応投げてたら世話無いわ。

2009/09/15(火) 00:12:47
何でもいいからWindowsで動く処理系きてくれー
2009/09/15(火) 00:33:45
何でもいいなら半年ほど前からNVIDIAが出してる
2009/09/15(火) 00:52:23
>>162
> 未知のアーキテクチャに対応できるのはハードを知り尽くした人間だけだ。
> ハード作った人間が対応投げてたら世話無いわ。

あり得ない。コンパイラ技術を知らないアセンブラ人間?
2009/09/15(火) 01:14:34
団子には何言っても主張を曲げないよ
無駄な煽りでスレが荒れるだけ、NG推奨
2009/09/15(火) 01:47:02
両方とも言ってる事がおかしい
2009/09/15(火) 03:56:13
OS X ハッキング! 335 ついに姿を現した「OpenCL」、その実力
http://journal.mycom.co.jp/column/osx/335/index.html
2009/09/16(水) 00:55:52
>>165
コンパイラはどうやってコード吐くんですか?
どの命令とどの命令が並列実行出来るとかって情報は誰が持ってるんですか?

ああ、今時Javaでもx86のJITフレームワーク触れますよ
2009/09/16(水) 01:03:34
オープンソースの力を借りるのはある程度動くものができてからの話よ。
CPUだととんでもなく遅いです、GPUだと動きません、じゃ、話にならないでしょ。
そもそもStream 1.0の正式版を出さないうちに2.0のβ(笑)をでっちあげる神経を疑う。

ハードだけ出してソフト丸投げでは、どっかのCell(笑)と同じじゃないの。
それより更に悪い。
2009/09/16(水) 08:56:27
OpenCLもOSS化されたGrand Central Dispatch(Cへのブロック追加+OSでの対応+LLVM/Clang)も、
LLVM/Clangが鍵になってるけど、これは言語に対する低レベルなVMであって、
別にJavaなんかと同一視してVMだからどうこうと言っても理解できないかも。

因みにNvidiaもOpenCl実装にLLVM/Clangを利用してるし(今後その実装で続くのかは不明)、
GPU非依存化にはこういう仕組みは不可欠じゃね。
172デフォルトの名無しさん
垢版 |
2009/09/16(水) 11:02:06
中間コードに落とし込むまではどうでもいいんだよ
実際にターゲットハードウェアで走るコード生成機
GNU開発ツールでいうところのbinutilsみたいなのは
ハードごとに用意しないといけない

それすら満足に作らないまま大風呂敷だけ広げてるから
馬鹿にされるんだって
2009/09/17(木) 01:35:08
はあ?
2009/09/17(木) 01:41:05
はぁ・・・
2009/09/18(金) 00:20:38
はぁ…っ
2009/09/19(土) 00:31:25
物分りが悪すぎるぞ
お前のパソコンでLLVMが動くのはLLVMにx86のコードジェネレータが組み込まれてるからであって
コードジェネレータが用意されてなければ動かしようが無い。

コードジェネレータが用意されて無いなら、0からでもそれを作らないと話にならんのよ。
AMDは用意して無い。
だからGPUで動かない。
当然の話だ。
2009/09/19(土) 00:39:22
してないの?
Q3中にGPU対応バージョン公開
Q4に正式版公開と公言しているのに。
2009/09/19(土) 03:27:54
当然もなにも、当たり前過ぎて。
2009/09/19(土) 09:38:17
この馬鹿は俺らを笑い殺すつもりか?
2009/09/23(水) 08:36:49
つまりベンダーは OpenCL ランタイムが載ったドライバ開発を急げと?
2009/09/24(木) 12:51:14
GPUメーカーに作らせたものなど性能を良く見せるためにCPUが遅くなるように細工してるに決まってるだろ
2009/09/24(木) 17:48:12
細工っていうか手を抜く
2009/09/25(金) 10:43:31
Khronos groupのOpenCL公式フォーラム
http://www.khronos.org/message_boards/viewforum.php?f=28
184デフォルトの名無しさん
垢版 |
2009/09/29(火) 21:30:53
OpenCL Download Page
http://developer.nvidia.com/object/opencl-download.htm
2009/09/29(火) 23:02:32
>>184
CUDAより数倍遅いんだけど
2009/09/29(火) 23:03:22
俺に言われてもしらんがな
2009/09/29(火) 23:05:19
と思ったがN-Bodyのパーティクル数が違っただけだった
2009/09/30(水) 01:07:29
SDKぶっこんでみたら、DirectCompute用も入ってた
2009/09/30(水) 06:28:55
今OpenCLに対応してるのはヌビディアだけか
2009/09/30(水) 07:41:20
まあいつも通りの事だ
AMDは毎回ポーズだけ
2009/09/30(水) 12:47:44
openclって標準化されてるとはいうけど
NVIDIAでコンパイルしたバイナリをCPUやATIで動かせるようになるんかな?
それぞれ別々にバイナリを作って配布することになるんかな?
2009/09/30(水) 13:41:09
>>191
デバイス毎に定数を調整するとか実装を調整するとか必要になる希ガス。
なので、仮に一つのバイナリだとしても中身は別物になりそう。
2009/09/30(水) 20:31:44
>>191
だから無理だって
2009/09/30(水) 23:24:46
>>191
バイナリファイルにコンパイルできるのか
ずっとHLSLみたいに実行時コンパイルだと思っていた
2009/10/01(木) 00:23:16
>>194
どうもそうらしい
2009/10/01(木) 01:06:26
バイナリ状態でロードして実行も出来るし、実行環境で実行直前にコンパイルすることもできるよ。
2009/10/01(木) 10:06:41
>>196
そのバイナリってのは中間コードみたいなものなの?
それともハードウェア依存の完全なバイナリなの?
2009/10/01(木) 21:15:46
EarFluid: Experimental QC OpenCL iTunes visualizer
ttp://www.mutantquartz.com/?p=40
2009/10/01(木) 23:39:11
>>197
バイナリはハード依存でしょ。
Nvidiaが内部的に中間コード使ってるらしい?
でも当然AMDと互換性はない。
2009/10/02(金) 10:33:36
CUDAとOpenCL、言語によってパフォーマンスに差は出ますか?
2009/10/02(金) 19:20:28
>>200
現状OpenCLが桁違いに遅い。。。
2009/10/02(金) 21:15:18
>>199
llvmの中間コードを使っているのであれば
ポータブルではない。
2009/10/03(土) 00:38:14
>>200
最終的には同じになる、ってOpenCLプログラミングセミナーでnvidiaの偉い人が言ってた。
2009/10/03(土) 02:31:57
NVIDIAのOpenCLドライバ使ってるんだけど、カーネル実行って同期処理になってない??
キューに入れてから戻るまで時間がかかりすぎで、マルチタスク的な動作が出来ないんですが。。。

>>203曰く、ちゃんと対応されるのかな?
それとも、俺がOpenCLの仕様を読み間違えてるだけ?(汗
2009/10/03(土) 13:40:35
>>198
GeForce9400だと5fpsくらいしか出ないけど面白いね
CPU負荷が全く上がらない
206デフォルトの名無しさん
垢版 |
2009/10/06(火) 11:00:59
OpenCLはサザビーでも使えるの?
2009/10/06(火) 11:25:46
エゴだよそれは
2009/10/08(木) 03:02:00
>>204
内部でCUDAを使ってるだけだろうし原理としてはそうなる
基本的に同期処理が原則
だからカーネル実行は細分化してやらないとだめ
画像を処理するなら1行処理する関数をカーネル化してCPU側でループするみたいな
やりかたじゃないとだめ
209デフォルトの名無しさん
垢版 |
2009/10/10(土) 03:43:44
SDK 2.3b released
OpenCL Download Page
ttp://developer.nvidia.com/object/opencl-download.html
2009/10/10(土) 06:42:05
そのうちオライリーが一冊本を書くんじゃなかろうか
日本語翻訳版が出るかどうかは知らないけど
2009/10/10(土) 11:48:34
CUDAとATI Stream SDKとOpenCLの関係がいまいち分からんけど、
OpenCLの中のオプションとしてCUDAとかATI Stream SDKとか位置づけされるってことなのかな。

今CUDA用に記述してあるソースコードも、OpenCL用にちょこっと書き換えればAMDのGPUでも、
他のOpenCLに対応したGPGPUでも動作するってこと?
2009/10/11(日) 03:22:25
>>208
いやいや、CUDAの動作はそれであってるのけど、それはOpenCLの仕様違反だろ?
それに画像処理するならカーネルループとかあり得ないし。カーネル実行のオーバーヘッドの事を理解していないとしか思えないな。
2009/10/11(日) 10:06:30
OpenCL Tutorial - Shared Memory Kernel Optimization
http://www.macresearch.org/opencl_episode6
OpenCL Tutorials
http://www.macresearch.org/opencl
OpenCL Programming Guide for Mac OS X
http://developer.apple.com/mac/library/documentation/Performance/Conceptual/OpenCL_MacProgGuide/Introduction/Introduction.html
2009/10/11(日) 18:47:07
>>212
物理的にGPUがマルチタスクに対応してないんだからどうしようもないな
オーバーヘッドも含めてGPU処理の性能の限界が現時点でそうなんだからしょうがない
2009/10/19(月) 21:09:31
>>213
思ったんだけど、もろにNVIDIA寄りの内容だよね
2009/10/19(月) 21:58:59
2009 LLVM Developers' Meeting
http://llvm.org/devmtg/2009-10/
↑OpenCLなどApple社員系の情報が非公開なのは残念だが参考に。

http://llvm.org/docs/ReleaseNotes-2.6.html
2009/10/22(木) 01:41:00
>>211
違う。

C と C++ と Java みたいなモンで3つとも同じように
CPU 上で動くが各言語間でソースコードの互換性は……だろ?

CUDA は like C、ATI Stream は Book+、OpenCL は OpenCL C という別言語になる。
プログラマは自分の開発環境などに合わせた好きな言語が選べるってだけだ。
2009/10/22(木) 12:21:11
新iMacのGPUがRadeonなんだが、OpenCLの対応はどうなの?
SDKあるんだっけ?
2009/10/29(木) 23:09:47
なんか在庫買いあさったらしいからこれから最適化進めてくるんじゃない
2009/10/31(土) 11:17:42
誰かこの前、秋葉原で開催されたOpenCLセミナー行った人いる?
いたら、簡単な感想聞きたいです。
2009/11/01(日) 01:05:25
>>220
いったよ
・nVIDIAの人「Fermiアーキテクチャは凄いぞ!」まぁ凄いけどさ。
・FIXSTARSの人のプログラミング入門は参考になったけどあの内容だけだと即書くのはキツイ。
 最後には「ちゃんとやりたい人向けに終日の有料教室やってるよ!」だったしw
・Appleの話はOpenCLじゃなくて殆どCocoaの話…
・Dellは殆ど営業トーク

内容的にはそんなに深くなかったかなー…って感じ。
222デフォルトの名無しさん
垢版 |
2009/11/03(火) 04:42:31
オープンクルとオープングルって何か共通点はあるの?
2009/11/03(火) 08:17:17
釣られないぞとつぶやいたそこのあなた。
既に釣られてますよ。
2009/11/05(木) 12:25:52
OpenCLはCPUのSIMD命令を置き換えられるようなものになるといいな
そのうちCPUにGPUも統合するんだからさ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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