さてついにOpenCLの仕様が公開されました。
http://www.khronos.org/opencl/
公式ページにはAPIのヘッダファイルが公開されており、
まだ実際に動かす事はできないもののプログラミングすることは可能となっています。
ということで、公開に先んじてプログラミングを始めてしまいましょう。
探検
OpenCLプログラミング#1
■ このスレッドは過去ログ倉庫に格納されています
1a36 ◆K0BqlCB3.k
2008/12/10(水) 15:38:25537デフォルトの名無しさん
2011/11/30(水) 00:50:42.75 >>536
OpenCLの機能実現するのに都合がいい命令がSSE4.1にあるからインテルの開発ツールはSSE4.1対応の世代以降でないと使えないんだよ
どうせ普及する頃には古い世代のCPUいなくなってるよねって方針なんだろ
OpenCLの機能実現するのに都合がいい命令がSSE4.1にあるからインテルの開発ツールはSSE4.1対応の世代以降でないと使えないんだよ
どうせ普及する頃には古い世代のCPUいなくなってるよねって方針なんだろ
538デフォルトの名無しさん
2011/11/30(水) 00:58:02.95 GPUが使えない環境での互換性用と割り切って広くサポートしてくれたほうがまだ有用なのにな
539デフォルトの名無しさん
2011/12/05(月) 06:55:31.93 構造体そのままカーネルに放り投げられない・・・
x.yに配列分けなくちゃだめか・・・
GPU正直CUDAのほうが楽だよね・・・
CPUとGPU同時並列に魅力感じてたけど
両方ともスレッドが少なすぎて・・・
x.yに配列分けなくちゃだめか・・・
GPU正直CUDAのほうが楽だよね・・・
CPUとGPU同時並列に魅力感じてたけど
両方ともスレッドが少なすぎて・・・
540デフォルトの名無しさん
2011/12/05(月) 09:48:13.49 なにいってるんだ?
541デフォルトの名無しさん
2011/12/05(月) 11:51:31.75 構造体 a
int x;
int y;
の配列をそのままメモリバッファにコピーしても
うまくいかなかったので・・・
AMDのカーネルアナライザーでエラーがでてたんです
if(a[id].x-a[id].y){}
結局配列分割してコピーしました・・・
int x;
int y;
の配列をそのままメモリバッファにコピーしても
うまくいかなかったので・・・
AMDのカーネルアナライザーでエラーがでてたんです
if(a[id].x-a[id].y){}
結局配列分割してコピーしました・・・
542デフォルトの名無しさん
2011/12/05(月) 12:04:37.78 組み込みのint2でいいじゃない。
543デフォルトの名無しさん
2011/12/05(月) 16:36:44.62 そうですね
それで組み込んでみます
それで組み込んでみます
546542
2011/12/06(火) 07:51:19.62 それなら分けた方がいいと思う。
547543
2011/12/06(火) 09:23:20.52 そうしてみます!
548デフォルトの名無しさん
2011/12/07(水) 22:41:57.13 ふう・・・ついに完成しました
ちまちま25%使うよりフルロードはいいですね
ただ、オーバーヘッドがいくらあるからはわかりませんが・・・
ちまちま25%使うよりフルロードはいいですね
ただ、オーバーヘッドがいくらあるからはわかりませんが・・・
549デフォルトの名無しさん
2011/12/08(木) 07:31:00.39 256MBの制限に引っかかって処理が止まるorz
これの上限増やせないのか?
これの上限増やせないのか?
550デフォルトの名無しさん
2011/12/08(木) 10:09:58.25551デフォルトの名無しさん
2011/12/08(木) 11:03:39.84552デフォルトの名無しさん
2011/12/08(木) 14:28:54.91 >>551
使い捨てる変数の宣言くらいがちょうどいいよ
NVIDIAはローカルメモリ使わないと倍ぐらい遅くなるけど
他はそうでもないから(OpenCL入門に比較があったよ)
グローバルで問題ないと思うよ
使い捨てる変数の宣言くらいがちょうどいいよ
NVIDIAはローカルメモリ使わないと倍ぐらい遅くなるけど
他はそうでもないから(OpenCL入門に比較があったよ)
グローバルで問題ないと思うよ
553デフォルトの名無しさん
2011/12/15(木) 20:39:38.90554デフォルトの名無しさん
2011/12/15(木) 20:44:38.54 CUDAはGPUしかできないけど一度により多くの処理ができる
OpenCLはCPUとGPUを同時並列処理ができるのが魅力
どっちにも特化した特性があるからプログラムしだいだよ
OpenCLはCPUとGPUを同時並列処理ができるのが魅力
どっちにも特化した特性があるからプログラムしだいだよ
555デフォルトの名無しさん
2011/12/15(木) 22:16:31.17 GPUには留まらない図が載ってるよ、ヌフォの所に
556デフォルトの名無しさん
2011/12/15(木) 22:40:09.72 もうGPU固有じゃなくなってきたのね・・・
カーネル丸出しのCLは論文すら少ない・・・
カーネル丸出しのCLは論文すら少ない・・・
557デフォルトの名無しさん
2011/12/26(月) 03:28:48.61 引数の渡し方が面倒なんだよなー
思わぬところでバグが出たりする
思わぬところでバグが出たりする
558デフォルトの名無しさん
2012/01/18(水) 10:01:49.46 openclを実用的に使うにはどんな環境がおすすめでしょうか
559デフォルトの名無しさん
2012/01/18(水) 10:11:34.51 いつでもCUDAに逃げられる環境
560デフォルトの名無しさん
2012/01/18(水) 22:05:36.88 nVidiaってこと?
561デフォルトの名無しさん
2012/01/19(木) 09:51:18.68 グラフィックボードは倍精度不動小数点数(cl_amd_fp64)が利用可能な
Radeon HD 7900、6900、5900/5800 シリーズがおすすめ
http://blog.tommy6.net/archives/74
Radeon HD 7900、6900、5900/5800 シリーズがおすすめ
http://blog.tommy6.net/archives/74
562デフォルトの名無しさん
2012/01/19(木) 16:52:31.76 宗教戦争が始まりそうだな
563デフォルトの名無しさん
2012/01/19(木) 17:05:38.23 >>561
紹介thx
紹介thx
564デフォルトの名無しさん
2012/01/19(木) 18:25:09.26 どうせおまえらめんどくさい組み込み関数なんか使わないだろってことか?
565デフォルトの名無しさん
2012/01/23(月) 19:34:34.31 GCNでアセンブリが変わったのか、動かなくなってしまった・・・
566デフォルトの名無しさん
2012/01/25(水) 02:58:13.00 変わる以前にGCN対応ドライバ&ランタイムまだ出てないでしょ
CCC12.1Previewが出回ってるからそれ付属のSDKランタイムなら動くんじゃないの
CCC12.1Previewが出回ってるからそれ付属のSDKランタイムなら動くんじゃないの
567デフォルトの名無しさん
2012/01/25(水) 03:08:02.37 Kernel AnalyzerもTahiti対応版出てないしな
568デフォルトの名無しさん
2012/02/01(水) 22:06:59.00 RADEONとGeforce、ガチンコ対決ではごっちが速いの?
569デフォルトの名無しさん
2012/02/01(水) 22:33:40.43 ごっちかな
570デフォルトの名無しさん
2012/02/01(水) 23:52:53.73 そもそもガチンコな応用でOpenCLってまともに実績あるの?
571デフォルトの名無しさん
2012/02/02(木) 00:02:24.64 無ければなんだっての?
572デフォルトの名無しさん
2012/02/02(木) 15:35:32.54 いや別に問題ない
573デフォルトの名無しさん
2012/02/10(金) 23:47:32.03 とりあえず齧る分には公式のプログラミングガイド買っとけばおk?
574デフォルトの名無しさん
2012/02/13(月) 02:50:23.08 OK
C言語と同じ
C言語と同じ
575デフォルトの名無しさん
2012/02/22(水) 23:40:42.01 サブルーチンみたいにカーネルに直接引数渡して処理できればなぁ
アドレスを渡す時とかすげえ面倒。
アドレスを渡す時とかすげえ面倒。
576デフォルトの名無しさん
2012/02/23(木) 01:38:17.77 そんな気軽にあちこちで使うようなもんじゃないっしょ
577デフォルトの名無しさん
2012/03/08(木) 16:45:33.65 カーネルソース丸出しか
特定デバイス用にコンパイルしておかないと
いけないのがなあ
特定デバイス用にコンパイルしておかないと
いけないのがなあ
578デフォルトの名無しさん
2012/03/08(木) 16:57:57.20 大したことないやつほど隠したがる銭湯の法則
579デフォルトの名無しさん
2012/03/08(木) 22:38:56.05 BOINC的なもので使うと不正対策必要で、既知の答えも一緒に計算させたりして対策するんだけどエコじゃないて悩ましいよ
580デフォルトの名無しさん
2012/03/11(日) 01:23:31.48 それなら同じWU他のやつに配って結果一致したやつだけ採用、
合わなかったら更に配布して一致した方採用でいいんでないかね
どのみち普通にやったって計算エラーになるのもいるし
合わなかったら更に配布して一致した方採用でいいんでないかね
どのみち普通にやったって計算エラーになるのもいるし
581デフォルトの名無しさん
2012/03/11(日) 02:45:56.59 つーかカーネルがソースコードだから
改竄される恐れがなんて懸念するような
プログラムなら、どんな形態で配るにせよ
ディスアセンブルされりゃ同じだって。
改竄される恐れがなんて懸念するような
プログラムなら、どんな形態で配るにせよ
ディスアセンブルされりゃ同じだって。
582デフォルトの名無しさん
2012/03/17(土) 16:17:03.96 個人PCでスパコンの1/1000の計算速度(10テラFLOPS)だってよ。スゲーな。
http://dualsocketworld.blog134.fc2.com/blog-date-201202.html
http://dualsocketworld.blog134.fc2.com/blog-date-201202.html
583デフォルトの名無しさん
2012/03/18(日) 17:23:23.96 10TFLOPSっていうと10年前のスパコンの性能と同じくらいだな
584デフォルトの名無しさん
2012/03/18(日) 20:53:01.85 10年後に京の性能がご家庭に来るかというと、さすがにそうでもない感。
585デフォルトの名無しさん
2012/03/18(日) 21:28:00.64 物理的限界が近づいてきたからこれまでとは事情が違うよね。
無知な人は技術でなんとかなるって言っちゃうだろうけどw
無知な人は技術でなんとかなるって言っちゃうだろうけどw
586デフォルトの名無しさん
2012/03/18(日) 23:15:06.83 一般家庭にベクトル演算ってそんなに必要ない気が。。。
587デフォルトの名無しさん
2012/03/19(月) 10:47:53.21 O(n^2)の直接法のN体とか本当にベンチマーク以上の意味はないんだがな
実用コードはツリー法やFMM法を使う
実用コードはツリー法やFMM法を使う
588デフォルトの名無しさん
2012/03/19(月) 17:14:11.16 O(n^2)がツリー法だとO(n logn)に、FMMだとO(n)になるそうだ
www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1084-12.pdf
www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1084-12.pdf
589デフォルトの名無しさん
2012/04/13(金) 00:11:16.74 AdobeのCS6でOpenCLが使われているという噂を聞いたんだが、カーネルのソースコードとかどうやってるんだろうか
590デフォルトの名無しさん
2012/04/13(金) 03:29:06.78591デフォルトの名無しさん
2012/04/29(日) 15:57:09.88 Intel OpenCL SDKを使って開発をしようとしているのですが、CPUとGPUを非同期で
走らせる方法が分かりません。
サンプルなどないでしょうか?
走らせる方法が分かりません。
サンプルなどないでしょうか?
592デフォルトの名無しさん
2012/04/29(日) 20:57:55.38 >>587
必ずしもそうでもない。もちろん限られたケースだが、空間ごとに時間刻みを変えたい場合とか、ツリー方とかだと複雑になりすぎてまだまだ難しい場合も多い。
そもそも、ツリーやFMMでも近傍場の計算は直接法だし、サンプルコードとして無意味ではない。
必ずしもそうでもない。もちろん限られたケースだが、空間ごとに時間刻みを変えたい場合とか、ツリー方とかだと複雑になりすぎてまだまだ難しい場合も多い。
そもそも、ツリーやFMMでも近傍場の計算は直接法だし、サンプルコードとして無意味ではない。
593デフォルトの名無しさん
2012/05/02(水) 10:33:58.88594デフォルトの名無しさん
2012/06/27(水) 01:05:42.85 質問なんだけど今はAMD/nVidia/IntelどのSDKでビルドしても
AMD/nVidiaのドライバが入っている環境ならGPUが利用できるって理解でok?
AMD/nVidiaのドライバが入っている環境ならGPUが利用できるって理解でok?
595デフォルトの名無しさん
2012/06/27(水) 21:29:31.15 >>594
違うというか、根本的に違う
違うというか、根本的に違う
596デフォルトの名無しさん
2012/06/30(土) 22:46:38.04597デフォルトの名無しさん
2012/07/01(日) 01:24:59.44598デフォルトの名無しさん
2012/07/01(日) 12:56:18.02599デフォルトの名無しさん
2012/07/05(木) 01:16:06.38 GT440でclinfoしたら
Max compute units: 2
と出たんだけど、この2とGT440のCUDAコア96とはどういう関係にあるの?
Max compute units: 2
と出たんだけど、この2とGT440のCUDAコア96とはどういう関係にあるの?
600デフォルトの名無しさん
2012/07/05(木) 12:03:19.25 NVIDIAの場合
Max Compute unit = Streaming Multiprocessor(SM) = Streaming Multiprocessor eXtreme(SMX)
Max Compute unit = Streaming Multiprocessor(SM) = Streaming Multiprocessor eXtreme(SMX)
601デフォルトの名無しさん
2012/07/27(金) 10:28:17.75 CPUデバイスのランタイムを有効にするにはAMDかインテルのSDKをインストールしてもらうしかないの?
ランタイムだけのパッケージってある?
ランタイムだけのパッケージってある?
602デフォルトの名無しさん
2012/07/27(金) 11:10:16.02603デフォルトの名無しさん
2012/07/28(土) 14:23:52.35 http://software.intel.com/en-us/articles/vcsource-tools-opencl-sdk/
のダウンロードリストボックスのOpenCL CPU only runtime(Windows* OS)ってやつか。
見落としてた。ありがとう。
のダウンロードリストボックスのOpenCL CPU only runtime(Windows* OS)ってやつか。
見落としてた。ありがとう。
604デフォルトの名無しさん
2012/07/30(月) 20:27:19.07 CPUでCLやっても遅いだけで意味無いなぁ
605デフォルトの名無しさん
2012/07/30(月) 22:03:29.12606デフォルトの名無しさん
2012/07/30(月) 22:41:12.50 CPUでOpenCL使うとお手軽にSIMD+マルチコア使えるな。
607デフォルトの名無しさん
2012/07/30(月) 22:48:37.20 ベンチも取らずに知ったか
608デフォルトの名無しさん
2012/07/31(火) 00:12:55.35 ベンチと言えば Intel と AMD で比べてみたら、Intel のほうがかなり速かった。
いやまあ、その PC の CPU は Intel だったんだけど。w
AMD な CPU だと逆転したりするのかなぁ。
いやまあ、その PC の CPU は Intel だったんだけど。w
AMD な CPU だと逆転したりするのかなぁ。
609デフォルトの名無しさん
2012/07/31(火) 07:48:58.72610デフォルトの名無しさん
2012/07/31(火) 10:50:46.32 phoronixのベンチ見る限りだとAMDのSDKの方が速そうだったけど
611デフォルトの名無しさん
2012/07/31(火) 18:30:47.41 少なくともカーネル部分はお手軽だよ。
素のCで使うと準備が面倒だが
C++のラッパーなら大した事は無い。
素のCで使うと準備が面倒だが
C++のラッパーなら大した事は無い。
612デフォルトの名無しさん
2012/07/31(火) 22:46:48.26 OpenCL以外でSIMDに自動で対応してくれるのってなにかあるの?
613デフォルトの名無しさん
2012/08/01(水) 06:14:34.83 インテルコンパイラ使っとけ。
それかFortranだな。
それかFortranだな。
614デフォルトの名無しさん
2012/08/01(水) 13:12:30.64 simdと言っているのがSSEのパックドなインストラクションのことでいいならgccでもOK。
615デフォルトの名無しさん
2012/08/01(水) 22:34:10.47 gccじゃ自動ベクトル化は皆無に等しいだろ。
616デフォルトの名無しさん
2012/08/01(水) 22:54:07.37 ちょっと前までSSEwとか思ってたけど
これだけ並列プログラミングが普及してきてAVX2とかみると考え変わる
これだけ並列プログラミングが普及してきてAVX2とかみると考え変わる
617デフォルトの名無しさん
2012/08/01(水) 23:22:54.44618デフォルトの名無しさん
2012/08/02(木) 00:32:11.20 >>617
なんか解釈に誤解があるようだが。
マルチコアのどんなプログラムでもOpenCLで書けという話ではない。
OpenCLのカーネルとして記述できるような問題に
適用すれば、なんも考えずにSIMDもマルチコアも
使えるようになるし、そういう用途に限れば
OpenMPやMPIもしくはPOSIX threadとかで
真面目に書くよりお手軽だし、余程の玄人が
書くのでない限り素早く、速いコードが書ける。
CL用のメモリ云々言っておきながら、速度面で
マルチスレッドなOpenMPでなくマルチプロセスになる
MPIをすすめるあたり根本的に理解に問題があるような。
まあ、通信部分はintel MPIとかなら共有メモリ使うから
極端に不利にはならないけど、少なくともこれが最速とは行かない。
なんか解釈に誤解があるようだが。
マルチコアのどんなプログラムでもOpenCLで書けという話ではない。
OpenCLのカーネルとして記述できるような問題に
適用すれば、なんも考えずにSIMDもマルチコアも
使えるようになるし、そういう用途に限れば
OpenMPやMPIもしくはPOSIX threadとかで
真面目に書くよりお手軽だし、余程の玄人が
書くのでない限り素早く、速いコードが書ける。
CL用のメモリ云々言っておきながら、速度面で
マルチスレッドなOpenMPでなくマルチプロセスになる
MPIをすすめるあたり根本的に理解に問題があるような。
まあ、通信部分はintel MPIとかなら共有メモリ使うから
極端に不利にはならないけど、少なくともこれが最速とは行かない。
619デフォルトの名無しさん
2012/08/02(木) 00:45:08.79 てかさ、CL 用のメモリとのやりとりなんかしないよね?
いや、しないようにつくるよね????
>CPUでSIMDとマルチコアを使いたいためだけにOpenCLを使つかうならアホだわ。
うわ、アホって言われちゃった。てへ。
いや、しないようにつくるよね????
>CPUでSIMDとマルチコアを使いたいためだけにOpenCLを使つかうならアホだわ。
うわ、アホって言われちゃった。てへ。
620デフォルトの名無しさん
2012/08/02(木) 01:31:56.84 OpenCLとMPIの並列化は全く別もんだし、
OpenCLとOpenMPの並列化もちょっと違う。
正直OpenCLのカーネルを書くくらいなら、
OpenMPを使った並列化の方が圧倒的に楽だわ。
OpenCLを使うメリットは複数のプラットフォームで動かすためだけだろ。
OpenCLとOpenMPの並列化もちょっと違う。
正直OpenCLのカーネルを書くくらいなら、
OpenMPを使った並列化の方が圧倒的に楽だわ。
OpenCLを使うメリットは複数のプラットフォームで動かすためだけだろ。
621デフォルトの名無しさん
2012/08/02(木) 06:37:43.98 無脳をさらすスレですか?
622デフォルトの名無しさん
2012/08/02(木) 07:45:55.61623デフォルトの名無しさん
2012/08/02(木) 08:05:46.59624デフォルトの名無しさん
2012/08/02(木) 08:07:44.71 >>623
GPUがあればそっちをつかいたいのならCLを書くこと自体が手間とか言ってる場合じゃないだろ。
それ一本で済まそうというのが手抜きだっての。
CPUでCLつかっても無駄なオーバーヘッドが出るだけだし
GPUがあればそっちをつかいたいのならCLを書くこと自体が手間とか言ってる場合じゃないだろ。
それ一本で済まそうというのが手抜きだっての。
CPUでCLつかっても無駄なオーバーヘッドが出るだけだし
625デフォルトの名無しさん
2012/08/02(木) 08:13:47.37 論理的に別なのはわかるけど
対象がCPUの時にはメモリコピーしないような実装になっててもおかしくないような気もする
対象がCPUの時にはメモリコピーしないような実装になっててもおかしくないような気もする
626デフォルトの名無しさん
2012/08/02(木) 08:14:10.39 まあ、小さい規模のコードしか書いてない奴には分からんかもしれんが、
複数のハードウェアプラットフォームをそれぞれメンテしないといけなのは、
かなりの工数がかかるからな。
多少のパフォーマンスを犠牲にしても良いことなんて沢山あるんだよ。
複数のハードウェアプラットフォームをそれぞれメンテしないといけなのは、
かなりの工数がかかるからな。
多少のパフォーマンスを犠牲にしても良いことなんて沢山あるんだよ。
627デフォルトの名無しさん
2012/08/02(木) 09:23:17.69 えぇ〜・・・・・・。
キミタチは実際につかったことないんだね?
ttp://software.intel.com/sites/landingpage/opencl/optimization-guide/index.htm
の Sharing Resources Efficiently とか読んでごらんよ。
キミタチは実際につかったことないんだね?
ttp://software.intel.com/sites/landingpage/opencl/optimization-guide/index.htm
の Sharing Resources Efficiently とか読んでごらんよ。
628デフォルトの名無しさん
2012/08/02(木) 23:04:54.27 これは恥ずかしいw
629デフォルトの名無しさん
2012/08/03(金) 00:10:12.73 どれにレスしてんだか分からんレスがおおいな。
630デフォルトの名無しさん
2012/08/03(金) 00:34:42.14 このスレ、99割が誤爆レスだからな。
631デフォルトの名無しさん
2012/08/03(金) 19:43:05.27632デフォルトの名無しさん
2012/08/04(土) 01:06:20.28 だ ー か ー ら ー ぁ 誤 爆 で し ょ
633デフォルトの名無しさん
2012/08/08(水) 17:52:37.24 なんでこのスレこの板にあるんだ?
634デフォルトの名無しさん
2012/08/09(木) 01:30:40.64 OpenCLハードル高いなぁ
どの機材構成でどのプラットフォームでどう書けば速くなるか
検証すべき項目が多すぎる
どの機材構成でどのプラットフォームでどう書けば速くなるか
検証すべき項目が多すぎる
635デフォルトの名無しさん
2012/08/09(木) 02:10:21.89 逆に考えるんだ
速さをあきらめればすべて解決する
速さをあきらめればすべて解決する
636デフォルトの名無しさん
2012/08/09(木) 02:22:49.56 あちらを立てればこちらが立たずですなぁ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【給食無償化】国が全額負担 自維公3党、近く合意へ★2 [ぐれ★]
- 【サッカー】Jリーグ、43億円の赤字予算を承認 ★2 [鉄チーズ烏★]
- 40代教員、1億8600万円分の暗号資産だまし取られる 「警察手帳のような物」見せられ−滋賀県草津市 [蚤の市★]
- 上野動物園の双子パンダ、1月末に中国に返還へ 国内でパンダ不在に ★4 [蚤の市★]
- 【ラブホ】小川晶前市長、出直し立候補意向 周囲に伝達 群馬・前橋市長選 [ぐれ★]
- なだぎ武、イベントチケットが売れず悲鳴「10枚しか売れておりません」 [muffin★]
- しっとり歌い上げる系地下アイドルの供給が増えてもいいんじゃないか
- XのDM更新されたけどバグ直った?
- 維新・吉村はん「国民よ思い出せ! 悪夢の民主党時代を!!」 [592058334]
- 楽しく生きると決めたんだが
- 『赤いきつねCMの性的さがOKなら、弱者男性オタクのオナニー自撮りもCMにしよう』の声、ネットで上がり始める [932029429]
- レズだけどひま
