OpenCLプログラミング#1

1a36 ◆K0BqlCB3.k 2008/12/10(水) 15:38:25
さてついにOpenCLの仕様が公開されました。

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

公式ページにはAPIのヘッダファイルが公開されており、
まだ実際に動かす事はできないもののプログラミングすることは可能となっています。
ということで、公開に先んじてプログラミングを始めてしまいましょう。

2デフォルトの名無しさん2008/12/10(水) 15:57:47
ひとまずwgetじゃなくて2get
Mac界隈ではCore Imageみたいにかなり使われそうだけど他のプラットフォームではどうなるかな?

3デフォルトの名無しさん2008/12/10(水) 19:55:47
仕様策定にあたり、国内メーカはほとんどなし?

NやFなどのスパコンメーカは入っていてもよさそうなのに…

4デフォルトの名無しさん2008/12/10(水) 20:08:08
イマイチだなこりゃ
極一部で流行って終了の予感

5a36 ◆K0BqlCB3.k 2008/12/10(水) 20:10:45
>>2
まだGPGPUでどんな事ができるのか模索している段階ですので、
キラーアプリが早い段階で出てこないとOpenCLを標準化するのは
難しくなっていくと思います。
Microsoftや他の団体が別の標準を作ってしまってからでは
OpenGLとDirectXのような亀裂を生んでしまうでしょう。

6a36 ◆K0BqlCB3.k 2008/12/10(水) 20:12:58
とりあえず、仕様書の翻訳を始めるために許可とってきます。

7デフォルトの名無しさん2008/12/10(水) 20:27:22
SpursEngineが対応しそう。
ttp://www.watch.impress.co.jp/akiba/hotline/20081206/etc_toshibaev0.html

8デフォルトの名無しさん2008/12/10(水) 20:49:11
>汎用API「Open CL」への対応も「好きな奴がいて、
>仕事の合間にやっている」(同氏)とのこと。これが実現すると、
>「同じプログラムがCPUでもGPUでもSpursでも動く」
>という環境になるが、進行状況については「上司からお金が
>もらえなくても、コツコツと(笑」なのだとか。

期待できるのかなw

9デフォルトの名無しさん2008/12/10(水) 21:27:51
金出してやれよ

10デフォルトの名無しさん2008/12/10(水) 22:04:54
Pixelmatorとか対応しそうじゃないか?
したらPhotoshopを超える最強アプリになる予感。

11デフォルトの名無しさん2008/12/10(水) 22:25:22
いまいち分からん。
CUDAとOpenCLって何が違うんだ?
誰か詳しい人説明頼む。
http://www.nvidia.com/object/io_1228825271885.html

12デフォルトの名無しさん2008/12/10(水) 22:29:24
簡単に言うと、NVIDIAが独自にGPU用に作ったのがCUDAで、
GPU以外のデバイスも視野に入れられて作られようとしているのがOpenCL。

13デフォルトの名無しさん2008/12/10(水) 22:33:06
寿命短そうだな

14デフォルトの名無しさん2008/12/10(水) 22:34:08
>12
thx
GPU以外ってことはLarrabee(これでスペルあってる?)や>>7の言うようにCellか?

15デフォルトの名無しさん2008/12/10(水) 22:43:28
想像だけど、ClearCaseやTerareconのようなデバイスメーカも対応せざるを得なくなるかもね。
CPUでも実装可能だし、当然ララビーも対応してくるんじゃない?

16デフォルトの名無しさん2008/12/10(水) 22:52:56
iPhoneの例のスレと似たふいんき・・・何なの

17a36 ◆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 ツールキットはリリースされていません

18デフォルトの名無しさん2008/12/10(水) 23:30:05
さらっとサンプルソース見たけど
clCreateProgramWithSourceに渡すのはソースのテキストそのままだけど、
clCreateProgramWithBinaryに渡すバイナリって何だろ、
そのバイナリってデバイス間で互換性あんの?

19デフォルトの名無しさん2008/12/10(水) 23:36:32
CUDA向けに書いて少しいじればOpenCLでも動くのかな?
http://www.appleinsider.com/articles/08/12/10/nvidia_pioneering_opencl_support_on_top_of_cuda.html

20デフォルトの名無しさん2008/12/11(木) 00:25:28
少々スレ違いだけどKhnoros Groupって他の標準化もやってたのか。
OpenVG(オープンなベクターグラフィックスAPI)
http://journal.mycom.co.jp/news/2008/12/10/073/index.html

21デフォルトの名無しさん2008/12/11(木) 00:49:08
なんなのこのふざけた名前

22デフォルトの名無しさん2008/12/11(木) 03:46:32
>>14
重箱隅ですがspursはCell規格じゃないですよ。PPEねーし。

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

OpenGL以外におけるKhronosをどこまで信用して良いのかもいまいち。
COLLADAとか半端仕事な印象拭えないんだよな……。使ってるとこは使ってんだろか?

23デフォルトの名無しさん2008/12/11(木) 21:38:21
>>22
PS3 みたいなガチガチに決まってる奴にこそ不要だろ。

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

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

現段階で普及するかどうかを予測するのは無意味に近いが、今なら先行者利益に預かれるかも知れない。

24デフォルトの名無しさん2008/12/12(金) 21:58:03
組み込み関連の所が多いって所にやっぱメディア系の家電とかへの需要が期待されてるのかね
車載とか携帯電話もありうるのかな

25デフォルトの名無しさん2008/12/13(土) 06:17:58
>>24
ありうるけど、まだ高価すぎる。
PIC や DSP なみにコモディティ化したら、みんなが使うだろう。
組み込みにとっては、CUDA か CL かというのは、次かその次の世代の話だろう。

ま、現場はアレもコレも知っとかないとねw

26デフォルトの名無しさん2008/12/13(土) 08:55:49
これれは今出てるiPhoneでも使えるのかね

27デフォルトの名無しさん2008/12/13(土) 10:14:46
>>26
ARMはSIMDらしいよな。
Appleがやってくれるかもしれん。

28デフォルトの名無しさん2008/12/15(月) 02:44:31
DsPICってのも有るし、しかも最近clockがどんどん上がってる。
このPICに載ってるDSPの数が増えたら8bitのGPGPUって感じじゃね?

29デフォルトの名無しさん2008/12/15(月) 09:32:57
dsPIC m9(^Д^)プギャーーーッ

30デフォルトの名無しさん2008/12/17(水) 03:23:32
なんでこのスレでdsPICの名前が
CLで叩く意味はちょっと見出せないw

31デフォルトの名無しさん2008/12/18(木) 03:06:23
これは楽しみだわ

32デフォルトの名無しさん2008/12/22(月) 21:22:09
spec読んだけどcudaに毛が生えたようなもんだね
メモリ階層もモデル化したと言うけど、ほぼ現行のGPUが前提。
興味なくなった。

33デフォルトの名無しさん2008/12/22(月) 21:51:48
1.0だからな・・・
Intel VTと同じで2.0からが本気なんだよwww

34デフォルトの名無しさん2008/12/23(火) 14:09:23
Open CLって結局なんなんだよ

35デフォルトの名無しさん2008/12/23(火) 19:27:26

36デフォルトの名無しさん2009/02/15(日) 19:12:01
2009年,本格始動するGPGPUの世界・後編〜GPGPUのプラットフォーム動向
http://www.4gamer.net/games/076/G007660/20090206031/

37デフォルトの名無しさん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とは似て非なるものだといえる。

38デフォルトの名無しさん2009/02/15(日) 20:17:07
>>37
大丈夫、DSPがOpenCLに対応する可能性は限りなく低いから。
まして、x86プロセッサでOpenCL対応するくらいならCt使う方が遥かにまし。

39デフォルトの名無しさん2009/02/15(日) 22:24:19
つーかOpenCLってとりあえずMac用でしょ

40デフォルトの名無しさん2009/02/15(日) 22:27:21
なんで?

41デフォルトの名無しさん2009/02/15(日) 22:30:45
OpenCLの規格化作業を猛烈に推し進めたのがアップルだから

42デフォルトの名無しさん2009/02/15(日) 22:42:22
だからMac用?
どうして?

43デフォルトの名無しさん2009/02/15(日) 22:42:47
>>38
なんか理解できてないようだけど、
こいつの価値は並列処理にあると思う。
要するに今までのGPGPUは、GPUによる高速化
というのがメインだったけど、OpenCLの場合は、
CPUとGPUで並列処理が可能になる。

元々はAppleとNVIDIAが協力して、CUDAを基礎に
した(と思われる)ものを、さらに標準化の過程で
より汎用性を重視して、GPUに依存しないよう設計
にしたものがOpenCL。

44デフォルトの名無しさん2009/02/15(日) 22:48:46
>>42
大丈夫、Mac専用じゃないよ。
Appleが規格の孤立化を避けるのが目的だと思うけど、
最初からオープン標準化にこだわって作られた規格。

規格の策定作業のメンバーにはIntelやAMD、NVIDIA、
ソニーなど、MSを除く主要企業は全て参加しているし、
OpenGL(ES)との連携やスマートフォンへの対応もあるし、
これから先、携帯端末全盛の時代の最有力候補でもある。

45デフォルトの名無しさん2009/02/15(日) 22:50:10
>>44
あんたに聞いてないんだよ

46デフォルトの名無しさん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を採用する企業も当然存在するとは思うけど。

47デフォルトの名無しさん2009/02/15(日) 23:13:48
>>46
お前の意見なんてどうでもいい
マジで黙ってろクソ野郎

48デフォルトの名無しさん2009/02/15(日) 23:18:30
>>47
あうごめんwでも答えちゃったよ?

49デフォルトの名無しさん2009/02/16(月) 18:57:22
で、まだかね?

50デフォルトの名無しさん2009/02/17(火) 11:40:11
マルチコア動作版くらいそろそろ出せよ ガオー

51デフォルトの名無しさん2009/02/17(火) 11:44:25
てかDirectXは独自に実装するみたいだが
MSは意地でも標準化を妨害したいらしいw

52デフォルトの名無しさん2009/02/17(火) 12:35:14
妨害つーか、OpenCLはOpenGLとは連携するが
Direct3Dとは連携しないので、MSが自前で作るしかない。

53デフォルトの名無しさん2009/02/21(土) 19:01:40
MSはどっちかっていうとマルチCore CPUをグラフィックに活かそうとしているよね。
逆。

54デフォルトの名無しさん2009/02/21(土) 19:03:43
>>52
MSはCompute Shaderを準備中。

55デフォルトの名無しさん2009/02/26(木) 00:45:30
言語はC99ベースだからいいかと思ったけど、再帰が使えないのは痛いな。
Cで書いてコンパイルしたバイナリと、OpenCLで書いてコンパイルしたバイナリを
リンクできればいいな。


56デフォルトの名無しさん2009/02/26(木) 11:20:43
.objが中間コード的なものだったら出来たかもね。

57デフォルトの名無しさん2009/02/28(土) 03:39:12
再帰なんていらね

58デフォルトの名無しさん2009/04/02(木) 08:17:35
並列化しやすい問題で結構使うぞ、再帰探索は
こっち方面はIntelに期待するしかないかもね

59デフォルトの名無しさん2009/04/02(木) 23:41:47
時間とメモリの使用量が不定になるからねぇ。
OpenCLの主戦場を考えるとどうなんでしょうか。

60デフォルトの名無しさん2009/04/03(金) 01:52:09
再帰するようなアルゴリズムの場合、命令ポインタの動きに一意性がないし
決してデータレベル並列ではないんだよな。
SIMDでは命令ポインタが要素ごとに独立、というわけにはいかない。
プレディケートをやるのは逆に言うと自由に分岐ができないことの現れだし。

61デフォルトの名無しさん2009/04/11(土) 13:13:33
ほしゅ

62デフォルトの名無しさん2009/05/03(日) 23:04:11
まだ?

63デフォルトの名無しさん2009/06/14(日) 18:31:47
>>55
残念だが OpenCL C は Java や .NET のような中間コードで
OS 上のドライバがリアルタイム翻訳するからリンクは無理。

だが OpenCL を利用する本体は何でもいいから
C や C++、Objective-C なんかで再帰検索すればいい。

64デフォルトの名無しさん2009/06/20(土) 18:47:32
企画書ってどこで読めるの?

65デフォルトの名無しさん2009/06/20(土) 20:41:46
>>64
OpenCL 1.0 仕様書
ttp://www.khronos.org/registry/cl/specs/opencl-1.0.43.pdf

66デフォルトの名無しさん2009/06/21(日) 04:07:00
Appleが用意したOpenCLの技術解説のpdfのリンク貼っとく
http://images.apple.com/macosx/technology/docs/OpenCL_TB_brief_20090608.pdf

67デフォルトの名無しさん2009/06/29(月) 13:32:04
OpenCLのCPU動作版って公式で作るのか?
それとも誰か作ってる人が居る?

68デフォルトの名無しさん2009/06/30(火) 20:18:36
Intel か Apple が CPU 用 OpenCL ドライバを作成すれば問題ない。

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

個人で Java VM や GPU Direct3D/OpenGL ドライバを
作ってしまえる人が興味を持ってくれたら話は別だけど。

69デフォルトの名無しさん2009/06/30(火) 20:23:54
スノレパにはCPU用ドライバが付いてくるでしょ

GPUよりも数十倍から100倍以上は処理が遅いCPUで
Open CLを動かす価値が有るかはわからないけれど

70デフォルトの名無しさん2009/06/30(火) 20:34:15
>GPUよりも数十倍から100倍以上は処理が遅いCPU
という夢を見ている

71デフォルトの名無しさん2009/06/30(火) 20:46:55
Core 2 Quad QX9775: 102.4 GFLOPS
Radeon HD4870:1.2 TFLOPS(1200 GFLOPS)

一桁余分だな。

72デフォルトの名無しさん2009/06/30(火) 23:19:38
このスレで言うのもなんだが並列処理って知ってる?

73デフォルトの名無しさん2009/07/01(水) 00:44:41
CPU と GPU を並列に走らせて 10 が 11 になるよりも、
その1をUIやGPUが苦手な処理を与えたほうがいいんじゃね?

マルチタスク(プロセス)的にも CPU は空けておきたいかも

74デフォルトの名無しさん2009/07/01(水) 02:58:17
CPUよりGPUのが早いってことになってるけど
それは実は大嘘でちゃんとマルチコアで作りこんだらスピードは大差ない
GPUメーカー製のドライバはCPUでも動くような振りだけは実装するだろうけど
絶対にまともな実装はしない、ばれるから
だからちゃんとしたCPUメーカーか第三者が作ったものが必要

75デフォルトの名無しさん2009/07/01(水) 03:05:43
>>71
それは理論的な演算速度だけだとそうだけど
メインメモリからデータを取り出して結果を戻すのに要する時間で計算すると
遥かにCPUの方が早い

76デフォルトの名無しさん2009/07/01(水) 06:44:02
結局ワークロード次第なのだがGPUが明らかに速い分野なんて非常に限定的で馬鹿にされまくっているのが実情
GPGPUは過去のEPICと被るな

77デフォルトの名無しさん2009/07/01(水) 11:17:39
>>74
なんでGPUメーカーがCPU用ドライバを作るんだよ。
DirectXですらCPU用ドライバはMSが作ってるんだぜ?

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

結局プログラマがどれだけ局所化を行えるかだろうね

78デフォルトの名無しさん2009/07/01(水) 14:42:50
>>77
3Dは転送する情報量は頂点座標だけなんだからCPUより早いのは当たり前でしょ
CPUのネックはメモリ転送速度だって言ってるでしょ
大量のデータを計算するような用途ではどんな工夫をしようがCPUには勝てない

79デフォルトの名無しさん2009/07/01(水) 14:45:50
しかも分散処理する部分は複雑に作りこんでないから
計算してる間は描画が止まるからな
計算してる間は文句なしに画面描画が止まる
CPUだと計算負荷に応じて外も動くけど

80デフォルトの名無しさん2009/07/01(水) 14:51:59
>>78
だからそのCPUでは勝てない分野でGPUを有効活用しようっていうのがGPGPUでしょ

映像のエンコードしかり、ゲノムの解析しかり超大量のデータ処理を肩代わりしたり、
またはAIなどの人工知能やMSのProject Natalみたいなものを実現するため、とか

81デフォルトの名無しさん2009/07/01(水) 14:57:20
>>79
だからGPUの仮想化とかマルチタスク処理とかがあるんでしょう

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

GPUでは小回りが利かない部分を管理するのがCPUの得意分野

82デフォルトの名無しさん2009/07/01(水) 17:58:11
>>80
だから今の構造だとCPUでは勝てない分野が3Dポリゴンの描画しかないのw

83デフォルトの名無しさん2009/07/01(水) 17:59:09
>>81
>>GPUでは小回りが利かない部分を管理するのがCPUの得意分野

現状と何も変わらない

84デフォルトの名無しさん2009/07/01(水) 18:03:26
本来ならGPUの機能はCPU内部にあるべきだが、
IBMやINTELはサーバとか大規模計算方面ばかり気にして3Dとかグラフィックとかを軽視していたから、
見るに見かねた人がGPUなんてものを作ったんだよね。

85デフォルトの名無しさん2009/07/01(水) 18:04:59
GPUって、本質的に見たらやってることはCPUと変わらないのに、
CPUとバスを経由して通信している分無駄があるんだよね。
だから将来的にGPUはCPUに飲み込まれるのが健全だと思うね。

86デフォルトの名無しさん2009/07/01(水) 18:11:33
行列積とか倍精度でもGPUの方が速いだろ。

87デフォルトの名無しさん2009/07/01(水) 18:23:10
>>86
そういう処理をするCPUの命令の一つにしてしまえば良い。

88デフォルトの名無しさん2009/07/01(水) 18:44:55
>>86
だから計算対象のデータをGPU側に引き渡してる間にCPUで計算出来るっつー話だわな

89デフォルトの名無しさん2009/07/01(水) 18:47:34
>>88
いや、まぁ実際にそういうことが多いわけだけど、俺が言いたいのそうじゃなくて、
GPUをCPUに統合するのが健全だと言っているだけであって・・
夢見がちな俺の願望でしかないわけだが。

90デフォルトの名無しさん2009/07/01(水) 21:55:32
>>89
今その方向に向かっているな。
AMDそのためにATIを買ったんだし、GPU専業のNvidiaは焦っている。

91デフォルトの名無しさん2009/07/01(水) 22:00:36
ハードだけ買ってもOpenCLはじめソフトがgdgd
このままだとIntel最強ってゆー何時もの結論で終了する

92デフォルトの名無しさん2009/07/02(木) 01:07:12
マカーとして言わせてもらえばQuickTimeとAdobe CSくらいが対応してくれれば対応アプリとしては十分な気がするんだよな
OpenCLが一番活用できそうなのって結局画像動画関連だし
それにCoreImageやCoreVideoがCPUでも動いたようにOpenCLもCPU上で動かせるから未来がどっちに転んでも技術としては問題ないと思う

93デフォルトの名無しさん2009/07/02(木) 01:20:12
夜のお供に漫画ビューアにもな。

94デフォルトの名無しさん2009/07/02(木) 10:11:18
画像ビューアはCPUで処理したほうが速いだろ

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

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

>>92
Adobe CS4 はすでに CUDA や ATI Stream に対応しているから
下位互換でしかない OpenCL に対応する意味は余り無い。

95デフォルトの名無しさん2009/07/02(木) 12:51:12
DCのデモでも、CPUより早く動かすの苦労してたよ。
データ数が半端無く多くないとCPUを上回れない。

96デフォルトの名無しさん2009/07/02(木) 12:56:37
茸の左をひょいひょい躱した粟生と
リナレスの鬼速ジャブ…

この対決は興味深いぜ

97デフォルトの名無しさん2009/07/02(木) 16:12:28
CPUとは別に画像処理などに有用なコプロセッサが1つ
PCやMacで眠っているからそれも使おうって方向でいい。

98デフォルトの名無しさん2009/07/02(木) 19:12:15
昔はコプロって別売りだったな。

99デフォルトの名無しさん2009/07/02(木) 20:12:40
GPUの得意分野は浮動小数点数のベクタ演算だからなおさらコプロちっく

100,,・´∀`・,,)っ-○○○2009/07/02(木) 20:52:46
Larrabeeって次世代の8087って位置づけなんだろうな

101デフォルトの名無しさん2009/07/03(金) 02:14:02
数年後にはCPUに統合されるのがわかりきっているけどな

102デフォルトの名無しさん2009/07/03(金) 02:15:26
そのさらに数年後には独立されるだろう

103デフォルトの名無しさん2009/07/03(金) 02:58:35
CPUだけじゃ最先端3Dレンダリングを処理しきれないwって理由で、か

104デフォルトの名無しさん2009/07/03(金) 04:19:19
画期的なメモリバス技術でも開発されれば統合プロセッサのまま進化を続けるんじゃないかな

105デフォルトの名無しさん2009/07/03(金) 06:38:34
ワイドテレビでこんなに広く!→縦が伸びてこんなに広く!→ワイドになって(ry

106デフォルトの名無しさん2009/07/03(金) 22:50:21
CPUはある意味CELLの行く道が正しかったのか?

107デフォルトの名無しさん2009/07/03(金) 22:56:22
>>105
ますます家が狭くなるがな

108デフォルトの名無しさん2009/07/04(土) 15:37:52
OpenCL自体は普通にマルチスレッドのフレームワークに使えるから期待してるんだけど
出来ればクラスタリングとかにも対応して欲しいが

109デフォルトの名無しさん2009/07/04(土) 17:43:55
OpenCL って Direct3D のシェーダ言語同様にドライバによる
インタプリタだと認識しているけど並列計算のフレームワークとして使えるの?

OpenMP や Grand Central Dispatch じゃダメなのだろうか

110デフォルトの名無しさん2009/07/04(土) 18:47:02
演算シェーダ相当の抽象化レイヤと考えて問題ないよ
汎用的な並列計算はOpenMPやGCDの方が適切。そのままマルチコアCPUをターゲットにした方がいい
OpenCL適用できる分野は「並列計算」の中のさらに「GPUに適した」特殊なアルゴリズム分野になる
とにかくデータを小さなブロックに小分けして、延々と同じ処理繰り返すようなの

111デフォルトの名無しさん2009/07/04(土) 19:29:33
標準化されてることに意味がある

112デフォルトの名無しさん2009/08/06(木) 17:03:14
AMD、業界初のx86 CPU対応OpenCLソフト開発プラットフォームを無償提供
ttp://pc.watch.impress.co.jp/docs/news/20090806_307447.html

米AMDは5日(現地時間)、ATI Stream SDK v2.0 Beta Programの一環として、
新たに「OpenCL for CPU Beta」を無償で提供開始すると発表した。

x86 CPUに対応する業界初のOpenCLソフト開発プラットフォーム。
これを利用することにより、GPUとマルチコアCPUの両方を活用した並列プログラムの開発が容易になるという。

OpenCLは、Khronos Groupが提供するパラレルコンピューティング用オープンスタンダード。
同グループにはNVIDIA、Intel、Appleなども加盟している。


113デフォルトの名無しさん2009/08/07(金) 13:07:44
やっと動きが

114デフォルトの名無しさん2009/08/08(土) 11:10:40
これRADONには対応しとらんのん?

115デフォルトの名無しさん2009/08/08(土) 11:13:29
ラドン…だと?新手の北朝鮮ミサイルか?

116デフォルトの名無しさん2009/08/08(土) 12:03:20
恐竜だろ

117デフォルトの名無しさん2009/08/08(土) 15:02:36
風呂かとおもった

118デフォルトの名無しさん2009/08/08(土) 19:53:25
サンプル動かしてもGPU全然関係ないな(´・ω・`)
ATI StreamなのになんでCPUだけなんだよ

119デフォルトの名無しさん2009/08/08(土) 22:02:49
AMDの対応がまだなんじゃね。

120デフォルトの名無しさん2009/08/08(土) 23:16:43
ていうか Radeon の OpenCL ランタイムドライバが出来ていないとか?

121デフォルトの名無しさん2009/08/11(火) 09:48:44
CPU対応は優先度が一番高いんだろう
GPUはチップ毎に対応しないといけないし

CPUとGPUの比較をしたり両方使って同時処理するのにも必要

122デフォルトの名無しさん2009/08/15(土) 07:49:11
俺予想
OpenCLが動くということはnVidiaと同じ土俵でパフォーマンスが比較できるようになる。
現行のRADEONだとOpenCLでパフォーマンスが出ない。
nVidiaと比較されるのがいやなので今はドライバを出さずに
次のGPU(OpenCL向け機能拡張入り)を出すタイミングでドライバを出す。

123デフォルトの名無しさん2009/08/15(土) 19:05:49
>>122
萩原Obj-C(1.0のやつ)をみながらやっているもので。
Tiger使っているので2.0へはまだいけない。

124デフォルトの名無しさん2009/08/15(土) 19:07:04
ごめん間違えた。

125デフォルトの名無しさん2009/08/17(月) 10:37:46
>>122
DX11 Compute Shaderなら(機能は限定されるだろうけど)DX10以降のGPUで動くよ

126デフォルトの名無しさん2009/08/18(火) 00:53:33
はやくCLとDX10こねーかなー

127デフォルトの名無しさん2009/08/18(火) 00:54:40
11だった どんだけwktkして待ってるとおもってんだ

128デフォルトの名無しさん2009/08/24(月) 13:36:00
http://pc.watch.impress.co.jp/docs/news/20090824_310402.html
先にDirectComputeの方がきちまった

129デフォルトの名無しさん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

130デフォルトの名無しさん2009/08/25(火) 07:51:29
AMDの場合、1月頃に出したGPUにも"OpenCL ready"ってスペック表にあったんだよな・・・(遠い目)

131デフォルトの名無しさん2009/08/25(火) 07:54:26
実際出してもまともに動かないATI

132デフォルトの名無しさん2009/08/25(火) 11:24:47
Snow Leopard(10.6)が28日に出るらしいぞ。
技術仕様の中に
「OpenCL
以下のグラフィックカードまたはグラフィックプロセッサのうち、いずれかひとつが必要です。
# ATI Radeon 4850、Radeon 4870」
ってあったから、こっち優先して他のは後回しにされてんじゃね?

133デフォルトの名無しさん2009/08/25(火) 11:52:01
AMDのOpenCL入門記事「Introductory Tutorial to OpenCL」
ttp://developer.amd.com/gpu/ATIStreamSDK/pages/TutorialOpenCL.aspx

134デフォルトの名無しさん2009/08/25(火) 21:19:55
>>132
ないない。
ATIのMac版は常に後。再生支援すらまともじゃない笑えない現実がある。

135デフォルトの名無しさん2009/08/25(火) 21:55:12
再生支援とは別としてOpenCLは力を入れてくるんじゃないか

136デフォルトの名無しさん2009/08/26(水) 08:51:22
>>135
ATIのOpenCL対応GPUが>>132の二つだけということからも極めて怪しい。

137デフォルトの名無しさん2009/08/26(水) 23:19:23
? よくわからんが後回しどころか4800シリーズの二つは既に対応してるんだよな?

138デフォルトの名無しさん2009/08/27(木) 00:17:44
後一両日中には分かることさ

139デフォルトの名無しさん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

140デフォルトの名無しさん2009/08/28(金) 20:25:46
だれかOSXで試してみたやつおる?

141デフォルトの名無しさん2009/08/29(土) 07:02:33
OSXでOpenCL使っているアプリが無い

142デフォルトの名無しさん2009/08/29(土) 08:49:38
ATIは宣伝文句ばっかりでやることはごみ
まさかこんな最新技術を扱うスレでRADEONなんて買ってる情弱はいないと思うが

143デフォルトの名無しさん2009/08/29(土) 10:25:26
>>141
そっちは今からじゃね?
次のiLife系列で対応してきそうだし

144デフォルトの名無しさん2009/08/29(土) 14:00:11
QTXがたいおうしていなかったっけ?

145デフォルトの名無しさん2009/09/05(土) 03:48:17
対応したところで現在のところ95%のMacに載ってるGPUは使い物にならない性能
Mac ProですらGT120 (9500GT相当) だからな

146デフォルトの名無しさん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の実装が糞という話が・・・

147デフォルトの名無しさん2009/09/12(土) 22:51:30
>>146
世に出すってレベルじゃねーな。何かの間違いだとは思うが。

148デフォルトの名無しさん2009/09/13(日) 02:25:23
つ AMD StreamSDK v.20 「ベータ」

149デフォルトの名無しさん2009/09/13(日) 10:34:43
1.0すらβな件

αの間違いじゃねーのか?w

150デフォルトの名無しさん2009/09/13(日) 14:21:31
γはまだ〜?

151デフォルトの名無しさん2009/09/13(日) 18:38:32
>>146
OpenCLって単に実行ファイルを一つにできるというだけで
結局各社のCPUなりGPUなりの特性にあったコードを別々に書かなくちゃ性能出ないの?

152デフォルトの名無しさん2009/09/13(日) 22:39:40
うん
CPUでも性能出そうと思ったら、CPUごとに最適化しないと駄目だし、しょうがないんじゃね

153,,・´∀`・,,)っ-○○○2009/09/13(日) 22:44:14
曲がりなりにもC/C++が使えるCellがあんなことになってたりするけど
ハードウェアの特性の違いまでは言語・フレームワークで吸収できるものではありません。
OpenCLの実態も、まあお察し下さい。

154,,・´∀`・,,)っ-○○○2009/09/13(日) 22:47:13
あと、Appleの実装はともかくAppleの力の及ばないWindowsやLinuxまで
NVIDIAとATIのOpenCLコードにバイナリレベルの互換性があるとは限らないぞ
OpenGLが各社独自拡張によってカオスなことになってるようにね。

155デフォルトの名無しさん2009/09/13(日) 22:51:24
OpenCLの互換性はソースレベルだろ。
それも最低限の仕様だけを使ったものなら
どれでも動くというレベル

ハードの特性を取得して、場合わけするなど
OpenGLとほぼ一緒

156デフォルトの名無しさん2009/09/13(日) 23:09:02
それじゃ結局各社が出してるGPGPU環境使ってそれぞれに開発した方が効率よくない・・・?

157デフォルトの名無しさん2009/09/13(日) 23:21:12
それでも同じコードで動くかどうかは重要だよ。
必ずしも全部を最適化する必要なんてないんだし。

158デフォルトの名無しさん2009/09/13(日) 23:57:09
でもカーネルのソース読み込んでオンライン・ビルドってのがなー
この仕様だと製品版でOpenCL対応しましたーって会社でないんじゃないかな??

159デフォルトの名無しさん2009/09/14(月) 10:56:56
とりあえず標準仕様に合わせて書いておけば動くというのは心強いぞ。
現状Intelコンパイラの自動ベクトル化とか糞過ぎるから、今後こういうところで頑張らないと計算分野でGPUに水をあけられる可能性がある。
AMDは…お察し下さい。

160デフォルトの名無しさん2009/09/14(月) 17:57:33
将来のハードの進歩でって投げ技が使えていいんじゃないか?

161デフォルトの名無しさん2009/09/14(月) 21:00:45
>>155
>ハードの特性を取得して、場合わけするなど
そういった特性とか最適化を担っているのがLLVM。

OpenCL→LLVM→

162,,・´∀`・,,)っ-○○○2009/09/14(月) 21:30:32
LLVM(笑)

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

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


163デフォルトの名無しさん2009/09/15(火) 00:12:47
何でもいいからWindowsで動く処理系きてくれー

164デフォルトの名無しさん2009/09/15(火) 00:33:45
何でもいいなら半年ほど前からNVIDIAが出してる

165デフォルトの名無しさん2009/09/15(火) 00:52:23
>>162
> 未知のアーキテクチャに対応できるのはハードを知り尽くした人間だけだ。
> ハード作った人間が対応投げてたら世話無いわ。

あり得ない。コンパイラ技術を知らないアセンブラ人間?

166デフォルトの名無しさん2009/09/15(火) 01:14:34
団子には何言っても主張を曲げないよ
無駄な煽りでスレが荒れるだけ、NG推奨

167デフォルトの名無しさん2009/09/15(火) 01:47:02
両方とも言ってる事がおかしい

168デフォルトの名無しさん2009/09/15(火) 03:56:13
OS X ハッキング! 335 ついに姿を現した「OpenCL」、その実力
http://journal.mycom.co.jp/column/osx/335/index.html

169,,・´∀`・,,)っ-○○○2009/09/16(水) 00:55:52
>>165
コンパイラはどうやってコード吐くんですか?
どの命令とどの命令が並列実行出来るとかって情報は誰が持ってるんですか?

ああ、今時Javaでもx86のJITフレームワーク触れますよ

170,,・´∀`・,,)っ-○○○2009/09/16(水) 01:03:34
オープンソースの力を借りるのはある程度動くものができてからの話よ。
CPUだととんでもなく遅いです、GPUだと動きません、じゃ、話にならないでしょ。
そもそもStream 1.0の正式版を出さないうちに2.0のβ(笑)をでっちあげる神経を疑う。

ハードだけ出してソフト丸投げでは、どっかのCell(笑)と同じじゃないの。
それより更に悪い。

171デフォルトの名無しさん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みたいなのは
ハードごとに用意しないといけない

それすら満足に作らないまま大風呂敷だけ広げてるから
馬鹿にされるんだって

173デフォルトの名無しさん2009/09/17(木) 01:35:08
はあ?

174デフォルトの名無しさん2009/09/17(木) 01:41:05
はぁ・・・

175デフォルトの名無しさん2009/09/18(金) 00:20:38
はぁ…っ

176デフォルトの名無しさん2009/09/19(土) 00:31:25
物分りが悪すぎるぞ
お前のパソコンでLLVMが動くのはLLVMにx86のコードジェネレータが組み込まれてるからであって
コードジェネレータが用意されてなければ動かしようが無い。

コードジェネレータが用意されて無いなら、0からでもそれを作らないと話にならんのよ。
AMDは用意して無い。
だからGPUで動かない。
当然の話だ。

177デフォルトの名無しさん2009/09/19(土) 00:39:22
してないの?
Q3中にGPU対応バージョン公開
Q4に正式版公開と公言しているのに。

178デフォルトの名無しさん2009/09/19(土) 03:27:54
当然もなにも、当たり前過ぎて。

179デフォルトの名無しさん2009/09/19(土) 09:38:17
この馬鹿は俺らを笑い殺すつもりか?

180デフォルトの名無しさん2009/09/23(水) 08:36:49
つまりベンダーは OpenCL ランタイムが載ったドライバ開発を急げと?

181デフォルトの名無しさん2009/09/24(木) 12:51:14
GPUメーカーに作らせたものなど性能を良く見せるためにCPUが遅くなるように細工してるに決まってるだろ

182デフォルトの名無しさん2009/09/24(木) 17:48:12
細工っていうか手を抜く

183デフォルトの名無しさん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

185デフォルトの名無しさん2009/09/29(火) 23:02:32
>>184
CUDAより数倍遅いんだけど

186デフォルトの名無しさん2009/09/29(火) 23:03:22
俺に言われてもしらんがな

187デフォルトの名無しさん2009/09/29(火) 23:05:19
と思ったがN-Bodyのパーティクル数が違っただけだった

188デフォルトの名無しさん2009/09/30(水) 01:07:29
SDKぶっこんでみたら、DirectCompute用も入ってた

189デフォルトの名無しさん2009/09/30(水) 06:28:55
今OpenCLに対応してるのはヌビディアだけか

190デフォルトの名無しさん2009/09/30(水) 07:41:20
まあいつも通りの事だ
AMDは毎回ポーズだけ

191デフォルトの名無しさん2009/09/30(水) 12:47:44
openclって標準化されてるとはいうけど
NVIDIAでコンパイルしたバイナリをCPUやATIで動かせるようになるんかな?
それぞれ別々にバイナリを作って配布することになるんかな?

192デフォルトの名無しさん2009/09/30(水) 13:41:09
>>191
デバイス毎に定数を調整するとか実装を調整するとか必要になる希ガス。
なので、仮に一つのバイナリだとしても中身は別物になりそう。

193デフォルトの名無しさん2009/09/30(水) 20:31:44
>>191
だから無理だって

194デフォルトの名無しさん2009/09/30(水) 23:24:46
>>191
バイナリファイルにコンパイルできるのか
ずっとHLSLみたいに実行時コンパイルだと思っていた

195デフォルトの名無しさん2009/10/01(木) 00:23:16
>>194
どうもそうらしい

196デフォルトの名無しさん2009/10/01(木) 01:06:26
バイナリ状態でロードして実行も出来るし、実行環境で実行直前にコンパイルすることもできるよ。

197デフォルトの名無しさん2009/10/01(木) 10:06:41
>>196
そのバイナリってのは中間コードみたいなものなの?
それともハードウェア依存の完全なバイナリなの?

198デフォルトの名無しさん2009/10/01(木) 21:15:46
EarFluid: Experimental QC OpenCL iTunes visualizer
ttp://www.mutantquartz.com/?p=40

199デフォルトの名無しさん2009/10/01(木) 23:39:11
>>197
バイナリはハード依存でしょ。
Nvidiaが内部的に中間コード使ってるらしい?
でも当然AMDと互換性はない。

200デフォルトの名無しさん2009/10/02(金) 10:33:36
CUDAとOpenCL、言語によってパフォーマンスに差は出ますか?

201デフォルトの名無しさん2009/10/02(金) 19:20:28
>>200
現状OpenCLが桁違いに遅い。。。

202デフォルトの名無しさん2009/10/02(金) 21:15:18
>>199
llvmの中間コードを使っているのであれば
ポータブルではない。

203デフォルトの名無しさん2009/10/03(土) 00:38:14
>>200
最終的には同じになる、ってOpenCLプログラミングセミナーでnvidiaの偉い人が言ってた。

204デフォルトの名無しさん2009/10/03(土) 02:31:57
NVIDIAのOpenCLドライバ使ってるんだけど、カーネル実行って同期処理になってない??
キューに入れてから戻るまで時間がかかりすぎで、マルチタスク的な動作が出来ないんですが。。。

>>203曰く、ちゃんと対応されるのかな?
それとも、俺がOpenCLの仕様を読み間違えてるだけ?(汗

205デフォルトの名無しさん2009/10/03(土) 13:40:35
>>198
GeForce9400だと5fpsくらいしか出ないけど面白いね
CPU負荷が全く上がらない

206デフォルトの名無しさん2009/10/06(火) 11:00:59
OpenCLはサザビーでも使えるの?

207デフォルトの名無しさん2009/10/06(火) 11:25:46
エゴだよそれは

208デフォルトの名無しさん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

210デフォルトの名無しさん2009/10/10(土) 06:42:05
そのうちオライリーが一冊本を書くんじゃなかろうか
日本語翻訳版が出るかどうかは知らないけど

211デフォルトの名無しさん2009/10/10(土) 11:48:34
CUDAとATI Stream SDKとOpenCLの関係がいまいち分からんけど、
OpenCLの中のオプションとしてCUDAとかATI Stream SDKとか位置づけされるってことなのかな。

今CUDA用に記述してあるソースコードも、OpenCL用にちょこっと書き換えればAMDのGPUでも、
他のOpenCLに対応したGPGPUでも動作するってこと?

212デフォルトの名無しさん2009/10/11(日) 03:22:25
>>208
いやいや、CUDAの動作はそれであってるのけど、それはOpenCLの仕様違反だろ?
それに画像処理するならカーネルループとかあり得ないし。カーネル実行のオーバーヘッドの事を理解していないとしか思えないな。

213デフォルトの名無しさん2009/10/11(日) 10:06:30

214デフォルトの名無しさん2009/10/11(日) 18:47:07
>>212
物理的にGPUがマルチタスクに対応してないんだからどうしようもないな
オーバーヘッドも含めてGPU処理の性能の限界が現時点でそうなんだからしょうがない

215デフォルトの名無しさん2009/10/19(月) 21:09:31
>>213
思ったんだけど、もろにNVIDIA寄りの内容だよね

216デフォルトの名無しさん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

217デフォルトの名無しさん2009/10/22(木) 01:41:00
>>211
違う。

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

CUDA は like C、ATI Stream は Book+、OpenCL は OpenCL C という別言語になる。
プログラマは自分の開発環境などに合わせた好きな言語が選べるってだけだ。

218デフォルトの名無しさん2009/10/22(木) 12:21:11
新iMacのGPUがRadeonなんだが、OpenCLの対応はどうなの?
SDKあるんだっけ?

219デフォルトの名無しさん2009/10/29(木) 23:09:47
なんか在庫買いあさったらしいからこれから最適化進めてくるんじゃない

220デフォルトの名無しさん2009/10/31(土) 11:17:42
誰かこの前、秋葉原で開催されたOpenCLセミナー行った人いる?
いたら、簡単な感想聞きたいです。

221デフォルトの名無しさん2009/11/01(日) 01:05:25
>>220
いったよ
・nVIDIAの人「Fermiアーキテクチャは凄いぞ!」まぁ凄いけどさ。
・FIXSTARSの人のプログラミング入門は参考になったけどあの内容だけだと即書くのはキツイ。
 最後には「ちゃんとやりたい人向けに終日の有料教室やってるよ!」だったしw
・Appleの話はOpenCLじゃなくて殆どCocoaの話…
・Dellは殆ど営業トーク

内容的にはそんなに深くなかったかなー…って感じ。

222デフォルトの名無しさん2009/11/03(火) 04:42:31
オープンクルとオープングルって何か共通点はあるの?

223デフォルトの名無しさん2009/11/03(火) 08:17:17
釣られないぞとつぶやいたそこのあなた。
既に釣られてますよ。

224デフォルトの名無しさん2009/11/05(木) 12:25:52
OpenCLはCPUのSIMD命令を置き換えられるようなものになるといいな
そのうちCPUにGPUも統合するんだからさ

225デフォルトの名無しさん2009/11/05(木) 19:47:54
バイナリが環境依存なのがなあ。
CUDAみたいに、中間コードがあればいいのに。

226デフォルトの名無しさん2009/11/05(木) 19:57:30
>>220
基本は221の通りだが、フィックスターズの人が1月に本来出すとか言ってた

227デフォルトの名無しさん2009/11/23(月) 18:23:10
ttp://www.alphaworks.ibm.com/tech/opencl

228デフォルトの名無しさん2009/11/23(月) 18:28:39
POWER6とcellもopenCLに対応

229デフォルトの名無しさん2009/11/23(月) 19:06:30
いろいろ対応してくれるのはいいけど、カーネル・ソースが第三者に丸見えなのは何とかならないの?

230デフォルトの名無しさん2009/11/23(月) 23:57:57
暗号化すればいいじゃない

231デフォルトの名無しさん2009/11/24(火) 05:03:17
見られて困るほど複雑なアルゴリズムはカーネルだけじゃ作れないから大丈夫だw

232デフォルトの名無しさん2009/11/27(金) 22:27:11
ATI Streamを落としてきたけどマニュアルないのな。
KronosにはCのはあるけどC++のはないね。
せっかくStreamにC++のサンプルがあって便利そうなのに。

233デフォルトの名無しさん2009/11/27(金) 23:31:48
とりあえず今持ってるコードを

FORTRAN→C→OpenCL C

って感じで進めてみるかなー

234デフォルトの名無しさん2009/11/27(金) 23:35:20
独り言は壁に向かってしてくれ

235デフォルトの名無しさん2009/11/28(土) 17:26:06
(´・ω・`)ショボーン

236デフォルトの名無しさん2009/12/05(土) 23:25:28
最初の世代のLarrabeeは一般には降りてずにHPC専業でいくようだ
たのしみにしてたのに(´・ω・`)

237デフォルトの名無しさん2009/12/13(日) 19:17:07
S3のGPUでOpenCL開発するためのSDKってどこ?

238デフォルトの名無しさん2009/12/17(木) 16:18:02
質問です

OpenCLを使ったプログラムのバイナリはRadeonでもGeForceでも使えますか?

239デフォルトの名無しさん2009/12/17(木) 17:35:20
まずは実際にやる事だ

240デフォルトの名無しさん2009/12/18(金) 00:39:28
ソースでも中間コードでもない、ただのバイナリをなんだと思っているんだ

241デフォルトの名無しさん2009/12/23(水) 20:27:30
フィックスターズから本出るよ
http://www.amazon.co.jp/dp/484432814X

242,,・´∀`・,,)っ-○○○2009/12/23(水) 20:55:25
三木聡しゃちょはんて何処担当してるの?

243デフォルトの名無しさん2009/12/24(木) 20:20:23
>>241
>著者からのコメント
>"The free lunch is over."

そんなこといわれてもな・・・

244デフォルトの名無しさん2009/12/26(土) 01:03:24
>>238
ソースレベルの互換性しかないので、バイナリは非互換。
ただしランタイムにカーネルのソースをコンパイル出来るので、恰もバイナリ互換があるかのようにコーディング出来る。
とはいえ、そうするとCELLみたいに特殊な構造だとパフォーマンスを発揮するようにコードを書くのがたいへんだろうけど。

245デフォルトの名無しさん2009/12/26(土) 13:46:36
Radeonの4650で遊んだ感じでいうとCellのが楽だな

246デフォルトの名無しさん2009/12/28(月) 09:34:55
>>242
そこには触れてやるな。みんなおかしいとは思っているがしゃちょーには逆らえない

247デフォルトの名無しさん2009/12/28(月) 19:37:20

248,,・´∀`・,,)っ-○○○2009/12/30(水) 03:30:14
今年(来年?)はプログラミングコンテスト開かないの?

249デフォルトの名無しさん2010/01/01(金) 10:53:23
うっせー糞して寝ろ

250デフォルトの名無しさん2010/01/05(火) 20:45:23
どっちかっていうと、OpenGL内部のメモリ内容を直接書き換えれるのが大きいな。
描画内容に変更加えて再描画とか、データの高速可視化とか。

個人的にCPUに付加かけずにリアルタイム可視化ができるのがいいな。

251デフォルトの名無しさん2010/01/18(月) 19:22:26
OpenCL並列プログラミングって本が25日に出るみたい。

252デフォルトの名無しさん2010/01/18(月) 22:04:56
しってるしってる、と思ったらフィクスターズのやつとは別か
ソースキボンヌ

253デフォルトの名無しさん2010/01/18(月) 22:14:14
>>252
今日の日経の朝刊1面下の広告

254デフォルトの名無しさん2010/01/18(月) 22:18:22
出版社:カットシステム
著者:池田成樹
http://www.cutt.co.jp

255デフォルトの名無しさん2010/01/18(月) 22:19:55
JAL株5円まで来たか
いよいよ明日はクライマックス

256デフォルトの名無しさん2010/01/18(月) 23:48:45
うっせー糞して寝ろ

257デフォルトの名無しさん2010/01/19(火) 00:15:14
便秘で出ないっす

258デフォルトの名無しさん2010/01/19(火) 20:00:15
ケツに目薬をさすと便秘が治るという噂を聞いたことがある

259デフォルトの名無しさん2010/01/21(木) 15:08:18
最近GPGPUを始めようと調べ始めたのですが、
cudaとCLの違いって、CUDAはCPU部分もカーネル部分も混在したプログラムを書いてnvccが両者を分離してくれる、
CLはプログラマ自身が最初からCPU用とカーネル用とを分けてプログラムを書く
という認識でよいですか。

カーネルとかグローバルメモリとかの概念はほぼ一緒と考えてよいのでしょうか。
CLの方が拡張言語っぽくないのと共通規格な分気持ちがいいですが、カーネルのコンパイルとか引数設定を明示的にしないといけない分どんくさい感じですね。

260デフォルトの名無しさん2010/01/21(木) 15:14:41
OpenCLはまだまともに動かないからCUDAにしとけ

2612502010/01/21(木) 18:20:06
cudaとopenclの決定的な違い?

cudaはGPGPU
openclは計算機資源API
GPUに限らず、CPU,(故)Cell/BE,DSPチップ等の演算装置を汎用的な計算機資源として使うためのAPIがCL
GPUを使うならメモリ概念はCUDAとだいたい同じ。

完全にホストプログラムとカーネルプログラムおよび両者間通信を手作業で作らないといけないどんくささ(?)はあるものの
「メインプログラムはホスト実行で,計算機資源だけ別のハードウェアを使う」設計APIなので自由度はかなり高い

ただOpen○○のくせにMac10.6以外はまともに動く環境が少ないとか
JITコンパイルなので実行するまでソースのバグがわからない上に資料がまだ充実してないとか、
けっこうまだまだ問題も多い。
>>260の言う通り今やるならCUDAが良いと思うぞ。

2622592010/01/21(木) 18:49:08
セルとかララビーとかアムドが本気を出すとか色々可能性があるからCLの方がいいかなと思ってたけど
CUDAの方がいいのかな。
拡張言語ってのが言語仕様的にOpenMPあたりと干渉しそうなのもCLを考えていた要素なんだけど。

263デフォルトの名無しさん2010/01/21(木) 22:57:22
どっちもたいして変わらん どっちもやれ

264デフォルトの名無しさん2010/01/22(金) 18:58:59
OpenMPとOpenCLが干渉?
ホスト管理スケジューリングぐらいじゃねーの?

265デフォルトの名無しさん2010/01/22(金) 23:44:42
radeonでCUDAって出来ないの?

266デフォルトの名無しさん2010/01/23(土) 01:25:03
無理。Stream使え。
でも、技術デモ程度ではなく実用したいならゲフォ使え。

267デフォルトの名無しさん2010/01/23(土) 10:59:33
スレ違い

268デフォルトの名無しさん2010/01/26(火) 01:24:10
ふぃくすたのOpenCL入門買ったぞ、LinuxでSDKについてきたサンプルコードがコンパイルできなくて死んだ
っていうか普通にアルゴリズムの勉強してからやれクズ

269デフォルトの名無しさん2010/01/26(火) 01:27:54
二行目どういう意味?

270デフォルトの名無しさん2010/01/26(火) 05:29:18
268 said s/he was kuzu.

271デフォルトの名無しさん2010/03/10(水) 22:33:57
>>266
GPGPU目的だと、ATI<nVidiaなの?

272デフォルトの名無しさん2010/03/10(水) 22:52:32

273デフォルトの名無しさん2010/03/11(木) 20:16:16
CUDA(nVIDIA)/Stream(AMD) = GPGPU環境
OpenCL = 計算資源利用API ≠ GPGPU

GPGPUのみのなら別スレへ。
とりあえずOpenCL<CUDA(nVIDIA)/Stream(AMD)
かつ開発環境の整備具や資料面ではGPGPUでもnVIDIAに軍配が上がるのが一般論

274デフォルトの名無しさん2010/03/12(金) 01:13:55
CUDAを使った実績はかなりあるけど、
OpenCLをつかってパフォーマンスが上がるって結果はあるのか?

275デフォルトの名無しさん2010/03/12(金) 13:56:03
FLOPSのベンチとか調べればちらほら(程度は)ある。ただFLOPSが高くても転送コストが重かったりする。
実行結果をそのままOpenGLとかで可視化するとか転送コストを挟まない場合には向いてる。レイトレとか。
ただ開発/デバグにかかる時間と労力はCUDAと比較にならないと思うぐらい悪い。慣れれば別。

俺はOpenCL好きだけどね。

276デフォルトの名無しさん2010/03/13(土) 13:19:47
昔の超不安定なRadeonのせいでRadeonを買うことにトラウマがあるから
GPGPUもGeForceしかしたくない

277デフォルトの名無しさん2010/03/13(土) 21:40:13
いまノートPCでRadeonHD3200
OpenCL使ってみたいけど、使える環境にするにはPC一式を新しく買うしかないよね?orz

278デフォルトの名無しさん2010/03/13(土) 22:12:04
ATIStream版OpenCLのCPUデバイスで我慢すれば

279デフォルトの名無しさん2010/03/14(日) 04:36:42
ATI、各GPUのドライバまで手が廻らな過ぎ。

280デフォルトの名無しさん2010/03/14(日) 10:20:38
正直どこのベンダもOpenCLにそんなに力入れてない気がしてきた。。。

281デフォルトの名無しさん2010/03/14(日) 12:58:43
いつまでnVidiaに夢見てんだよ

282デフォルトの名無しさん2010/03/14(日) 15:29:40
GeForce GT 240 でOpenCL SDK V2.3のサンプルが動かない。
というかSDKでビルドは成功するが全然動かない。
ドラバは最新の 196.21
GPU-Z.0.3.9で確認するとOpenCLはチェックが入っている。

283デフォルトの名無しさん2010/03/14(日) 15:41:44
現状CUDAで十分な気がする

284デフォルトの名無しさん2010/03/14(日) 18:08:04
CUDAもOpenCLもこのまま消えそうだね

285デフォルトの名無しさん2010/03/14(日) 21:15:50
ほかで何が残りそうなの

286デフォルトの名無しさん2010/03/14(日) 23:21:11
調べてないけど、OpenGL 4は、OpenCLと連携するようになってるらしいから
徐々にOpenCLも使われるようになっていくんじゃない

287デフォルトの名無しさん2010/03/15(月) 18:48:08
POWERVR SGX545を採用したモバイル機器での普及の方が先かも知れない。

288デフォルトの名無しさん2010/03/15(月) 20:09:26
>>286
既にOpenGLと連携できるよ。頂点バッファとかテクスチャとかだからGL2.x以降とかな?

289デフォルトの名無しさん2010/03/18(木) 17:36:26
NVIDIAのOpenCLのダウンロードから一通りダウンロードしてきたけど、
コンパイルとかは、どのコマンドを使うの?
OSはLinuxです。

290デフォルトの名無しさん2010/03/18(木) 19:40:13
何のコンパイル?

291デフォルトの名無しさん2010/03/20(土) 03:12:14
>>290
OpenCL file

292デフォルトの名無しさん2010/03/20(土) 05:50:48
nvcc

2932902010/03/20(土) 08:02:27
fileてのが何かよくわからんが
NVIDIAサンプルに含まれるホスト側のCソースなら/OpenCL/makeでいけるかと。
カーネル用のCLソースならclBuildProgram()関数でどうぞ。

294デフォルトの名無しさん2010/03/20(土) 17:29:53

295デフォルトの名無しさん2010/03/20(土) 18:17:46
Mac OS X 10.6を手に入れたんだけど、OpenCLの使い方を教えてください
とりあえず、ドライバだけは入れました。

296デフォルトの名無しさん2010/03/20(土) 19:11:03
ソース書く→コンパイル→実行→happy

297デフォルトの名無しさん2010/03/20(土) 20:03:11
>>295
ttp://developer.apple.com/

298デフォルトの名無しさん2010/03/20(土) 20:08:14
あと
ttp://developer.apple.com/mac/library/navigation/index.html?section=Resource+Types&topic=Sample+Code#section=Frameworks&topic=OpenCL

299デフォルトの名無しさん2010/03/21(日) 13:14:54
LinuxでOpenCLやってるんだけど、倍精度は使えへんの?

300デフォルトの名無しさん2010/03/21(日) 14:28:18
282だけど
CUDA 3.0 Downloads
で上手くいきました。
ありがとう。>294

301デフォルトの名無しさん2010/03/22(月) 12:45:47
Linuxと倍精度になんの関係が

302デフォルトの名無しさん2010/03/22(月) 13:16:38
CL C言語での倍精度浮動小数点はGPUベンダーにより任意サポート

303デフォルトの名無しさん2010/03/26(金) 00:59:44
よくわからんけど、倍精度を有効にするスイッチとかあるの?
CUDAだとsm13だけど

304デフォルトの名無しさん2010/03/26(金) 08:06:27
>>303

あるよ

対応しているかは実装依存だけど。

http://www.khronos.org/opencl/sdk/1.0/docs/man/xhtml/cl_khr_fp64.html

305デフォルトの名無しさん2010/04/01(木) 22:53:00
struct {
int I;
} tA;

struct {
tA * pa;
} tB;

__kernel void Func (__global tB *b) {
int idx = get_global_id(0);

int B = b[idx].a->I;
}

みたいにすると、int B に値が入らないのってなんで?
書き方が悪いのかな?

教えてエロい人。

306デフォルトの名無しさん2010/04/02(金) 00:52:35
>>305
君にOpenCLは向いてないよ。。。

ちなみに
b[idx].pa の参照先が不定もしくは管理領域外だと思われ

通常であればアクセス例外

307デフォルトの名無しさん2010/04/02(金) 01:07:15
これはコンパイル通るのか?

308デフォルトの名無しさん2010/04/02(金) 02:12:02
tAの実体はいずこ?
tBのメンバpaはポインタだぞ。
ポインタは実体ではないぞ。
やるなら、

__kernel void Func (__global tB *b) {
int idx = get_global_id(0);
tA C;
C.I = 1;
b[idx].pa = (tA *)(&C);
int B = b[idx].pa->C;
}

じゃないか?
OpenCLより、ポインタを先に勉強した方がいいぞ。

309デフォルトの名無しさん2010/04/02(金) 02:33:18
>>308
あ、間違えた。
int B = b[idx].pa.I;
だった。
そもそも根本的におかしいね。
悪い、俺もポインタの勉強が必要だわ。
それ以前に構造体の勉強が必要だ。

310デフォルトの名無しさん2010/04/02(金) 08:10:34
305だけど、306の話で知りたいことはわかった。
変な質問でごめんね。みんなありがとう。


311デフォルトの名無しさん2010/04/23(金) 01:47:27
ラデですまんが、vista64でATI Stream 2.01にしたらopen CLのサンプルがVC++ Expressでコンパイルできても動かない(clGetPlatformIDsが-1001を返す)んだけど、こんなことなた人います?
2.0bだと動いたのだが。
Platform SDKの64bitコンパイラを使えばちゃんとサンプルも動かせるけど、MS流儀のコンパイルオプションやmakefileの書式が面倒くさい・・・
LinuxのCUDA機を購入する前にPCでOpen CLのお勉強をしようと思ったのにつまらんところで時間をくってしまった。

312デフォルトの名無しさん2010/04/23(金) 11:34:25
SDKサンプルのoclBandWidthTestやったらホスト・デバイス間で5300MB/sくらいだったんだけど
この数値ってグラボだけじゃなくマザーとメインメモリも影響するよね?
GPGPUの処理がハードウェア的にどう依存してるのか良くイメージ出来てないんだけど
i7のQPIとかは影響するの?

313デフォルトの名無しさん2010/04/23(金) 12:28:21

314デフォルトの名無しさん2010/04/24(土) 00:44:55
>>313
そこを読んだけど、それにはデフォルトを呼び出すんじゃなくてclGetPlatformIDsを呼び出してセレクトしろってことでしょ。
で、2.01の64bit版にはちゃんと32bit版のOpenCL.dllが入っているのに、32bitでコンパイルしたらclGetPlatformIDsがなにやら不明なエラーを返してしまうことが問題で・・・

315デフォルトの名無しさん2010/04/24(土) 01:01:40
SDKを削除>再インストールしてみたらどう?
こんな話があるし↓

ttp://absolutearea.blogspot.com/2010/04/opencl-ati-stream-sdk_05.html

316デフォルトの名無しさん2010/04/24(土) 01:06:52
>>315
それはビルドができないってことでしょ。
ビルドはできるんだよねぇ。実行もできる。ただOpenCLの関数が怪しい物を返すので。
OpenCL.dllの日付は32bit版と64bit版も同じだからバージョン違いが残ってるわけでもないしなぁ。

317デフォルトの名無しさん2010/04/24(土) 03:20:56
>>316
中身読んでくれてないのね…
この人も-1001 返ってるって書いてあるし、
貴方とおんなじかなって思ったんだけど

> 「デバッグ」メニューから「デバッグなしで開始」を選択
> HelloCL!
> Getting Platform Information
> Platform::get() failed (-1001)
> 続行するには何かキーを押してください . . .
> ありゃ?なんでじゃ?
>
> ATI Stream SDK をインストーラでリペアしてもだめだった。
> しかたがないので、ATI Stream SDK をアンインストール後、再びインストールした。
> サンプルをコンパイルして動作確認。うまくいった。

318デフォルトの名無しさん2010/04/24(土) 03:37:42
>>317
あら、本当だ。
ごめんなさい。
ダラダラとビルドできないことが書いてあったからこれはちゃうなと。
-1001なら同じだわ。

319デフォルトの名無しさん2010/04/24(土) 10:55:01
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

320デフォルトの名無しさん2010/04/24(土) 15:07:22
そんなwwwとか書くなよ・・・実際のところ既にアンインストール後再インストールは試してるしなぁ。

321デフォルトの名無しさん2010/04/24(土) 17:53:49
なんで出されたもの読まずにコメント出来るのか理解不能ではある

322デフォルトの名無しさん2010/04/25(日) 01:04:34
>>320
後だし情報で言い訳wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

323デフォルトの名無しさん2010/05/09(日) 03:00:01
>>321
出されたものを読まないでコメントするようだから
結局解決まで時間がかかる人なんだよ。理解できる。

324デフォルトの名無しさん2010/05/09(日) 09:39:11
ヤギだからじゃないのか?

325デフォルトの名無しさん2010/05/14(金) 23:31:43
GF9400 (CUDA 3.0)のマシンとHD4850 (ATI Stream 2.1)のマシン両方で起こっているのだけれど、
clEnqueueNDRangeKernelで実行したカーネルのイベントがclGetEventInfoで状態を見るとCL_QUEUEDのまま変わりません(queueはインオーダー実行にしてあります)。
kernel自体はきちんと実行終了して希望の結果が得られて、clEnqueueWaitForEventsにイベントを入れて待ってもきちんとCL_SUCCESSで戻ってくるのに、そのイベントの状態を見るとCL_QUEUEDのまま。
そのために、clGetEventProfilingInfoでカーネルの実行時間を調べようとしてもCL_PROFILING_INFO_NOT_AVAILABLEが返ってきて調べられない始末(CL_COMPLETEになっていない証拠)。
clEnqueueWriteBufferなどのイベントはちゃんとCL_COMPLETEになっている。

なんか再現する簡単なプログラムを付けたいけれど、OpenCLはカーネル動く例を書こうとしてもオマジナイが多すぎて改行多すぎで載せられないし・・・

・kernelは正しく実行されている
・WaitForEventも正しく戻る
・でもイベントはqueuedのまま

326デフォルトの名無しさん2010/05/14(金) 23:59:03
うpろだに上げればよかろうよ

327デフォルトの名無しさん2010/05/16(日) 13:46:46
並列処理の基本であるキューにためつつキューの中身を取り出して処理するみたいなことは出来るの?

328デフォルトの名無しさん2010/05/16(日) 21:32:19
えっ

329デフォルトの名無しさん2010/05/16(日) 22:10:17
そのためのキューです

330デフォルトの名無しさん2010/05/17(月) 00:17:50
キューはCPU側で実装すればいいのか

3313252010/05/17(月) 10:55:56
clEnqueueWaitForEventなんか使ってちゃダメだな。
clWaitForEventで待機したらeventがCL_COMPLETEになりました。

queueのインオーダーだと勝手にブロッキングになると勘違いしていてwaitなんて入れても入れんでも一緒ダロとか思ってました。

ところで、アウトオブオーダーの時にclEnqueueWaitForEventなんか使ったらqueue内の順序無視してwaitを先にやっちゃって止まるなんてことにはならんのだろうか・・・

332デフォルトの名無しさん2010/05/17(月) 23:56:26
windowsのリモートデスクトップ経由でOpenCLのプログラムを実行するとplatformの取得に失敗するのな。
びっくりした。windows使えねぇw

333デフォルトの名無しさん2010/05/18(火) 00:18:59
それはNVIDIAのドライバのせいでは?
ATIのOpenCLでもそうなる?

334デフォルトの名無しさん2010/05/18(火) 00:39:34
そうなる。Windowsの仕様。
公式でもVNC使えって言ってる。
ttp://developer.amd.com/gpu_assets/App_Note-Running_ATI_Stream_Apps_Remotely.pdf

335デフォルトの名無しさん2010/05/18(火) 05:11:24
NVIDIAのドライバのせいだなw

336デフォルトの名無しさん2010/05/18(火) 09:44:11
VNCは遅い上にリモートの画面のロックは解除されたりキーボードやマウスでいじり放題になるので目の届かないコンピュータをいじるもんじゃないわな。
迂闊にエロサイトなんて見てしまったら・・・

337デフォルトの名無しさん2010/05/18(火) 10:36:11
cygwinでsshdを起動してssh経由でやっても動かないぜ。
mpiでやっても当然ダメなんだろうな。
こんな状態でHPC市場を狙ってるんですかねマクソさんは。

338デフォルトの名無しさん2010/05/19(水) 13:04:33
スクリーンセーバーにしてしまおうかと真剣に考えたw

339デフォルトの名無しさん2010/05/20(木) 22:39:47
個人的な覚書

ATI Stream 2.1のcl_platform.hはこのままだとmingw-gccで使えない。
38行目の#include <stdint.h>を削除して
77行目 #else /* !_WIN32*/の次の行に入れる必要あり。

khrnosの配っているcl.hpp (\date $Date: 2010-04-23 10:16:50 -0500 (Fri, 23 Apr 2010) $は
namespace cl のなかでstd::pairと呼び出してる箇所を全て ::std::pairと修正、
#if defined(__CL_ENABVLE_EXCEPTIONS)
#include <exception>
#endif
をnamespace clの外側に移動する必要あり。

340デフォルトの名無しさん2010/06/03(木) 07:06:02
ワープって何よ。
亜空間跳躍となにか関係あるのか?

341デフォルトの名無しさん2010/06/03(木) 23:01:30
OpenCLはワープサイズやウェイブフロントサイズをとってこれないのが難点だな。
これが取れないとポータビリティのある最適化はできないよ〜。

342デフォルトの名無しさん2010/06/04(金) 13:26:57
ワープとかの概念が無用なプラットフォームも OpenCL の対象範囲。
どうせハードウェアごとの最適化が入る部分は、CL がどうこうする部分じゃないよ。
その辺は #ifdef で。

343デフォルトの名無しさん2010/06/04(金) 22:55:03
ワープサイズに依存しない機種の場合はワープサイズ1でも返してくれればいいんだけど。

344デフォルトの名無しさん2010/07/01(木) 23:02:44
コードのコンパイル、デバイスの生成、データ転送に喰われてスケールしないんだが。
ありがた味のわかるサンプル教えてくれ。

345デフォルトの名無しさん2010/07/01(木) 23:05:51
コンパイルやデバイスの生成やデータ転送と比べものにならないくらい長時間のデータを計算させる。

346デフォルトの名無しさん2010/07/03(土) 00:48:14
openclでGPGPUするかどうかの判定ラインって何?
やってみないとわからんのか。

347デフォルトの名無しさん2010/07/03(土) 12:42:13
計算量がNの3乗くらいなら有効だと思うよ。
ループが3重にネストしているような奴。

348デフォルトの名無しさん2010/07/24(土) 22:38:24
水を差すようだけど,OpenCLだからと言ってO(N^3)がO(N^2)に落ちる訳ではないんだから
それだけでは何の基準にもならないよね.
滅茶重い計算だとNも単純に大きくてデバイスローカルなメモリに収まらなかったりするし
対象デバイスのwarp sizeを想定しながらブロック化とか,結局ifdef祭り.

349デフォルトの名無しさん2010/07/24(土) 23:00:12
うるせえだまってろ

350デフォルトの名無しさん2010/07/25(日) 08:00:33
でっていう

351デフォルトの名無しさん2010/09/02(木) 01:36:07
もう少しなんかあっても良いよね。

352デフォルトの名無しさん2010/10/10(日) 01:30:39
文字列処理のサンプルってないですか?

353デフォルトの名無しさん2010/10/24(日) 00:50:26
新しいMacBookPro買ったんだけど
clCreateContextFromTypeでGPU指定したら、そこからCL_SUCCESSが返ってこない・・・
Appleのサイト見てもGeForce GT 330Mはサポートされてるのに

354デフォルトの名無しさん2010/10/24(日) 01:04:56
>>353
nVidiaが公開してるCUDAドライバ入れた?

355デフォルトの名無しさん2010/10/24(日) 01:33:46
>>354
SnowLeopardはOSでサポートされてるんじゃないの?
ちょっとぐぐってきます・・・

356デフォルトの名無しさん2010/10/24(日) 10:40:54
ドライバもなしにハードを動かそうとな?

357デフォルトの名無しさん2010/10/24(日) 16:18:23
http://yanoshin.jp/entry_154.html
いつのバージョンかわからんけど
>*必ずToolkit、Driver、SDKの順にインストールすること!(なぜか?)

ドライバだけで、他は必要ないのかな?
http://journal.mycom.co.jp/column/osx/335/index.html
http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/OpenCLontheMacPlatform/OpenCLontheMacPlatform.html

358デフォルトの名無しさん2010/10/24(日) 16:21:17
今までRadeonユーザーにOpenCL使ってもらうには
SDKインストールしてもらわないといけなかったんだが、
最新ドライバから、OpenCLランタイムをインストールできるようになったらしい。
めでたいことだ。

359デフォルトの名無しさん2010/10/24(日) 17:39:16
Radeonって全然高速じゃないし使う意味ないよなぁ

360デフォルトの名無しさん2010/10/24(日) 18:35:46
Radeonユーザーの場合はDirectCompute使った方が良いね

361デフォルトの名無しさん2010/10/24(日) 18:41:34
Core i …… RADEON HD 6xxx
Phenom II …… GeForce GTX 4xx

362デフォルトの名無しさん2010/10/24(日) 19:48:56
RadeonだとN体 24Gぐらいしかでないしな
Geforceだと500Gぐらい平気で出るんだけどねぇ

363デフォルトの名無しさん2010/10/24(日) 23:22:24
>>356
秀和システムのOpenCL入門を読んだら
Mac:Xcodeあればいい
Win:ドライバダウンロード必要
としか書いてなかったからてっきり。
>>357
インストール順番さっそくミスった
実はMacは初めてだからアンインストールの仕方ぐぐらんと

3643632010/10/27(水) 09:01:28
やっぱり動かない・・・
よく見たらApple英語サイトはGeForceGT330M書いてあるけど
日本語のほうは載ってないし
http://www.apple.com/macosx/specs.html
http://www.apple.com/jp/macosx/specs.html

365デフォルトの名無しさん2010/10/27(水) 11:20:00
それ、OSの必要条件じゃん。だから何?

366デフォルトの名無しさん2010/10/29(金) 07:17:55
http://developer.apple.com/library/mac/#samplecode/OpenCL_Hello_World_Example/Introduction/Intro.html
> __kernel square

> __kernel void square
に置換。

のサンプルも動かない?

367デフォルトの名無しさん2010/10/29(金) 16:50:26
>>365
ごめん それは関係なかった
>>366
カーネル以前にclGetDeviceIDsでGPU指定だと止まる。CPUでは動く。。。
試しに>>357の参考してCUDAのサンプルも動かしてみたら
CUDA使用可能なデバイスが見つからないというエラーがでる(´・ω・`)
でも動くのもあって、oceanFFTとかnbodyとかは動いてくれるんだけど

368デフォルトの名無しさん2010/10/29(金) 19:14:57
そりゃ変だな。ちなみにこちらは Radeon HD 5670 の iMac だが普通に動いてる。
CUDAのドライバにSDKは入れてる(入れただけで放置してたが)。

369デフォルトの名無しさん2010/11/06(土) 16:01:55
gccはOpenCLに興味ないみたいだね
代わりにclang使うしかないのか?UNIXでは

370デフォルトの名無しさん2010/11/07(日) 00:02:23
>>369
gccは開発技術レベル落ちまくってて
本業のコンパイラもLLVM連中やMSに
抜き去られてやばいらしい

371デフォルトの名無しさん2010/11/07(日) 00:11:37
つってもGCC死んだらUNIX系が基盤から崩壊するから、
どうにかしなきゃいかんだろうしどうにかするだろ

372デフォルトの名無しさん2010/11/07(日) 00:29:49
マルチアーキ型のgccの最適化処理がx86特化型であるmsのソレ以上だったことなんてあったか?

373デフォルトの名無しさん2010/11/07(日) 00:30:00
GCCってそんな立ち位置だったっけ?
広く愚直にというイメージがあるんだが

374,,・´∀`・,,)っ-○○○2010/11/07(日) 01:03:36
GNUソフトウェアはいつだって言いだしっぺの法則が適用されるんだぜ。
Cell B.E.だってSCEが自らABIを公開してGCCやLinuxカーネルのパッチをコミットした。

NVIDIAやAMDがGCCにコミットしない限り動かんだろ。

375デフォルトの名無しさん2010/11/07(日) 05:02:21
>>371
もうどうにもならん
ORACLEのせい

376,,・´∀`・,,)っ-○○○2010/11/07(日) 05:21:45
なんだかんだでHPCなんて所詮はサーバ市場の1%未満のニッチ市場だよ。
そのなかのGPGPU用の言語の一つのために必死になる奴もそうそういない。
なんならRailsやZend使ってWebサービスを構築してるSIerにでもGPGPUの素晴らしさを説いてくれw

377デフォルトの名無しさん2010/11/07(日) 10:51:44
>>376
動画のエンコード・デコードはダメなの??

378デフォルトの名無しさん2010/11/07(日) 13:34:36
ffmpegと同等の画質を達成すればGoogle様が興味を示す

かも

379デフォルトの名無しさん2010/11/07(日) 13:44:30
なんでGPUを使う→低画質という思考になるの?

380デフォルトの名無しさん2010/11/07(日) 14:24:23
馬鹿だから

381,,・´∀`・,,)っ-○○○2010/11/07(日) 15:08:22
ブロックサイズを細かく分けて並列処理しないとGPUのスループットの強みを生かせないから。
CPUで処理するレベルの高画質エンコードは構造的に不向き。せいぜいフィルタだけやらせておけというレベル。

382デフォルトの名無しさん2010/11/07(日) 20:04:27
ブロックサイズ1ピクセル単位とかにでもしないとGPUの優位なんて出てこないんだろうなw

383デフォルトの名無しさん2010/11/17(水) 00:02:22
IntelがCoreプロセッサ向けOpenCL SDKのアルファ版を公開: 新 masafumi's Diary
ttp://masafumi.cocolog-nifty.com/masafumis_diary/2010/11/intelcoreopencl.html

384デフォルトの名無しさん2010/11/17(水) 01:07:04
Windows Onlyか

385デフォルトの名無しさん2010/11/17(水) 15:57:12
Core2Duoなのに入れられない!と思ったら45nm版Core2以降かよ…SSE4使うのな

386デフォルトの名無しさん2010/11/17(水) 19:24:56
そろそろQ6600に引導渡してやるか・・・
Cougar Pointの仕様が色々と半端なので、GPUだけ強化してIvy Bridgeまで引っ張るつもりだったんだが

387デフォルトの名無しさん2010/11/21(日) 00:35:46
来年からAMDが大攻勢、NVは苦しくなるな。
もうグラフィックボードすら不要になってくる。

388デフォルトの名無しさん2010/11/21(日) 00:38:40
CPUで使う場合も、OpenCL的なメモリコピーを挟まないといけないのでしょうか?

389デフォルトの名無しさん2010/11/27(土) 07:53:49
OpenCLって、いつになったら動かせるようになるの?
組み込み向けにGPGPUしたいんだけど、CUDAだと発熱すごすぎグラフィックボード
がどうしても必要なんで、オンボードGPUをOpenCLで動かしたいのだが。

390デフォルトの名無しさん2010/11/27(土) 08:38:35
まるでオンボードGPUだと発熱しないと言わんばかりの意味不明な発言。

391デフォルトの名無しさん2010/11/27(土) 10:03:51
信頼性は違うだろ?

392デフォルトの名無しさん2010/11/27(土) 13:28:35
オンボードのチップの方が信頼性が高いの?
マザボ丸ごと道連れになるくらいならカード交換で済む方がいい気もするんだが。
今までの経験からすると、寧ろ電源が死ぬことのほうが多いけどね。

393デフォルトの名無しさん2010/11/27(土) 14:29:27
RadeonでもGeForceでもPhenomでもCore 2(45nm以下)以上でも動くよ>>OpenCL

394,,・´∀`・,,)っ-○○○2010/11/27(土) 14:34:16
SSE4.1以上に限定する意味は一応あるのね。
insertps/extractpsがgather/scatterとして、vlendvpsがプレディケートに使えるから
SPMDのカーネルモデルを容易に実現できる。


395デフォルトの名無しさん2010/11/29(月) 14:16:12
OPENCLってグラフィックカードの計算につかうCPUで
普通のプログラミングも計算するってことですか?

396デフォルトの名無しさん2010/11/29(月) 19:38:51
日本語でおk

397デフォルトの名無しさん2010/11/29(月) 22:13:20
>>395
コストが無駄になるので特定の用途向けの計算に使います。

398デフォルトの名無しさん2010/12/01(水) 11:07:07
じゃあ、グラフィックカードの付いてないノートパソコンでは無意味ということだな。

399デフォルトの名無しさん2010/12/02(木) 01:56:33
C言語っぽく書いて、コンパイラがうまいことSIMDに変換してくれるから意味あるよ。

400デフォルトの名無しさん2010/12/04(土) 11:20:13
GPUでmalloc作った論文どこだっけ?

401デフォルトの名無しさん2010/12/18(土) 09:11:15
外付けと内蔵グラフィック切り替えるタイプのノートでopenCL使うとどうなるの
NVkernelそこまで対応してるのかな?

402デフォルトの名無しさん2010/12/25(土) 19:51:36
全ワークアイテムでは同期とれないんだね。ワークグループ内のみか。
さて、どうやって同期とるか・・・

403デフォルトの名無しさん2010/12/31(金) 18:12:58
OpenCLを始めようと思ってサンプルコードを動かしてみたんですが
コンテキストを作るところで躓いてしまいました。
何がいけないんでしょうか?

具体的には
cl_int status;
cl_context context = clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU, NULL, NULL, &status);
とやると、status に CL_INVALID_PLATFORM が返ってきます。

clGetPlatformInfo 関数は、たとえば CL_PLATFORM_VERSION を引数にして実行すると
"OpenCL 1.0 CUDA 3.2.1" という文字列が返ってくるので
OpenCLドライバが入ってないわけではなさそうなんですが・・・

環境はCore2Duo E8400、GeForce9600GT、Windows7 32bitです。

404デフォルトの名無しさん2010/12/31(金) 18:39:37
第一引数がNULLだとそうなるのがある
ならないのがあるのかは知らん
秀和の本読んでると思うけど公式から修正されたソース落としてこれるからそれを参考にしてくれ

今規制中で携帯からコード打つ気にならんw

4054032010/12/31(金) 20:39:19
>>404
秀和のサイトの修正済サンプルコードを参考にしたら、うまく動きました。
第一引数にNULLではなくコンテキストのプロパティを与えればいいみたいですね。

秀和の本で勉強してると言い当てられてビックリですw
この本わかりやすいですね。

大学の研究で何千枚の画像相関やってるんで、OpenCLで夢がひろがりんぐ。

406デフォルトの名無しさん2011/01/01(土) 10:51:11
グラフィックスドゥライヴァのヴァージョンは?

4074042011/01/01(土) 16:41:42

408デフォルトの名無しさん2011/01/04(火) 05:00:19
openCLを使っています。
CL_DEVICE_TYPE_DEFAULTという値について質問があります。
この値はプラットフォームの標準デバイスを使うと書いてありました。
どのようにしたら、プラットフォームの標準デバイスがGPUなのか、CPU
なのかを知ることができるのでしょうか。

409デフォルトの名無しさん2011/01/26(水) 11:02:46
Radeon5850と6970を二本さして、FFTの負荷分散させたいと思ってcontextにデバイス2つのせてキューも2本立てたんだけど、
データ転送も並列実行も同時並列的に実行されないで逐次的に実行されてるみたいなんですよ。
コードは1GPUの場合のものをキューだけ変えて単純に2つ並べただけなんですけれども。

OpenCL StramSDKでマルチGPU?実行されてる方いらっしゃいます?

410デフォルトの名無しさん2011/01/26(水) 12:09:39
AMDからメール来た

AMD Accelerated Parallel Processing (APP) SDK | AMD Developer Central
http://developer.amd.com/gpu/AMDAPPSDK/Pages/default.aspx
OpenCL? H.264/AVC: MainConcept
http://www.mainconcept.com/products/sdks/gpu-acceleration/opencltm-h264avc.html

4114092011/01/28(金) 13:15:14
OpenMP使えばいいんですね.自己解決しましたw

412デフォルトの名無しさん2011/01/28(金) 18:00:42
OpenCLはCUDAやTBBのラッパーという理解で宜しいか?

413デフォルトの名無しさん2011/01/31(月) 10:23:07
OpenMPはCPUしか並列化できない
GPUも並列化したいならOpenMPじゃなくてOpenCL使わなきゃだめだろ

414デフォルトの名無しさん2011/01/31(月) 21:48:44
>>413
レスあざす。
もともとOpenCLで組んでて、OpenCLだけでマルチデバイスで動作しないかなぁと思った悩んでいたもんで。一応ホストのスレッドを二本立てたら並列動作しました!

415デフォルトの名無しさん2011/01/31(月) 23:26:33
AMDのH264のSDKってどうなの?

416デフォルトの名無しさん2011/02/01(火) 20:28:57
>>415
んなもんあったっけ??

417デフォルトの名無しさん2011/02/02(水) 01:05:26
>>416
話解らない奴だな
OpenCL H.264/AVC Encoder SDK Beta

どうなんだって聞いてるんだから答えろやクソが

418デフォルトの名無しさん2011/02/02(水) 15:44:26
>>417
それAMD製じゃないしAMD専用でも無いじゃん

http://www.mainconcept.com/products/sdks/gpu-acceleration/opencltm-h264avc.html

419デフォルトの名無しさん2011/02/02(水) 21:39:51
>>417
ぷw

420デフォルトの名無しさん2011/02/03(木) 00:23:39
>>414
OpenCLの関数ってほとんどノンブロッキングだから
OpenMP使わなくても並列に動作するんじゃないの?
試したことないからわからんけど

421デフォルトの名無しさん2011/02/03(木) 00:34:19
>>420
と思ったんですよ。とりあえず同じコンテクストにデバイス2つ乗っけて、キューを二本立ててやってみると計算はされるんだけど、プロファイラーで動作みてみると見事に逐次実行されてて。コンテクスト2つ立ててもダメでした。

ヘテロジニアスなんて謳ってるわりに面倒ですよねぇ^^;

422デフォルトの名無しさん2011/02/04(金) 03:56:08
>>421
OpenCLのコマンドキューはインオーダー実行がデフォだから
CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLEやらないと必ず逐次実行されるよ

423デフォルトの名無しさん2011/02/04(金) 20:08:07
>>422
違うんですねー
OpenCLドライバは何故か初期から、OutOfOrderを付けても逐次実行されるんだわ。。。
いつか対応されるだろうと、一年くらい経過したけどまだ対応されてないとは

424デフォルトの名無しさん2011/02/09(水) 20:10:42
>>421
プロファイラで実行すると逐次実行されるが、プロファイラ上でなければ並列実行される。
ジョブ投入や実行の時間を記録して表示させてみ。

また、同一コンテキストのメモリが二つのデバイスのどちらからでもアクセスできる裏技もあるよ。
最初のアクセスは遅いが、それ以降は早いので、CPU側に読み込んで書き戻すとかしなくてもダミーでメモリをアクセスするジョブを流せばデバイス間のデータ移動ができる。


1年ほど前にデバイス2本同時駆動の実験だけして本チャンの計算プログラムはまだつくってなかったな、そういや。

425デフォルトの名無しさん2011/03/08(火) 07:32:39.91
昨日1日使ってボトルネックをOpenCLに移植したけど、
余計遅くなったわ。やれやれ

426デフォルトの名無しさん2011/03/08(火) 08:28:07.93
ボトルネックを移植するんじゃなくてOpenCLに向いている部分を移植しろよ
または並列性を極大化したりif文などの分岐を全部排除するなどアルゴリズム最適化をしてみれば?

427デフォルトの名無しさん2011/04/07(木) 03:06:36.77
VLIW5のtパイプ埋まらん

428デフォルトの名無しさん2011/04/13(水) 04:08:44.89
深く考えずに2^26スレッドenqueueしたらひどいことになった。

429デフォルトの名無しさん2011/04/21(木) 23:37:32.85
なんでこれ有料なんだ?
ttp://web.me.com/cducommun/CLBuilder/Home.html

430デフォルトの名無しさん2011/04/22(金) 00:28:47.04
Appleが提供しているツールならまだしも第三者が開発しているツールを無料にしろってのは横暴だろ
シェアウェアや市販ソフトを完全否定なお人ですか?

431デフォルトの名無しさん2011/04/23(土) 23:18:19.02
AMD APPのOpenCLについてご存じの方がいたら教えて欲しいんですが、
wavefront=64 って事は、例えばwork_group = 128 の場合 work_itemが64ずつ完全に並列実行って認識で合ってるでしょうか?
(wavefront内のやりとりは同期が必要ないかどうかを知りたいです)

432デフォルトの名無しさん2011/04/24(日) 03:56:08.00
>>431
何の保証もないけど、今のところ大丈夫な気がする。

433デフォルトの名無しさん2011/04/24(日) 05:50:16.61
最大3クロックのタイミング差があると思うんだけど。

434デフォルトの名無しさん2011/05/26(木) 04:58:19.55
XOR_INT*4とMULADD*4が同じ時間食うって納得いかん…

435デフォルトの名無しさん2011/06/14(火) 22:58:32.16
for(d=0;省略){
clSetKernelArg(省略&d);
clEnqueueNDRangekernel(省略);
clEnqueueReadBuffer(省略);
for(省略){読み出したメモリ合算}
}
で1024*dで実行して
読み出して合算して再度実行・・・の形にしてもアドレス違反が起きてしまう・・・
イベントリストもバリア同期も意味なし

GPU実行でアドレス違反は画面だけ真っ黒になってびっくりした
デバックはCPUデバイス使ったほうがいいよ

436デフォルトの名無しさん2011/06/26(日) 01:59:15.81
最近OpenCLに興味もったんですが皆さん楽しいですか?

437デフォルトの名無しさん2011/06/26(日) 14:59:58.32
楽しいとか楽しくないとか問題じゃねえよ

438デフォルトの名無しさん2011/06/26(日) 15:03:37.91
でっかいうんこかどうかだな

439デフォルトの名無しさん2011/07/04(月) 00:47:28.82
AMD gDEBugger
ttp://developer.amd.com/tools/gDEBugger/Pages/default.aspx
いろいろ便利かもな

440デフォルトの名無しさん2011/07/04(月) 00:50:00.35
nsightもOpenCLデバッグ対応してなかったっけ?

441天使 ◆uL5esZLBSE 2011/07/04(月) 06:50:33.14
2011年になっても未だにJAVA使い続けてる奴ってさ
仕事で仕方なくならわかるけど

家でもJAVAやってるなら本当にバカだよね。哀れ

ゴミだし

442デフォルトの名無しさん2011/07/04(月) 07:59:16.86
最近みかける天使うぜー死ねと思っていたが
松本龍の阿呆発言と比べると実害無いだけマシだと思った

443デフォルトの名無しさん2011/07/05(火) 22:49:02.30
つまんねー書き込みしてないでとっととNG登録しろよ

444デフォルトの名無しさん2011/07/05(火) 22:51:03.29
このコテハン「天使 ◆uL5esZLBSE」は天才チンパンジー「アイちゃん」が
言語訓練のために使用しているハンドルです。

アイと研究員とのやり取りに利用する書き込みなので、
関係者以外はレスしないで下さい。

                  京都大学霊長類研究所

445デフォルトの名無しさん2011/07/06(水) 01:40:07.31
intelのopencl SDKをlinuxにインスコったけどコンパイルのやり方わからん
gcc使ってどうにかならんの?

446デフォルトの名無しさん2011/07/06(水) 09:49:42.54
OpenCLってもう1年もバージョン変わって無いけど、開発中止したの?

447デフォルトの名無しさん2011/07/06(水) 11:06:10.67
バージョンUPしなくていいほど今の版が完成されたすばらしい出来だという事なんだよ



という事にしておきたい

448デフォルトの名無しさん2011/07/06(水) 11:57:01.57
グラボはどんどん進化してるのに、ライブラリは完成されてるとかねーよ

449デフォルトの名無しさん2011/07/06(水) 18:08:10.55
進化しても演算部分のコンパイラが底まで進化する必要があるか?

MSのCPUコンパイラさえ基本的には10年以上前のCPUでも動くような最適化レベルで止まっているしな。
GPUとして使うならまだしもGPGPUとして処理するならコンパイラは基本部分だけで、あとはドライバの進化で十分かと

450デフォルトの名無しさん2011/07/09(土) 07:08:13.67
>>439
それってGPU1枚だけでも使えるの?
requirementsにはハードウェアのことが書いてない

45112011/07/26(火) 06:44:48.46

452デフォルトの名無しさん2011/07/27(水) 23:22:22.79
HD4850が最新のドライバではOpenCL動かないし、古いドライバでは動くがゲロ遅
アムドはあかんな

453デフォルトの名無しさん2011/07/28(木) 01:08:32.77
>>452
4870 + CCC 11.6 で OpenCL 動いてるけど、
もしかして 11.7 では動かなくなるのかな ?

454デフォルトの名無しさん2011/07/28(木) 14:50:27.81
HD4850, APP 2.4, CCC 11.6で動かず(カーネルコンパイルエラー)。
ググったら4xxxは11.6じゃ動かないから11.5にしろと言うことで11.5にしたら動いた。

455デフォルトの名無しさん2011/07/28(木) 15:07:33.48
アムドとか言ってるあたりでお察し・・・

456デフォルトの名無しさん2011/07/28(木) 20:28:57.67
アムドいうただけでレッテル貼りとかどんだけ・・・
ヌビディアはOpenCL対応あかんね
1.0のくせに1.1用の関数を使ってもコンパイル・リンクが通る
でも、clEnqueueWriteBufferRectとか実行したらセグメンテーション違反
なめとるで

457デフォルトの名無しさん2011/07/29(金) 09:43:45.32
どっちも自社ライブラリ使えってことだよ

458デフォルトの名無しさん2011/07/29(金) 12:23:00.19
data parallelで簡単な2重forならできるけどそれ使って複雑な計算するのが
できぬ・・・CUDAと違って1024が最大なのがネック

4594522011/07/30(土) 22:03:20.57
職場のC1060に家パソのHD4850が10倍以上の大差で惨敗してムカついたのでHD6950買ってきた。
2倍以上でHD6950の勝利!
アムド最高やで

460デフォルトの名無しさん2011/07/30(土) 22:25:54.10
6970や6990じゃなくて6950なのか。てかC1060はもうどうでもよかろう。

461デフォルトの名無しさん2011/07/30(土) 23:10:14.10
>>460
C1060はどうでもええことないよ。
だって、職場の計算機の貴重な戦力だし。
6950にしたのは家パソ用に高い板を買う気はないから。

462デフォルトの名無しさん2011/08/01(月) 20:49:14.86
いつの間にか WebCL とか出来てて驚いた。
WebGL は色々使い道あるけど、WebCL は需要が分からん。

463デフォルトの名無しさん2011/08/01(月) 21:47:49.14
WebGLについてはこちらでお願いします
【O3D】HTML5用 3D API WebGL 【Canvas:3D】
http://hibari.2ch.net/test/read.cgi/tech/1308761577/

464デフォルトの名無しさん2011/08/01(月) 22:13:20.26
WebGLの話なんてしてないが

465デフォルトの名無しさん2011/08/01(月) 23:26:04.83
サイトを開くだけで分散コンピューティングに参加…胸熱。

466デフォルトの名無しさん2011/08/02(火) 10:29:42.77
http://www.infoq.com/jp/news/2011/07/WebCL

これか
確かにブラウザ上で並列処理する必要性がよくわからんな

467デフォルトの名無しさん2011/08/02(火) 14:03:26.64
頻繁にメインメモリと同期するような計算にはJavaScriptが遅くて使い物にならないだろうし
重い処理を単発でやるだけならサーバーでやればいいだけな気がする
わざわざWebで激しく環境依存するようなことをやる意味が分からん

468デフォルトの名無しさん2011/08/02(火) 15:29:27.41
技術というのは、早い者勝ちでなぁ
仕様などをはやめに決めておかないと、特許やらパクリと言われたりとかなんやらで面倒な事になってしまうんだ
あと名を残したい人が作ったりするんだ
役に立つとか使えるとか、そんなの関係無いんだ

469デフォルトの名無しさん2011/08/02(火) 16:18:14.25
それはわかるんだが、特許を取るタイミングとかが難しいよな
取得にも維持費もかかるし、早すぎると普及した一番儲かる時期に特許権が切れて利益にならないとか

まー特許引き延ばしって裏技もあるけど

470デフォルトの名無しさん2011/08/02(火) 19:41:55.79
まあ、あれや
OpenCL CはJITやから、LL言語からでもグルーライブラリを組めば簡単に使える。
そら、試してみたくもなるわな。
しかし、実際はOpenCL Cを使いこなさなあかんわけで、それほどハードルが低いわけやないと。

んで、環境依存しまくりいうけど、マルチコアプロセッサ用のOpenCLライブラリもIntel, AMDから出てるわけで、もはや大概の環境でOpenCLは使えまっせ。

471デフォルトの名無しさん2011/08/03(水) 01:09:07.14
ブラウザで超広大なライフゲーム

472デフォルトの名無しさん2011/08/04(木) 04:52:42.94
APP SDK 2.5 で BFI_INT が使われるようになったけど、
bitselect() 使うとだめで、 (x & 0xf0f0f0f0) | (y & 0x0f0f0f0f) の型だと OK みたい。

473デフォルトの名無しさん2011/08/04(木) 18:42:12.38
CAL ILコンパイラはもう誰もメンテできないんだろうな。BFI_INT を付け足すのがそんなに苦痛かね?
AMDはLLVMのラデバックエンドに挑戦しているようだけど、果たして新アーキに切り替わる前に
モノにできるんだろうか?

474デフォルトの名無しさん2011/08/04(木) 23:21:28.44
OpenCLってCellみたいなプロセッサが普及しないと面白くないよね。
GPU型の抽象化だけじゃ。

475デフォルトの名無しさん2011/08/05(金) 09:45:21.35
そのCellがコケたからなー
発想が速すぎた
今の技術で開発していれば、大人気だったかもしれないのに

476デフォルトの名無しさん2011/08/06(土) 00:40:12.65
i7であえてOpenCL

477デフォルトの名無しさん2011/08/06(土) 02:51:44.01
OpenCLのアプリを配布するときってAMDとnVidiaで別に実行ファイル作らなきゃいけないの?

478デフォルトの名無しさん2011/08/06(土) 03:08:35.23
何でんなこと思った。

479デフォルトの名無しさん2011/08/06(土) 03:57:16.00
今のところ、OpenCLなアプリケーションを"配布"するための良い方法は無い。(除 MacOS X)

480デフォルトの名無しさん2011/08/06(土) 07:16:37.83
*.cl カーネルを露出させるのがそんなに恥ずかしいか!

難読化するだけだったら gzip してバイナリに埋め込んどくのが楽かもね。

481デフォルトの名無しさん2011/08/07(日) 08:06:38.42
nVidiaから最新ドライバでOpenCL1.1対応とかメールきたんだけど、
ドライバとりに行ったらLinux用はまだじゃねーか。
ざけんなー。

482デフォルトの名無しさん2011/08/07(日) 08:08:49.28
>>480
恥ずかしいというよりノウハウの塊だから出したくない人はいるだろう。

483デフォルトの名無しさん2011/08/08(月) 05:22:20.10
Windows用OpenCL1.1ドライバを試してみたが、
どうも上手く動かないのでもう一寸待った方が良いと思う

484デフォルトの名無しさん2011/08/09(火) 01:37:46.04
>>428
門外不出のノウハウ=世間一般には知られていない。
つまり各分野の研究者すら出し抜く大発見ってことだぞw

485デフォルトの名無しさん2011/08/11(木) 20:59:03.48
>>484
ノウハウが全て開示されているとでも思っているのか?

486デフォルトの名無しさん2011/08/11(木) 22:05:51.96
世間一般に知られていなければ十分じゃん

487デフォルトの名無しさん2011/08/12(金) 21:31:49.60
世間一般に知られないようにするためにカーネルを晒したくないわけだろ

488デフォルトの名無しさん2011/08/14(日) 01:34:57.52
>>473
CAL ILコンパイラ自体はいまだに新命令追加されているよ。
64bitINT除算とかはドキュメント化までされている。
ドキュメントにはなっていないけど、wave_idとかは
Appendix Bにはこっそり追加されて、実際テキストで
1OP命令として書けば使える。


でもBFI_INTは置いてけぼり

489デフォルトの名無しさん2011/08/14(日) 09:57:57.76
マスクが定数なら、iand,iand,ior で BFI_INT になるとおもうけど、
そうじゃないときになー。

490デフォルトの名無しさん2011/08/31(水) 17:10:54.28
初心者です。
Cで書かれた演算プログラムを高速化させたいと思っています。
この元のプログラムをホストプログラムとして、OpenCL用に書き換えて、高速化させたい演算部分を引っこ抜いてカーネルプログラムとして書き換えるというやり方でいいのでしょうか?

また、このようなCのプログラムをOpenCL用に書き換える作業を解説しているサイトや書籍はあるのでしょうか?

当方LINUXでのプログラミングをしております。

491デフォルトの名無しさん2011/08/31(水) 21:06:58.51
並列化はアルゴリズムをかなり選ぶよ。GPGPUなんて尚更。
まず普通にマルチスレッドで並列化してみたら?

492デフォルトの名無しさん2011/09/15(木) 10:02:24.21
opencl用の自動並列化コンパイラってある?

493デフォルトの名無しさん2011/09/16(金) 05:07:07.00
>>490
そのやりかたでいいさ。
2重ループを1重ループ2つにわけるとか。
あとはほとんどC言語と同じだから書き換えるところも少ないんじゃないか?

494デフォルトの名無しさん2011/09/16(金) 18:41:47.81
「Ivy Bridge」プロセッサ、「OpenCL 」をサポート

495デフォルトの名無しさん2011/09/16(金) 23:43:18.97
OpenCLを使ったおぉっとなるアプリってありますか?

496デフォルトの名無しさん2011/09/17(土) 08:21:50.52
うわぁってなるあぷりならある

497デフォルトの名無しさん2011/09/17(土) 08:36:22.90
たとえば?

498デフォルトの名無しさん2011/09/17(土) 18:08:09.83
まってて、ちょっと調べてくる

499デフォルトの名無しさん2011/09/18(日) 07:57:32.03

500デフォルトの名無しさん2011/09/23(金) 23:20:48.33
なんでAMDのOpenCLってこんなにサポートが糞なの?

501デフォルトの名無しさん2011/09/24(土) 06:50:26.05
OpenCLに関しちゃAMDが一番マシじゃね。

502デフォルトの名無しさん2011/09/24(土) 15:07:51.08
>>500
ヒトイネ

503デフォルトの名無しさん2011/09/27(火) 22:25:38.34
>500
バグレポートしたら、ちゃんと対応してもらえたよ?

504デフォルトの名無しさん2011/10/03(月) 02:47:52.78
もしかして関数呼び出しはOpenCL Cで記述出来ない...?
cudaでいう__device__のように記述出来るかと思ったらそんなことはないのかひどいぞこれは

505デフォルトの名無しさん2011/10/03(月) 02:54:10.32
そんなことはなかったすみませんでした

506デフォルトの名無しさん2011/10/03(月) 22:18:02.72
>>503
バグレポートなんか出来るの?

507デフォルトの名無しさん2011/10/04(火) 00:03:56.22
コンパイル時に死ぬバグだけどコンパイラのサポート窓口は分からなかったので
KernelAnalyzerのAboutにあるメアドに「KernelAnalyzerが死ぬんだけど」
って送った。(嘘はついてないつもり)
コンパイラチームに転送してくれて11.10/2.6で直るって連絡来たよ。
実行時に死ぬのとか結果が変なのもForumに書けば結構みてくれるよ。

508デフォルトの名無しさん2011/10/05(水) 23:41:21.79
>>507
Forumに書いても放置が多いみたいで困る。。

509デフォルトの名無しさん2011/10/06(木) 05:23:23.41
俺が今書いてるJavaプログラムの中で
2つのbyte配列に対する100〜5万回くらいの論理積(単にforループで2つの配列の論理積をとる)が頻繁に発生するんだけど
そういうとこでOpenCL使ったら高速化期待できる?
まとめて100万回くらいならGPUが速そうなんだけど
100回で済むとかだとオーバーヘッドがでかいのかなと思って躊躇してる

510デフォルトの名無しさん2011/10/06(木) 18:38:50.63
aparapiでも使ってみたら?

511デフォルトの名無しさん2011/10/17(月) 07:38:26.26
C++のラッパーを最近使い始めたけどかなり使いやすいね。
とくにメモリ解放が楽になった。

512デフォルトの名無しさん2011/11/02(水) 21:22:05.07
OpenCLは構造体のメモリオブジェクトを作成できますか?

CUDAだったら
typedef struct {
float *num;
} DATA;

DATA data;

cudaMalloc( &data.num, sizeof(float) * 1024 );

みたいにできるんですけど

513デフォルトの名無しさん2011/11/02(水) 23:38:01.05
>>512
例が意味不明
それじゃGPU上に単なるfloat型の配列を確保して、
そのdeviceポインタをCPUの構造体メンバに代入しているだけ。

OpenCLでもGPU上にfloat型の配列をbufferとして確保して、
それをCPUの構造体メンバに代入することは出来る。
メンバ変数の型はfloat*では無く、cl_memだけどね。

でも、その配列自体をGPU側にコピーして、
間接アクセスしようとするとCUDAとOpenCLでは全く違う。

OpenCLではGPU上のポインタは1つのカーネル呼び出し内でしか
一貫性が保証されないから、ポインタを保存しておいて
次のカーネル呼び出しで使うという事が不可能
(cl_memはハンドルに過ぎず、OpenCLのランタイムは
GPU上のオブジェクトを再配置する可能性があるから)
まあ、やるとしたら大きなbufferをメモリプールとして生成して、offsetをポインタの代わりに保存
後でアクセスするときにはbufferを引数に渡して、それにoffset足した位置を触るという
形にするしかない。

まあ、CUDAでも実際にはこの方がCPUとGPUで同じデータを扱えるし、
性能面でも悪くないやり方なんだけど。

514デフォルトの名無しさん2011/11/03(木) 01:23:08.95
ラデ外付けGPUに大量にデータを送りたいんだけど、1/4までって制限どうにかならないの?256MBまでしか送れん

515デフォルトの名無しさん2011/11/03(木) 10:05:29.53
いや、1/4なのではなく 256MBまでという制限。
sizeof(float4) * 4096 * 4096.

516デフォルトの名無しさん2011/11/03(木) 10:38:23.81
>>515
これって変えられないの?

517デフォルトの名無しさん2011/11/04(金) 11:46:02.78
馬鹿には無理

518デフォルトの名無しさん2011/11/07(月) 02:56:58.68
並列化させるのも結構苦労するよね。
簡単な演算ならいいけど、データ依存がちょっとでも複雑になると
動かすカーネルの順番とか数とか
気にしなきゃいけないことイパーイ

519デフォルトの名無しさん2011/11/15(火) 23:57:17.03

520デフォルトの名無しさん2011/11/16(水) 00:44:39.04
NVIDIAのドライバがカオスになるな
gdgdの果てに漸く1.0対応が落ち着いたと思ったら
28x世代の1.1対応でまたおかしくなってまだ終息してないのに

521デフォルトの名無しさん2011/11/16(水) 01:54:02.46
彼らにはCUDAがあるからなぁ。。
頑張る必要が無いのだろう。

522デフォルトの名無しさん2011/11/19(土) 02:59:11.80
nVidiaはどこに向かっているんだ…

OpenACC : 新しい並列コンピューティングのためのプログラミング環境
http://www.shader.jp/?p=466

523デフォルトの名無しさん2011/11/19(土) 19:26:18.05
それはOpenMPのGPU版みたいなものなので、CUDAやOpenCLとは衝突しない

524デフォルトの名無しさん2011/11/19(土) 20:50:05.10
AlteraがFPGAでOpenCLを、とか言い出してて面白そうな感じ。

525デフォルトの名無しさん2011/11/19(土) 21:07:31.87
C++AMPのNVIDIA版ぽいね
まぁC++AMPはNVIDIAでも動くけど

インライン記述の世代でどれが主導権を握れるかは気になるところ

526デフォルトの名無しさん2011/11/19(土) 23:38:32.61
MSは最終的にC++AMPをオープンにすると言ってはいるが、結局オプソ系コミュニティがどう動くかだな
CPUの並列ライブラリはMSはOpenMPからPPL推し、オプソ系は主にTBBと別れてしまっているので、
GPUではどうにかして歩調を揃えてもらいたいところ

ただ、一応オープン化を標榜するC++ AMPに介入するわけでもなくかといってCUDAの様に自社GPU専用に囲い込むわけでもなく、
立ち位置の被るオープン規格を立ち上げたNVIDIAの意図が分からんといえば分からん
GPUに全てを賭けるメーカーとしては握れる手綱は全て握っておきたい、という事なのかな

527デフォルトの名無しさん2011/11/20(日) 01:50:41.74
>>523
使う側は思いっきり衝突するだろ

528デフォルトの名無しさん2011/11/20(日) 02:32:04.15
>>522
PGI Accelerator が元になっているのかな?
http://www.softek.co.jp/SPG/Pgi/Accel/index.html

529デフォルトの名無しさん2011/11/22(火) 14:27:24.23
インタビューで簡単にOpenACCについてふれてる
http://insidehpc.com/2011/11/21/cuda-reaches-5th-birthday-openacc-ramps-up/

530デフォルトの名無しさん2011/11/22(火) 23:50:42.88
カーネルの実行順位はイベントで指定できる
OpenCLのバイナリコンパイルと読み込みうまくできない・・・

バイナリなしだと環境自由になるけど
ソース丸出しになるから計算高速化くらいしか使い道ないね

531デフォルトの名無しさん2011/11/25(金) 00:37:00.99

532デフォルトの名無しさん2011/11/25(金) 22:22:16.51
>>531
ダイナミックに追加が変更があったのって、DirectX関係だけだな。。。

533デフォルトの名無しさん2011/11/28(月) 10:27:25.45
なんかもーGPUメーカーは独自に動いてるし、開発する気無いだろw

534デフォルトの名無しさん2011/11/29(火) 19:35:56.69
intel CPU制限多すぎ・・・SSE4.1対応って書いておいてくれよ・・・
core2 quad全部対応してるかのようなのはやめてほしい・・・
XPで使えないのはちょっと困る・・・

535デフォルトの名無しさん2011/11/29(火) 23:11:26.28
SSE見逃してたごめん

536デフォルトの名無しさん2011/11/30(水) 00:12:08.31
SSEぐらいOpenCL使わなくってもいいじゃん

537デフォルトの名無しさん2011/11/30(水) 00:50:42.75
>>536
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同時並列に魅力感じてたけど
両方ともスレッドが少なすぎて・・・

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){}
結局配列分割してコピーしました・・・

542デフォルトの名無しさん2011/12/05(月) 12:04:37.78
組み込みのint2でいいじゃない。

543デフォルトの名無しさん2011/12/05(月) 16:36:44.62
そうですね
それで組み込んでみます

5445422011/12/05(月) 21:49:58.78
>>543
まず無いだろうけど、別スレッドで
同じ添え字のxとyをバラバラに更新すると嵌るよ。

5455432011/12/06(火) 04:05:54.65
>>544
xを固定してyの値すべて計算して次のxへという
九九を生成するようなマニアックな使い方をしてるんです・・・

5465422011/12/06(火) 07:51:19.62
それなら分けた方がいいと思う。

5475432011/12/06(火) 09:23:20.52
そうしてみます!

548デフォルトの名無しさん2011/12/07(水) 22:41:57.13
ふう・・・ついに完成しました
ちまちま25%使うよりフルロードはいいですね
ただ、オーバーヘッドがいくらあるからはわかりませんが・・・

549デフォルトの名無しさん2011/12/08(木) 07:31:00.39
256MBの制限に引っかかって処理が止まるorz
これの上限増やせないのか?

550デフォルトの名無しさん2011/12/08(木) 10:09:58.25
>>549
グローバルメモリが足りない・・・のかな?
ttp://www.ozone3d.net/gpu_caps_viewer/
これで確認してみて

それかワークスレッドの設定が悪いのかも

551デフォルトの名無しさん2011/12/08(木) 11:03:39.84
>>550
なんでダメか分かった、ありがとう
ローカルメモリ32kbしかないのに2mb使おうとしてたwww

552デフォルトの名無しさん2011/12/08(木) 14:28:54.91
>>551
使い捨てる変数の宣言くらいがちょうどいいよ
NVIDIAはローカルメモリ使わないと倍ぐらい遅くなるけど
他はそうでもないから(OpenCL入門に比較があったよ)
グローバルで問題ないと思うよ

553デフォルトの名無しさん2011/12/15(木) 20:39:38.90
http://www.4gamer.net/games/076/G007660/20111214033/

おまいらこれからもOpenCLにしがみついて行くの?

554デフォルトの名無しさん2011/12/15(木) 20:44:38.54
CUDAはGPUしかできないけど一度により多くの処理ができる
OpenCLはCPUとGPUを同時並列処理ができるのが魅力
どっちにも特化した特性があるからプログラムしだいだよ

555デフォルトの名無しさん2011/12/15(木) 22:16:31.17
GPUには留まらない図が載ってるよ、ヌフォの所に

556デフォルトの名無しさん2011/12/15(木) 22:40:09.72
もうGPU固有じゃなくなってきたのね・・・
カーネル丸出しの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

562デフォルトの名無しさん2012/01/19(木) 16:52:31.76
宗教戦争が始まりそうだな

563デフォルトの名無しさん2012/01/19(木) 17:05:38.23
>>561
紹介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ランタイムなら動くんじゃないの

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言語と同じ

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

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

586デフォルトの名無しさん2012/03/18(日) 23:15:06.83
一般家庭にベクトル演算ってそんなに必要ない気が。。。

587デフォルトの名無しさん2012/03/19(月) 10:47:53.21
O(n^2)の直接法のN体とか本当にベンチマーク以上の意味はないんだがな
実用コードはツリー法や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

589デフォルトの名無しさん2012/04/13(金) 00:11:16.74
AdobeのCS6でOpenCLが使われているという噂を聞いたんだが、カーネルのソースコードとかどうやってるんだろうか

590デフォルトの名無しさん2012/04/13(金) 03:29:06.78
>>589
Adobeのライセンス認証部分のコードだって、一緒にディスクに入ってるわけですよ。
どうにでもなる。

591デフォルトの名無しさん2012/04/29(日) 15:57:09.88
Intel OpenCL SDKを使って開発をしようとしているのですが、CPUとGPUを非同期で
走らせる方法が分かりません。
サンプルなどないでしょうか?

592デフォルトの名無しさん2012/04/29(日) 20:57:55.38
>>587
必ずしもそうでもない。もちろん限られたケースだが、空間ごとに時間刻みを変えたい場合とか、ツリー方とかだと複雑になりすぎてまだまだ難しい場合も多い。
そもそも、ツリーやFMMでも近傍場の計算は直接法だし、サンプルコードとして無意味ではない。


593デフォルトの名無しさん2012/05/02(水) 10:33:58.88
>>591
CPU側を並列化してGPUを扱うスレッド/プロセスとCPU側の計算をするものに分ける
並列化、同期はお好みの方法で

594デフォルトの名無しさん2012/06/27(水) 01:05:42.85
質問なんだけど今はAMD/nVidia/IntelどのSDKでビルドしても
AMD/nVidiaのドライバが入っている環境ならGPUが利用できるって理解でok?

595デフォルトの名無しさん2012/06/27(水) 21:29:31.15
>>594
違うというか、根本的に違う

596デフォルトの名無しさん2012/06/30(土) 22:46:38.04
>>594
理論上は合っているよ。
まあ、微妙に非互換だったり、ランタイムの
インストール方法など気を使わざるを得ないのが現実だが。

597デフォルトの名無しさん2012/07/01(日) 01:24:59.44

598デフォルトの名無しさん2012/07/01(日) 12:56:18.02

599デフォルトの名無しさん2012/07/05(木) 01:16:06.38
GT440でclinfoしたら
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)

601デフォルトの名無しさん2012/07/27(金) 10:28:17.75
CPUデバイスのランタイムを有効にするにはAMDかインテルのSDKをインストールしてもらうしかないの?
ランタイムだけのパッケージってある?

602デフォルトの名無しさん2012/07/27(金) 11:10:16.02
>>601
Intel の Windows 用ならあるね。
AMD は知らん。

603デフォルトの名無しさん2012/07/28(土) 14:23:52.35
http://software.intel.com/en-us/articles/vcsource-tools-opencl-sdk/
のダウンロードリストボックスのOpenCL CPU only runtime(Windows* OS)ってやつか。
見落としてた。ありがとう。

604デフォルトの名無しさん2012/07/30(月) 20:27:19.07
CPUでCLやっても遅いだけで意味無いなぁ

605デフォルトの名無しさん2012/07/30(月) 22:03:29.12
>>604
どんなプログラムなのかしらないけど、ボクが試したのは充分速かったけどなぁ。
いやまあ、GPUと絶対値を比べればもちろん遅いけど。w

606デフォルトの名無しさん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 だと逆転したりするのかなぁ。

609デフォルトの名無しさん2012/07/31(火) 07:48:58.72
>>606
お手軽じゃねーっつの。
CPUでSIMDとマルチコアを使いたいためだけにOpenCLを使つかうならアホだわ。


610デフォルトの名無しさん2012/07/31(火) 10:50:46.32
phoronixのベンチ見る限りだとAMDのSDKの方が速そうだったけど

611デフォルトの名無しさん2012/07/31(火) 18:30:47.41
少なくともカーネル部分はお手軽だよ。

素のCで使うと準備が面倒だが
C++のラッパーなら大した事は無い。

612デフォルトの名無しさん2012/07/31(火) 22:46:48.26
OpenCL以外でSIMDに自動で対応してくれるのってなにかあるの?

613デフォルトの名無しさん2012/08/01(水) 06:14:34.83
インテルコンパイラ使っとけ。
それか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とかみると考え変わる

617デフォルトの名無しさん2012/08/01(水) 23:22:54.44
>>611
んなアホな
CL用のメモリとのやり取りが発生するだけ無駄だよ
正直、マルチコアを使いたいならMPIが一番速い。
通信含めても。
OpenMPもなんだかんだであまり速くないな。

>>612
PGI   はあまりコードの品質よくなかったな

618デフォルトの名無しさん2012/08/02(木) 00:32:11.20
>>617
なんか解釈に誤解があるようだが。
マルチコアのどんなプログラムでもOpenCLで書けという話ではない。

OpenCLのカーネルとして記述できるような問題に
適用すれば、なんも考えずにSIMDもマルチコアも
使えるようになるし、そういう用途に限れば
OpenMPやMPIもしくはPOSIX threadとかで
真面目に書くよりお手軽だし、余程の玄人が
書くのでない限り素早く、速いコードが書ける。

CL用のメモリ云々言っておきながら、速度面で
マルチスレッドなOpenMPでなくマルチプロセスになる
MPIをすすめるあたり根本的に理解に問題があるような。
まあ、通信部分はintel MPIとかなら共有メモリ使うから
極端に不利にはならないけど、少なくともこれが最速とは行かない。

619デフォルトの名無しさん2012/08/02(木) 00:45:08.79
てかさ、CL 用のメモリとのやりとりなんかしないよね?
いや、しないようにつくるよね????

>CPUでSIMDとマルチコアを使いたいためだけにOpenCLを使つかうならアホだわ。
うわ、アホって言われちゃった。てへ。

620デフォルトの名無しさん2012/08/02(木) 01:31:56.84
OpenCLとMPIの並列化は全く別もんだし、
OpenCLとOpenMPの並列化もちょっと違う。
正直OpenCLのカーネルを書くくらいなら、
OpenMPを使った並列化の方が圧倒的に楽だわ。
OpenCLを使うメリットは複数のプラットフォームで動かすためだけだろ。

621デフォルトの名無しさん2012/08/02(木) 06:37:43.98
無脳をさらすスレですか?

622デフォルトの名無しさん2012/08/02(木) 07:45:55.61
>>619
CLデバイスとCPUは論理的に別物なんだからメモリ転送はいるだろ。

>>620
GPUがなければOpenMPなりMPIなりで並列動作しているというプログラムを作ればよい。
CPUの並列も面倒くさいのでCLでってのは手抜き杉

623デフォルトの名無しさん2012/08/02(木) 08:05:46.59
>>622
CLで書くほうが手間がかかると思うが。。。
CPU用のコードとNVIDIA用のコード、ATI用のコードを用意するのはかなり大変だし。だからOpenCLが生まれたわけで。

624デフォルトの名無しさん2012/08/02(木) 08:07:44.71
>>623
GPUがあればそっちをつかいたいのならCLを書くこと自体が手間とか言ってる場合じゃないだろ。
それ一本で済まそうというのが手抜きだっての。
CPUでCLつかっても無駄なオーバーヘッドが出るだけだし

625デフォルトの名無しさん2012/08/02(木) 08:13:47.37
論理的に別なのはわかるけど
対象が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 とか読んでごらんよ。

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.27
>>630
> 、99割
0.99 割? 990% ?

どのスレに書こうとしてたの?

632デフォルトの名無しさん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
あちらを立てればこちらが立たずですなぁ

637デフォルトの名無しさん2012/08/10(金) 17:37:54.94
週あすwでAPUの記事載ってて、OpenCLで何でも高速に出来るように書いてたなぁw

638デフォルトの名無しさん2012/08/10(金) 23:05:10.52
write once, tune everywhere

639デフォルトの名無しさん2012/08/10(金) 23:06:13.71
anywhereだったか

640デフォルトの名無しさん2012/08/16(木) 08:59:47.91
OpenCL1.2ではデバイス分割ができるみたいだけど
それまでってどうやって並列化してたの?
コマンドキューをCompute Unit分生成してたの?
それともclEnqueueNDRangeKernelがいい感じに並列化してくれてたの?

641デフォルトの名無しさん2012/08/17(金) 04:01:39.09
でっかく突っ込んだら普通にデスクトップがフリーズしてた。

642デフォルトの名無しさん2012/08/21(火) 22:38:27.42
OpenCLで最速の構成教えて

643デフォルトの名無しさん2012/08/22(水) 00:38:21.46
素晴らしいプログラマ

これに尽きるw

644デフォルトの名無しさん2012/08/22(水) 09:45:30.14
>>642
Radeon の一番高いヤツをさせるだけさす。w

645デフォルトの名無しさん2012/08/31(金) 15:37:24.77
APUより速いん?

646デフォルトの名無しさん2012/09/06(木) 03:18:56.29
だれかOpenCLでOpenGL実装してくれ

647デフォルトの名無しさん2012/09/08(土) 00:09:32.81
むしろOpenManko実装してくれ

648デフォルトの名無しさん2012/09/08(土) 01:20:37.10
プロプライエタリですので

649デフォルトの名無しさん2012/09/08(土) 18:07:21.58
OpenMankoはよ

650デフォルトの名無しさん2012/09/08(土) 22:36:50.84
互換フリー0実装のKuperで我慢しとけ。

651デフォルトの名無しさん2012/09/09(日) 23:25:50.57
Mankoは商用製品で我慢しろよ

652デフォルトの名無しさん2012/09/20(木) 15:05:43.24
昔の日本はOpenだろ

653デフォルトの名無しさん2012/09/27(木) 04:12:39.50
AMD Releases CodeXL Public Beta | SemiAccurate
http://semiaccurate.com/2012/09/25/amd-releases-codexl-public-beta/

654デフォルトの名無しさん2012/10/05(金) 01:09:53.66

655デフォルトの名無しさん2012/10/05(金) 01:15:43.73

656デフォルトの名無しさん2012/10/05(金) 01:16:52.94

657デフォルトの名無しさん2012/10/28(日) 20:13:53.12
意外と

658デフォルトの名無しさん2012/11/30(金) 23:33:09.24
Khronos Releases Significant OpenCL 1.2 Specification Update | techPowerUp
http://www.techpowerup.com/176413/Khronos-Releases-Significant-OpenCL-1.2-Specification-Update.html

659デフォルトの名無しさん2012/12/07(金) 11:27:13.90

660デフォルトの名無しさん2012/12/20(木) 01:25:19.05
>>615
vetor extension記法でゴリゴリかく。
若しくは、-O3 -ftree-vectorize
但し、後者はまだまだ未熟なのは確かだね。

661デフォルトの名無しさん2012/12/21(金) 09:03:58.99
最近OpenCLを本格的に始めたんだが、
OpenCLのいいところは、コンパイラを選ばない、
カーネル以外はC++で書けるといところかな。

CUDAだと同じことができるけど、ホスト側でNVCC以外使おうとするとちょっと面倒だ。
ただ、カーネルの最適化がコンパイラでもできるから、
パフォーマンスは出やすいな。

LLVMで最適化レベルって設定ができるのかな?

662デフォルトの名無しさん2012/12/22(土) 01:07:39.90
>>661
アーキテクチャが何にでも対応できるが、
アーキテクチャによって最適なWARP(に相当するもの)の数が違ったり、
コアレセンスアクセスできる条件が違ったり、キャッシュの有無だったりで
結局はアーキテクチャ依存の最適化をしないと速くならないよ。

663デフォルトの名無しさん2012/12/22(土) 02:28:20.85
場合によってはコンパイラのバージョン依存も。

664デフォルトの名無しさん2012/12/24(月) 05:32:34.90
やっとCL使うネタが準備できた
楽しみだー

665デフォルトの名無しさん2013/01/13(日) 19:49:11.31
Trinity APUで使ったらCPU使用率が50%(2コアなので1コアがフル稼働状態)になったが、こんなもんなの?
GPUで計算してるはずなんだが。

666デフォルトの名無しさん2013/01/14(月) 05:46:41.04
ジョブの内容と数によるんでは。

667デフォルトの名無しさん2013/01/14(月) 21:42:22.31
CUDA見たいに結果出るまでぽーりんぐしてんじゃないの?

668デフォルトの名無しさん2013/01/14(月) 22:02:09.36
自分のマシンのFLOPS計るのはどのベンチがお勧め?

669デフォルトの名無しさん2013/01/15(火) 00:36:48.35
クロックとシェーダの数を掛ければ。

670デフォルトの名無しさん2013/01/15(火) 12:44:28.36
ちゃんとGPUで計算されてないだけじゃね
afterburnerかなんかでGPU側の使用率も見てる?

6716652013/01/20(日) 11:45:47.76
Catalystのバージョン上げたらCPU使用率下がりました

672デフォルトの名無しさん2013/01/21(月) 06:12:45.45
AMDのOpenCL SDKはCPU(SSE)デバイスもサポートしてるから
そっちで動いてたってことかな

673デフォルトの名無しさん2013/01/22(火) 00:13:17.77
デバイス取得時にGPUを指定すればそんな目に合うはずね〜が

674デフォルトの名無しさん2013/01/22(火) 23:13:25.92
デバイスにCPU使ってたらCPU使用率100%になるんじゃないの

675デフォルトの名無しさん2013/01/23(水) 00:21:18.43
>>674
特に設定しないとシングルコアだからならない

676デフォルトの名無しさん2013/01/23(水) 01:32:16.04
CPU版はdevice fissionしないと使えるコア全部使わなかったっけ?

677デフォルトの名無しさん2013/01/26(土) 18:02:42.38
いくつか本読んで基礎的なことは
わかったんだけど、openclでmpegのエンコーダー
作ってみたいから何か参考になる情報ないかな

678デフォルトの名無しさん2013/01/26(土) 21:16:57.04
CUDAでこれだからOpenCLはチューニング大変だな
pc.watch.impress.co.jp/img/pcw/docs/584/977/html/7b_prometech_32.jpg.html

679デフォルトの名無しさん2013/01/26(土) 22:38:20.74
>>677
MPEGってどれよ?
MPEG4(H.264)のことならx264がSSE、AVXアセンブリ含むソースコードが読めるからオススメ

680デフォルトの名無しさん2013/01/30(水) 22:41:00.14
試しに↓使ってみたんだがローカルメモリ使ったら速度が3割落ちた。
www.aocplan.com/gpgpu/gpgpu-benchmark

681デフォルトの名無しさん2013/02/05(火) 22:18:38.26
OpenCLってHyper-Qみたいな機能ってあるでしょうか?

682デフォルトの名無しさん2013/02/05(火) 22:28:21.47
>>678
アーキ毎にカーネルを書きなおさないと性能でないよ。

683デフォルトの名無しさん2013/02/06(水) 21:46:06.32
各アーキテクチャごとの最適化資料ってある?

684デフォルトの名無しさん2013/02/07(木) 05:31:00.88
AMDだとこれが詳しい。NVIDIAのだったらCUDAのマニュアルを読めばいい。
http://developer.amd.com/download/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf

685デフォルトの名無しさん2013/02/11(月) 23:11:22.51
標準のC++に替わり今後はOpenCLが標準に確定したな
OpenCLでパフォーマンスが激向上するから当然か

686デフォルトの名無しさん2013/02/12(火) 06:11:15.51
寝言は寝て言え

687デフォルトの名無しさん2013/02/17(日) 21:21:57.05
>>684
ありがとう。VLIW4だとスレッド数1/4にして、1スレッドで4つずつ処理するようにしたら倍速になった。

688デフォルトの名無しさん2013/02/18(月) 04:23:25.11
R600のISA解説したpdfもどっかにあって、あれ読むとKernel Analyzerの右側の命令が読めるようになって捗るぞ。

689デフォルトの名無しさん2013/05/09(木) 04:25:55.54
Intel Releases SDK with OpenCL 1.2 Support for Intel Xeon Phi Coprocessors | techPowerUp
http://www.techpowerup.com/183718/intel-releases-sdk-with-opencl-1-2-support-for-intel-xeon-phi-coprocessors.html

690デフォルトの名無しさん2013/05/10(金) 23:28:13.87
CUDAが動かない古いNvidiaのビデオカードでも
OpenCLなら動いたりするものなのでしょうか?

691デフォルトの名無しさん2013/05/11(土) 17:38:28.19
確かnvidiaがOpenCLサポートしているのは、
チップがGeforce8以降かつ、ドライバの対応も必要だったと思う。
でもgeforce8以降はほとんどCUDA(とPhysXが)乗ってたはず。
それ以前はサポートされていないから動かないんじゃないかな(機材とドライバがないから検証できん)

692デフォルトの名無しさん2013/05/11(土) 23:50:31.95
CUDAにせよ、OpenCLにせよ古いマシンでやろうとする奴はなんなんだ?
古いGPUじゃ大して効果がないし、アーキテクチャがどんどん変わって
いるから使えないものが多いのに。
最新のアーキテクチャでも1万円も出せばそれなりのものが買えるのになあ。

693デフォルトの名無しさん2013/05/12(日) 10:11:53.81
研究目的なら最新ので良いけど、実用だと4年前に導入した
数百台の計算機で高速化したい、とかもあるからな。

694デフォルトの名無しさん2013/05/13(月) 17:15:31.08
GeForce8以前って、どんだけ古いカード使っているんだよw
いろんな意味で、無理無理。

695デフォルトの名無しさん2013/05/15(水) 13:05:11.17
とりあえずGPGPU普及させたいならGPU各社ともミドルレンジ以下でFP64対応切るのやめてくんないかな
性能出るかどうかより使えたり使えなかったりってのが一番困る

696デフォルトの名無しさん2013/06/05(水) 08:17:39.89
OpenCLのチューニングって、まずどのあたりから手を付ければいいかな?
ワークグループ分割数で結構変わるという話は聞くけど、やっぱり
おまかせより明示的に指定した方がいいんだろうか?

697デフォルトの名無しさん2013/06/05(水) 09:35:33.06
おまかせとかやる気無さすぎだろう…
色々変えてみて速さを測れ。

698デフォルトの名無しさん2013/06/05(水) 20:55:53.52
ハードに合わせて適当な値を選んでくれると思ってたんで自分で下手な値を設定するより
いいかと思ってたんだけど、たしかに明示的に指定した方がよくなるケースが多いですね。
目安としてはCL_DEVICE_MAX_WORK_GROUP_SIZEに合わせておけばいいんだろうか?
それ以外、これは押さえておけ、というようなチューニングポイントってありますか?

699デフォルトの名無しさん2013/06/06(木) 22:37:43.71
アドレスモードが便利そうなのでイメージオブジェクトを使ってみようと思ったんだけど、
これって4ch固定なんですかね?できれば1chで使いたいんだけど。

700デフォルトの名無しさん2013/06/17(月) 09:44:11.96!
>>698
> 目安としてはCL_DEVICE_MAX_WORK_GROUP_SIZEに合わせておけばいいんだろうか?

これだとスピードでないよ。
Radeonだったら>>684の最適化マニュアルを、NVIDIAだったらCUDAの
説明書を読め。

701デフォルトの名無しさん2013/06/18(火) 23:31:21.64
つか、勉強目的でエミュレータみたいなのが欲しい
遅くていいから

702デフォルトの名無しさん2013/06/24(月) 22:41:41.16
最近のハードなら何でも出来るだろ。
新しいの買えよ。それぐらい自己投資だ。

703デフォルトの名無しさん2013/07/23(火) NY:AN:NY.AN
ついに 2.0 で Dynamic Parallelism きちゃったじゃねぇか!

704デフォルトの名無しさん2013/07/23(火) NY:AN:NY.AN
nVidiaがいまだに1.1なのはどうにかならんのかな。

705デフォルトの名無しさん2013/07/24(水) NY:AN:NY.AN
CUDAがあるから、あまり積極的にやりたくないんじゃね?

706デフォルトの名無しさん2013/08/01(木) NY:AN:NY.AN
今AMDの環境で開発しているんだけど、NVIDIAの環境でもビルドできるよう
1.1の機能に限定することってできないんですかね?
CL_USE_DEPRECATED_OPENCL_1_1_APISみたいな。

707デフォルトの名無しさん2013/08/18(日) NY:AN:NY.AN
OpenGLとの連携やっている人いますか?
OpenGLのHGLRCからcl_device_idを得るのにclGetGLContextInfoKHRというのが
ありますが、これを呼ぶ際、properties引数にCL_CONTEXT_PLATFORMを含めないと
エラー(CL_INVALID_PLATFORM)になります。
Platformを決め打ちで入れてやれば成功はしますが、cl_device_idを得る前にそれが
含まれるcl_platform_idを本来どうやって求めるのでしょうか?

708デフォルトの名無しさん2013/08/18(日) NY:AN:NY.AN
>>707
clCreateContext に渡した properties と同じもので GL context を1つに特定できるものを渡せって書いてあるだろうに
clGetGLContextInfoKHR で指定せずにエラーになるなら clCreateContext ではデフォルト値以外の cl_platform_id を指定したんだろう
gl_sharing が有効な CL context は作成済みなのになんで cl_platform_id だけ行方不明なんだよ
余所のライブラリが作った CL context に問い合わせたいなら clGetContextInfo で CL_CONTEXT_PROPERTIES

709デフォルトの名無しさん2013/08/18(日) NY:AN:NY.AN
回答ありがとうございます。
ただ、clCreateContextはclGetGLContextInfoKHRでデバイスを得た後に呼ぶことに
なると思うのですが?
手順は以下で間違ってますかね?

GLコンテキスト(HGLRC)作成
→clGetGLContextInfoKHRで関連付けられているCLデバイスを取得
→clCreateContextでCLコンテキストを作成

いずれにしても、どのデバイスを使っているかがわからないとプラットフォームも
決まらないと思うのですが。

710デフォルトの名無しさん2013/10/24(木) 01:02:02.86
vloadn ってあるけど、直接ポインタを p[i] するのと速度違ったりするのか?

711デフォルトの名無しさん2013/10/24(木) 21:28:52.21
vloadはアラインメントの制約がゆるい。要素でそろってればOK。
速度は実装によるだろうけど同じか制約がゆるいvloadのほうが少し遅い。

712デフォルトの名無しさん2013/10/24(木) 22:48:45.60
なるほど。

アラインメントの制約のせいで、ちょっと冗長になってたあのコードとかを小さく綺麗に書き直せるかも。
これは良いことを知った。サンクス。

713デフォルトの名無しさん2013/11/22(金) 19:43:38.99
Khronos Groupが「OpenCL 2.0」を完成、コンピュータビジョン向け「OpenVX 1.0」の暫定仕様も発表
http://sourceforge.jp/magazine/13/11/22/095200
https://www.khronos.org/news/press/khronos-releases-opencl-2.0

714デフォルトの名無しさん2013/11/22(金) 19:46:35.85
タラタラ完成してんじゃねーよ

715デフォルトの名無しさん2013/11/22(金) 20:47:48.41
OpenVXってのが気になる

716デフォルトの名無しさん2013/11/25(月) 08:28:25.60
JOCLも、早く OpenCL 2.0 に対応しろよ

717デフォルトの名無しさん2013/11/30(土) 20:57:20.27
OpenCLって初期化とかやたら面倒なんですが、
OpenGL に対する glfw や GLUT みたいなライブラリはないんですか?

勉強してみたい(というか、勉強しかけた)のですが、
計算処理を楽しむ前に挫折しそうです。

718デフォルトの名無しさん2013/11/30(土) 21:26:47.63
あるけどない
独自API、英語のみのマニュアル…

初期化なんて一度書けば使い回しだからとりあえずやってみるべき

719デフォルトの名無しさん2013/11/30(土) 22:18:44.90
マニュアルが英語なのは全く問題ないので紹介していただけないでしょうか。

それでも枝葉末節の部分が面倒であれば、今はそういうものだと諦め、
コピペで使い回してかんばります。


ただ、私はたとえば OpenGL 入門者に対して、同じ理由
つまり「初期化なんて一度書けば使い回しだから」という理由で
ウィンドウ作らせたり、レンダリングコンテキストを作らせたりはしたくないです。
使い回し
幸い OpenGL にはユーティリティライブラリがあり、入門者にはありがたいです。
なので OpenCL にも入門者用にきっと何かあるだろうと思っていました。

720デフォルトの名無しさん2013/11/30(土) 22:34:05.19
OpenGL ほど広く使われていたらあっただろうね。

721デフォルトの名無しさん2013/11/30(土) 22:53:53.35
NVIDIAやAMDのサンプルコードには簡単なユーティリティが入っているよ。
OpenGLみたいに糞面倒なわけじゃないから、わざわざGLUTみたいなものを
作ろうと思った人はいなかったんだろう。

722デフォルトの名無しさん2013/12/01(日) 02:54:53.01
そんなに面倒か?
必要十分しかないと思うんだが

723デフォルトの名無しさん2013/12/01(日) 03:12:45.40
CUDAの簡単さと比較すると面倒

724デフォルトの名無しさん2013/12/01(日) 03:18:23.16
あほか

725デフォルトの名無しさん2013/12/01(日) 03:47:08.42
c++binding使えば簡単じゃないか。
まあ、プラットフォーム選択する時点で
cudaには必要ない工程だが

726デフォルトの名無しさん2013/12/01(日) 07:35:28.28
>>719
intelが最近OpenCLライブラリやGPU向けライブラリのプレビュー版を発表してる
ttp://software.intel.com/en-us/intel-ipp-preview
IPPはこれまで最適化済みCPUライブラリだったけど、それをGPUにも拡張しようとしてる模様

727デフォルトの名無しさん2013/12/03(火) 07:13:40.30
>>726
ありがとうございます。

調べてみます。

728デフォルトの名無しさん2013/12/03(火) 13:47:40.89
amd apu+linuxでaparapi経由で使ってみたんですが面白そうですね。
はるか昔に、javaで配列関係はどうしようかjniにでもしようかと悩んでたんですがこれでやっと悩みは解決できました。
java9.stream.parallelがopenclに対応してaparapiも不要になる(jvmと結合する)ようなので、openclを使えばjavaのままで配列のソリューションが得られるようです。
まだ触って4日ぐらいですが勉強がてらに、行列などの配列依存のライブラリを書き直してみようと思います。

729デフォルトの名無しさん2013/12/30(月) 11:40:26.21
kaveriが販売される模様

730デフォルトの名無しさん2014/01/11(土) 01:38:48.46
>>717
software.intel.com/en-us/vcsource/tools/opencl-sdk/clu-api
CLUとか
github.com/Computing-Language-Utility/CLU/blob/master/simple/simple.c
このぐらいに書ける。
使ったことはないので便利かどうかは知らない。

731デフォルトの名無しさん2014/02/24(月) 15:19:36.59
Core iとグラボつんでグラボで画面表示しててもIntelHDでOpenCLの計算をさせることはできるのでしょうか

732デフォルトの名無しさん2014/02/24(月) 16:36:29.14
遅くはなろうが計算は出来るでしょう

733デフォルトの名無しさん2014/02/24(月) 17:04:11.19
あれ?遅くなる要因あるのでしょうか
使ってないIntelHDも使いたいというイメージだったのですが

734デフォルトの名無しさん2014/02/24(月) 18:04:09.93
CPUでやったほうが速いってだけ

735デフォルトの名無しさん2014/02/24(月) 18:14:29.38
CPUスレッドとは排他でしか使えないと言うことですか?

736デフォルトの名無しさん2014/02/24(月) 18:17:43.70
732だけど、単純にIntelHDをグラボと取り違えただけだよ

737デフォルトの名無しさん2014/02/24(月) 18:34:07.15
了解です

738デフォルトの名無しさん2014/03/23(日) 07:57:03.89ID:2/mKAdk3
Ubuntu用のSDKはDebian GNU/Linuxで使えますか?

739デフォルトの名無しさん2014/03/24(月) 20:46:02.33ID:+qxUA/lQ
>>733
俺も今日勉強始めたばっかだから実態よく分からんが、
規格ミニマムだとGPUで実行するバイナリを、
プログラム実行時に動的にコンパイルしてマウントする場合があるらしく、
それだとコンパイルのオーバーヘッドで遅くなりそう。

実行時にコンパイルせず事前にコンパイルしたバイナリを使うこともできるそうで
NVidia, AMDあたりはLLVMで動いてるからまず大丈夫だろうけど、HD Graphicsはどうなるんだろうか?

740デフォルトの名無しさん2014/04/04(金) 10:41:37.63ID:YtPgho8U
CentOSにAMDのドライバを入れることに成功したけど、Debianには入らなかった。

741デフォルトの名無しさん2014/04/23(水) 21:27:46.80ID:Xxk46iNW
質問スレってないかな?
Debian testing 64bit環境でbeignet 0.80をインストールしてclinfoしたら
GPU一個しか積んでないはずなのにPlatformが2個検出されるのですよ
これって正常なの?

742デフォルトの名無しさん2014/04/23(水) 21:53:33.92ID:e3QPM/2Y
GPU持ってるCPUを使っているとか?

7437412014/04/23(水) 22:38:07.40ID:Xxk46iNW
はい、haswell(i7-4771)を使っています。
その他のグラフィックボードは積んでいません

744デフォルトの名無しさん2014/04/23(水) 23:16:57.80ID:RpkkzUGi
Platformの数とデバイスの数はイコールじゃない。
デバイスはCPUとGPUの2個見つかるはず。ちなみに内蔵かどうかは関係ない。
気になるならclGetPlatformIDs/clGetPlatformInfoで見てみりゃいい。

7457412014/04/23(水) 23:39:22.71ID:Xxk46iNW
はしょって書くと以下のように2回出力、Platform IDが一緒でプログラムなどでcl::Platform::getをすると
2個で返ってきます。(DeviceはALLで情報をとってもGPUしか返ってきません。CPUでDeviceをとろうとするとエラーが出ます)

Platform Name: Experiment Intel Gen OCL Driver
Platform ID: 0x7f6ee0ba1a40
Name: Intel(R) HD Graphics Haswell M
Vendor: Intel
Device OpenCL C version: OpenCL C 1.1 beignet 0.8.0
Driver version: 0.8.0
Profile: FULL_PROFILE
Version: OpenCL 1.1 beignet 0.8.0

Platform Name: Experiment Intel Gen OCL Driver
Platform ID: 0x7f6ee0ba1a40
Name: Intel(R) HD Graphics Haswell M
Vendor: Intel
Device OpenCL C version: OpenCL C 1.1 beignet 0.8.0
Driver version: 0.8.0
Profile: FULL_PROFILE
Version: OpenCL 1.1 beignet 0.8.0

746デフォルトの名無しさん2014/04/23(水) 23:55:44.68ID:TUgA9FPl
Platform数はドライバの数
汎用のドライバとIntelチューンのドライバの2つが入っていたら2つのプラットフォームが出てくる
少なくともWindowsだとそんな感じ

あと745の結果でPlatformIDが同じなのはおかしい
多分745のプログラムはバグってる

7477412014/04/24(木) 00:06:20.94ID:T0adDPXi
ドライバの数ですか・・・Debianのパッケージを入れる時にたしかに
汎用ローダとか言うのとintelドライバを入れた記憶があります
それで2つ出ているのか、入れたのは以下のパッケージだったような

opencl-headers - OpenCL (Open Computing Language) header files
beignet - Intel OpenCL library
beignet-dev - Intel OpenCL library
ocl-icd-dev - Development files to build a ICD Loader
ocl-icd-libopencl1 - Generic OpenCL ICD Loader
clinfo - Query OpenCL system information

748デフォルトの名無しさん2014/06/26(木) 07:45:11.00ID:DsGyZECt
>>717
cl.hpp使えばそんな難しくないだろ

http://qa.atmarkit.co.jp/q/2899

749デフォルトの名無しさん2014/06/26(木) 08:39:51.72ID:rajeiAxv
デフォルトのコンテキストやキューが追加されたのはOpenCL1.2からだから
NVIDIAじゃ使えないことに注意な。

750デフォルトの名無しさん2014/06/26(木) 12:05:53.66ID:u/fLSVr/
>>748
// OpenCL側に結果を書き込む領域を作成する
const size_t
length = 0x10;
cl::Buffer
array( CL_MEM_READ_ONLY, length * sizeof( float ) );

( ´,_ゝ`)

751デフォルトの名無しさん2014/06/26(木) 22:35:19.78ID:BVAAIzQv
>>750
答えといてやれよ。

752デフォルトの名無しさん2014/08/29(金) 13:36:44.60ID:P9znXDYB
AMDとMS,GPU演算用途向けのコンパイラ「C++ AMP v1.2」を発表
http://www.4gamer.net/games/032/G003263/20140828031/
C++ AMP v1.2は、C++開発者が広範なハードウェア構成および
ソフトウェア構成でアプリケーションを高速化できるよう、
以下の3つのアウトプットをサポートしています。

・Khronos GroupのOpenCL:AMD CPU/APU/GPU、Intel CPU/APU、NVIDIA GPU、Apple Mac OS X、その他のOpenCLに準拠したプラットフォームをサポート
・Khronos GroupのSPIR:AMD CPU/APU/GPU、Intel CPU/APU、将来的なSPIRに準拠したプラットフォームをサポート
:HSA FoundationのHSAIL:AMD APU、将来的なヘテロジニアス・システム・アーキテクチャー(HSA)に準拠したプラットフォームをサポート

753デフォルトの名無しさん2014/08/30(土) 20:21:59.78ID:rOGhcjm5
ム板はしょっちゅう落ちるな。

754デフォルトの名無しさん2014/08/30(土) 20:24:50.83ID:nZ1XDijW
よく落ちるな‥

755デフォルトの名無しさん2014/09/19(金) 08:34:07.91ID:KzrQAxPc
OpenCL 1.2が現在のstableになるのかな?
1.1だとOpenCVは動かないですね

756デフォルトの名無しさん2014/09/19(金) 23:42:34.05ID:dfKMMaQo
NVIDIAが1.2に対応しないからうちは1.1縛りだな。
OpenCVみたいにCUDAと両方やるならいいんだろうけど。

757デフォルトの名無しさん2014/10/15(水) 00:45:43.10ID:bIoSVMWH
VBAで使いたいのですが、ラッパーDLL何か
ご存知ないでしょうか?
C#用のは幾つか見つかるのですが…

758デフォルトの名無しさん2014/10/15(水) 01:04:21.97ID:bIoSVMWH
質問あげ m(_ _)m

759デフォルトの名無しさん2014/10/15(水) 10:11:05.56ID:3rwOGNYw
>>757
C#でVBAとOpenCLの仲介DLLでも作ればいいんでないの?
Windows知らんけど。

760デフォルトの名無しさん2014/10/15(水) 10:36:01.03ID:bIoSVMWH
>>759
そうなんですけど、既にあるならそれ使いたいなと。

いま、ClooというC#用のラッパー使ったりソース見てるのですが、
ジェネリクスは使えないからどうするんだ?とか
DLL作ったことないのでチョット途方に暮れてます…
(シンプルなDLL作成サンプルは理解できますが、
openclを全てラップするのは無理…)

761デフォルトの名無しさん2014/10/15(水) 19:03:22.75ID:oTkKZ4Eq
既にあるもので使い方覚えるより
自分で造った方が早い場合も多い

762デフォルトの名無しさん2014/10/15(水) 22:49:10.60ID:y41AVgB1
口だけ番長

7637572014/10/16(木) 00:06:46.03ID:1e+5gfAa
>>761
プラットフォームを返すところから少し作り始めてみましたが、
VBAのcollectionとして値を返すなら、
C#では何なの?ディクショナリ?ってとこで
早速つまづいてしまいました(;_;)

なので、VBAでラッパー作ろうかと迷走中…

764デフォルトの名無しさん2014/10/16(木) 00:45:29.59ID:925HRnD9
別に何しようと勝手だけど
VBAでOpenCL使う必要性って何?

非同期処理が苦手なVBAは「待ち」が生じるような複雑な計算は向かないし
計算速くするだけならDLLなりに入力投げて結果だけもらえばいいし
Officeとの連携ならVBA使う必要ないし
規定されたソフトウェア以外使用禁止だったらそもそもOpenCL使えそうにないし

765デフォルトの名無しさん2014/10/16(木) 15:24:45.15ID:7O3aHiya
そもそもVBAに固執してる時点で視野狭窄。

7667572014/10/16(木) 17:11:21.81ID:8j84DcHT
固執?( ´×` ) プッ

7677572014/10/16(木) 17:12:09.70ID:8j84DcHT
ありゃw

768デフォルトの名無しさん2014/10/17(金) 13:05:53.28ID:npcZf8Up
あらあら可哀想なひとでしたか。

769デフォルトの名無しさん2014/10/17(金) 16:09:50.28ID:aw+RiOqr
こんなところにもシナが湧くようになったか

770デフォルトの名無しさん2014/10/18(土) 01:23:16.18ID:sx5ESDLm
そもそもそんな方法よりこうした方が・・とか
上流にまで遡って正そうとする奴がいるけど
余計なお世話なんじゃない?
VBAでOpenCLを使う方法を聞かれているんだから
答えがあるならそれに出せばいい。
無いならわからないと答えればいい。
見当違いのに話を捻じ曲げて、してやったりと
悦にはいるのか?

771デフォルトの名無しさん2014/10/18(土) 13:19:15.72ID:Z3gRebWt
余計なお世話だと感じたらスルーすればいいだけ
スルーも出来ないお子ちゃまが馬鹿にされるだけ

772デフォルトの名無しさん2014/10/18(土) 15:49:20.82ID:mzkaImX0
>>770
あんた公務員やな

773デフォルトの名無しさん2014/10/18(土) 19:40:45.23ID:P/Strs7V
余計な世話しなきゃいい

774デフォルトの名無しさん2014/10/19(日) 02:01:55.89ID:CeuU+CpH
まあ、余計なお世話なやつは
わかってない(解決策はわからない)
ってことだから

解決策以外はただの雑談
スルーするかしないかなんて、
どうでもいいこと

775デフォルトの名無しさん2015/01/12(月) 09:09:09.30ID:BHqm0X8b
OpenCLとCUDAの相互運用について情報を探していたらCUDAカーネルを
OpenCLランタイムから実行できると書いてある記事を見つけたんだが、
本当にそんなんできるんだっけ?
http://www.4gamer.net/games/032/G003263/20091104040/

776デフォルトの名無しさん2015/02/04(水) 08:37:05.19ID:PgjHlyod
いままでコンスタントに500[ms]程度でkernel処理が終わってたのが、
1分以上kernel処理が終了しない異常が、
処理2回目とあと不定期に発生するようになりました。
処理の内部のループカウントを数えたら正常なときと大差なく、
重い処理をしてはいないようです。やはりハードの不具合でしょうか?

777デフォルトの名無しさん2015/02/04(水) 11:47:15.88ID:kErMECZ6
windows update

778デフォルトの名無しさん2015/02/08(日) 04:16:42.58ID:4RF7kRSx
モバイルだと、GPU性能とCPU性能あんま大差ないからな。CPUだと4コアでNEON使えば最大性能で60GFLOPSぐらい?最新のTegraX1とかだと300GFLOPSオーバーするかもしれんが
現行のAdreno330ぐらいだと150GFLOPSくらい?

779デフォルトの名無しさん2015/02/08(日) 04:19:43.86ID:4RF7kRSx
だからNEONのコードをわざわざ書き直す必要まだないかな?メモリアクセスのほうがボトルネックになってるっぽいのもあるし。まぁ、CPUとGPU実行じゃ消費電力ちがうかもしれんが。

780デフォルトの名無しさん2015/02/15(日) 00:22:26.32ID:rqZ8R7KU
個人的にはこの言語産廃な気がするけどどうなんだろう
手続きの多さはさすがにちょっと…

CUDA←AMDも似たもの作るorライセンス料払ってでも統一しろ(最良)
C++AMPとOpenACC←そのレベルの抽象言語ぐらい統一しろ(次善)
OpenCL←やめて

781デフォルトの名無しさん2015/02/15(日) 10:01:14.87ID:MuMGrz7U
OpenCLはハード非依存のGPGPUプラットフォームとして用意され、
その上にライブラリを構築してユーザーはそれを使うのが本来意図してたこと。
残念ながらそういうライブラリがあまり出てきていないのが現実かな。

782デフォルトの名無しさん2015/02/15(日) 12:56:46.74ID:TTUR8i8s
OpenCLはDSPとかFPGAとかGPU以外もターゲットに入っているから
下手に統合しない方がいいと思う

783デフォルトの名無しさん2015/02/15(日) 20:42:11.90ID:aU4fh9i9
とか言いながら、触ればわかるが単なるCUDAの焼き直しなんだよな、これ

784デフォルトの名無しさん2015/02/15(日) 21:52:13.56ID:DwKzmQqr
nvidiaのquadro K620Mか
インテルグラフィックHD5500にしようと思うんだけど
openclとか数値計算の初歩の練習としてはどっちがいいよ

785デフォルトの名無しさん2015/02/15(日) 22:09:31.75ID:SQuQNCw8
>>784
IntelのOpenCLドライバって糞だって印象しかない。
AMDやNVIDIAで動いてたコードが通らなかったりするし。

786デフォルトの名無しさん2015/02/15(日) 22:20:29.24ID:DwKzmQqr
>>785
ありがとうございます

787デフォルトの名無しさん2015/02/15(日) 22:26:41.71ID:SSlwb3yD
実は正しくないコードが他の環境ではたまたま通っていただけ、てのはよくある。
たしかにIntelのコンパイラは厳しいから、普段の開発は他のGPUでやっていても
IntelのKernel Builderでカーネルのチェックしたりするな。

788デフォルトの名無しさん2015/02/16(月) 00:42:06.13ID:bUgXoWHZ
>>787
コードそのものに問題はなかったよ。
カーネルが複雑になりすぎるとIntelのコンパイラは落ちるから論外。

789デフォルトの名無しさん2015/02/16(月) 00:55:29.94ID:0cGz3jVB
IntelはGlobalWorkingGroupとLocalWGのサイズがN倍じゃないと動かないんだけどAMDは変な比率でも動く
原因調べるのの時間かかったよ

790デフォルトの名無しさん2015/02/16(月) 02:05:22.57ID:bUgXoWHZ
>>789
そりゃ動くほうが不思議だw 自分の場合はカーネルを小さくしたら
普通に通ったからそういう問題はなかったはず。

791デフォルトの名無しさん2015/02/16(月) 07:56:11.60ID:F7oc1qZ/
>>785
同意

792デフォルトの名無しさん2015/02/16(月) 13:24:15.63ID:LR9r89r7
AMDのコンパイラも最適化オンにしたらコンパイル終わらなかった事あったので、結構怪しい。(2011年ぐらいの話だけど)

793デフォルトの名無しさん2015/02/16(月) 13:44:20.54ID:bUgXoWHZ
>>792
確かにAMDのコンパイラの最適化は完全に地雷だったw

794デフォルトの名無しさん2015/02/16(月) 21:40:57.33ID:HyfDl27x
>>784
初心者がこれからOpenCLを始めるのにどの環境を選ぶか、という話なら
NVIDIAは避けるのが無難だな。デバッガやオフラインコンパイラなんかの
ツールが皆無に等しい。
CUDAもやりたいとかいうなら別だが。

795デフォルトの名無しさん2015/02/16(月) 22:38:07.54ID:QHeQ+cdL
>>794
多くの奴はGPGPUするぞ、じゃメジャーなCUDAで良いやだからな
OpenCL使ってIntel,Nv,AMD(あとFPGAとか?)でちゃんと動くものを作らなければいけないってあんまりないだろからな

796デフォルトの名無しさん2015/02/17(火) 02:24:50.68ID:xvdMpEI6
OpenCL使ったところで、同じコードでどんなCPU/GPUでも効率よく動くとかレアケースだしなぁ。

797デフォルトの名無しさん2015/02/17(火) 08:22:15.68ID:fCIGE3+K
最高のパフォーマンスを引き出すチューニングというなら別だが、どれかGPUを想定した
コードならそこそこの速度で動くだろ。たいてい、従来のCPUより速けりゃ十分だろうし。
FPGAだけは別格で、GPUと同じコードじゃぜんぜん速度が出ないだろうが。

798デフォルトの名無しさん2015/02/18(水) 10:38:35.72ID:CGhwPhC5
SSEレジスタに乗ること期待して書いたchar16とかGPUに食わせたら憤死するで。

799デフォルトの名無しさん2015/02/18(水) 16:12:46.20ID:pennC58Z
アーキテクチャ毎に最適化しないと、
OpenCLで性能なんか出せないよ。

800デフォルトの名無しさん2015/02/18(水) 22:51:48.89ID:Z2YWe05s
>>798
ベクタ型は想定するターゲットで効果が見込まれる場合に使うべきで、そういう意味では
どっちかというとチューニングの範疇だろう。
そもそも、インテルのコンパイラならベクタ型使わずに普通に書いてSSE/AVXを
使ってくれるんだが。CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR=1だしな。
下手に最適化しようとして却って駄目にしているように思える。

801デフォルトの名無しさん2015/02/19(木) 01:05:51.96ID:f67JHinc
かたやGPUになるとパイプラインのスカスカ具合見ながら
int2とかint4とか使って依存関係のない演算で埋めていかないとお話にならんしなぁ。

802デフォルトの名無しさん2015/02/19(木) 02:14:32.89ID:KUEe9MYM
アーキテクチャごとの最適化は、まだコンパイラとかの成長中の部分もあるだろうしなぁ

そのうち改善はしてくれるような気がするけど

803デフォルトの名無しさん2015/02/19(木) 22:30:01.89ID:t/UF4QVL
そうは言っても今のアーキが向かってる方向ってコンパイラ実装の難易度上がってるから
コンパイラの苦手な部分を補填してやらにゃ速くならないってのは改善される事はないと思う

むしろそこまで賢いコンパイラとか使いたくない

804デフォルトの名無しさん2015/02/19(木) 23:19:07.50ID:1LBnym+M
技術的側面もあるが
それ以上にIA64がコケたことが
コンパイラを賢くしてプロセッサを脳筋にする道を
決定的に閉ざした

コンパイラの賢さに関して言えば
足並みがそろってない事の方が問題だと思う

805デフォルトの名無しさん2015/02/26(木) 07:17:19.04ID:BKvgQceT
クロノスってなんかのアニメであったような

806デフォルトの名無しさん2015/02/26(木) 14:44:53.01ID:ZlyxtZ3O
クロノスはゼウスのお父さん

807デフォルトの名無しさん2015/02/26(木) 20:31:41.27ID:yDVFOiWq
マッシーンロボッ!
お前には、敵はない!

808デフォルトの名無しさん2015/03/08(日) 09:21:28.42ID:rJrv12ko
OpenCL2.1は発表されたが相変わらずNVIDIAはやる気なさそうだなぁ、コメントくれないし。
おかげでいまだに開発は1.1ベースだよ。

809デフォルトの名無しさん2015/04/12(日) 20:37:22.82ID:4fkLnYAO
OpenCLでHEVCをGPUに部分的にデコードさせる実験やってるな
まあ新製品はハードウェアでHEVCに対応してるから不要になっちゃうんだけど

810デフォルトの名無しさん2015/04/12(日) 20:37:43.88ID:4fkLnYAO
×やってるな
○やってたな去年の夏ごろ

811デフォルトの名無しさん2015/04/12(日) 21:03:58.32ID:b726GPIq
結局使えるのは、いつくらいになるのか…

812デフォルトの名無しさん2015/04/25(土) 14:51:39.69ID:zIE5htjK
vexcl使えばopenclもcudaも関係なくGPUが使えるっぽいけど

813デフォルトの名無しさん2015/04/25(土) 16:55:17.48ID:DlB5+dQK
NVIDIAでやっと1.2が使えるようになったと思ったらバグってんじゃねーか。
本当にやる気無いのな。

814デフォルトの名無しさん2015/04/26(日) 16:04:03.54ID:ljYoE8AT
そらやる気ないやろ。
cudaなら囲い込みできるのに、
cudaの焼き直しのOpenCLなんて協力するだけ損だし。

815デフォルトの名無しさん2015/04/27(月) 10:52:17.46ID:1JZfjbGY

816デフォルトの名無しさん2015/06/06(土) 14:22:49.99ID:xHuAhJj5
Core i7 3990とGeForce使ってるんだけど、IntelHDが認識されてなくてデバイスマネージャに表示されない
OpenCLの性能評価を試したいんだけど、IntelHDのドライバをインストールすれば認識されますかね?

817デフォルトの名無しさん2015/06/07(日) 15:10:46.44ID:OFY6KtcL
>>816
モニタはiGPUとゲフォどっちにつないでる?
それと自作PCか?

818デフォルトの名無しさん2015/06/07(日) 15:14:39.85ID:OFY6KtcL
あ、それとintel Opencl driver インストールうまくできるか試してみて結果おしえて

819デフォルトの名無しさん2015/06/07(日) 20:39:44.84ID:NnypvtRT
>>817
モニタはGeForceに接続。ドライバインストール試してみる。

820デフォルトの名無しさん2015/06/08(月) 05:35:15.96ID:ewd9hwV4
Intelのにモニターをつなげないと
いけなかったはず。

821デフォルトの名無しさん2015/06/08(月) 13:13:32.81ID:rnRcmo2O
i7 3990は検索してもろくにヒットしないけど、Sandy Bridge-Eなら無理なのでは。

822デフォルトの名無しさん2015/06/09(火) 01:36:37.47ID:c7FHKlcw
そだね、そのくらい確認してるかと思って聞かなかったけど、
iGPUがついてないならそもそも無理だわな。

823デフォルトの名無しさん2015/06/10(水) 12:18:07.90ID:VIG2W0Y+
うまくいけばCPUの方はOpenCLで動かせるかもしれない
やる意味ないけどね

824デフォルトの名無しさん2015/06/19(金) 09:06:28.51ID:giF1KE9b
GPUのないノートのCPUでデバックしてから
GPUで実行できるなら俺はうれしい

825デフォルトの名無しさん2015/06/19(金) 21:38:40.35ID:s6jV56Gc
別途ドライバをインストールしなきゃならんってのが難点なんだよな。
SSE/AVXをお手軽に使えて、コア数に応じてマルチスレッドで実行してくれるから
使いではあると思うんだが。

826デフォルトの名無しさん2015/06/19(金) 23:20:08.11ID:KZJPVbVq
デバッグなんかよりチューニングが大事だからターゲットハード以外でコーディングしてもなぁ

827デフォルトの名無しさん2015/06/20(土) 00:21:14.39ID:46SUOvEb
なにがなんでも最高性能出さなきゃならん用途ばかりじゃあるまい。
一般的な並列化のみで大多数のハードでそこそこ速くなりゃ十分、という応用もある。

828デフォルトの名無しさん2015/06/22(月) 00:09:27.57ID:e4hiyCLD
CLはチューニングなしだとCPUに惨敗もありえるのでな。

829デフォルトの名無しさん2015/06/22(月) 01:11:03.05ID:rREKDKy5
メモリ転送とenqueueしてからの計算開始に時間かかるのがなぁ

830デフォルトの名無しさん2015/06/22(月) 07:39:26.22ID:FYteK6ai
CPUに惨敗してた処理がチューニングでどうかなるもんか?
単に並列化できてなかっただけじゃね?

831デフォルトの名無しさん2015/06/22(月) 21:40:24.04ID:e4hiyCLD
>>830
レジスタ数とか共有メモリサイズとかでブロックサイズだっけnVIDIAでいうところのwarp数とか
調整しないとてんでダメだよ。

832デフォルトの名無しさん2015/06/22(月) 21:41:31.55ID:e4hiyCLD
>>829
そのコストを払っても高速かどうかは実機でテストするしかないしな。
機種ごとにCLを使うか通常ルーチン使うか選別するくらいしないと効果なし

833デフォルトの名無しさん2015/06/23(火) 02:38:28.65ID:22fvktD/
チューニングは難しい
何となくやってみたら、処理時間が5倍遅くなったときの衝撃は大きかったな

834デフォルトの名無しさん2015/06/23(火) 08:25:00.27ID:drLPVFNo
ターゲットのハードに特化したチューニングをしないと使い物にならんようなことを
言っている人がいるが、そんなこといったらユーザー環境を特定せずに広く配布する
アプリなんて作れんな。
うちじゃ一般的なGPU向けチューニングしかしてないが、NV/AMD安いのから高いのまで
テストしてみてローエンドでもCPUの数倍くらいで動くから十分、速く動かしたいなら
高いGPU使え、ってなノリだな。

835デフォルトの名無しさん2015/06/23(火) 08:50:44.48ID:LQs/3Np0
一番遅いハードに合わせて作っとけば問題ないよ

836デフォルトの名無しさん2015/06/23(火) 22:58:24.67ID:VwORpFDM
>>834
AMDのHSAのAPUとAMDのOpenCl2のdGPUがHPCを除いたいまのデファクト
それ以外は無視で良い。Nvは一般用でGPGPUやる気ないし
HPC用ならターゲットのハードに特化したチューニングは当然だし

837デフォルトの名無しさん2015/06/24(水) 01:34:16.84ID:35TMs94C
madとかそういう複合命令(?)を使ってチューニングする程度で抑えたいところ

838デフォルトの名無しさん2015/08/31(月) 07:10:09.59ID:kH1QDWTh
Vexclの開発が止まってる
誰か引き継ぐ人はいないのか?

839デフォルトの名無しさん2015/09/02(水) 06:58:53.31ID:VNDyXTKC
早く2.0を使えるようにしてくれ

840デフォルトの名無しさん2015/09/03(木) 00:02:12.18ID:iQnjIkb4
NVIDIA無視すりゃ幸せになれるぞ

841デフォルトの名無しさん2015/09/03(木) 01:44:07.69ID:cb/ef9ik
>>840
こんなに対応が遅いと思わなかったんだよ
次からはAMDを信じるよ、あればだけど

842デフォルトの名無しさん2015/12/19(土) 10:21:19.84ID:7/8YsZOJ
プログラマはMacを使ってるってマジ?
http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/

843デフォルトの名無しさん2015/12/19(土) 10:23:37.79ID:qfRCvKdP
単なる世間知らずが踊らされてそう言ってるだけ

844デフォルトの名無しさん2015/12/19(土) 12:49:21.08ID:BBUxwf4S
マルチコピペだぞそれ

845デフォルトの名無しさん2015/12/19(土) 15:25:38.18ID:iG82T79N
100スレ以上にレスしてNGにならないのは運営が公認してるマルチってことか

846デフォルトの名無しさん2015/12/19(土) 16:25:03.85ID:2xl0Mjgh
GeForceはOpenCL2.xに対応した?
CUDAに同様の機能が在るから技術的に無理という事はないだろうけど

847デフォルトの名無しさん2015/12/19(土) 18:13:33.83ID:LGhGH2LK
358でやっと1.2正式サポートしたところ。

848デフォルトの名無しさん2015/12/19(土) 19:06:17.07ID:2xl0Mjgh
サンクス。IntelですらOpenCL2.0に対応しているのに業界最大手のnVIDIAがやらないのはなぁ
CUDAを使えという事なんだろうけど、それではnVIDIA専用になってしまうからそれは避けたい。
かといってnVIDIAを無視する訳にもいかないというジレンマ
そろそろOpenCL2.xをメインにしていきたいのだが

849デフォルトの名無しさん2015/12/20(日) 00:20:21.34ID:ujiFhYYe
VGAはいまAMDがすごく伸びてきているんだろ
来年の後半にはVGAの販売数シェアではAMDがNvidiaを上回るんじゃないのか
再来年には一般グラフィックではIntel、AMDが2強ってなるんじゃないか

850デフォルトの名無しさん2015/12/20(日) 00:47:13.59ID:14eB8c4R
NVIDIAのOpenCL対応はちょうどAppleが採用やめたあたりから停滞したな。
結局のところNVIDIAにとって、そういうOpenCLを望む大口の顧客でもいない限り
OpenCLに力を入れる理由はないんだろうな。

851デフォルトの名無しさん2015/12/20(日) 01:02:38.32ID:XNwlDZDb
nvidiaはopenAMP+だっけ?あっちに力いれてんじゃないのかね?

852デフォルトの名無しさん2015/12/20(日) 04:40:12.37ID:oUoqwn36
AMDもCUDAに対応するみたいなニュースをみたけど、どうなったんだろう?
GPGPUの技術も速く落ち着いて欲しい

853デフォルトの名無しさん2015/12/20(日) 07:41:04.82ID:MpbNAZoy
CUDAが各社GPU共通のならいいけどそうじゃないからなぁ
Intel iGPUでも使えないと困る

854デフォルトの名無しさん2015/12/20(日) 07:47:22.55ID:14eB8c4R
AMDのあれは、HSAをターゲットにしたHalideやvexclのような並列計算APIで、
それがNVIDIA向けにもコンパイルできるって話だな。既存のCUDAコードからも
コンバートできるというのは目新しいが。

855デフォルトの名無しさん2016/03/29(火) 10:04:21.74ID:/c8bAcK4
サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート

856デフォルトの名無しさん2016/05/30(月) 13:15:08.40ID:27ORFIrk
CUDA8.0RCでも1.2どまり

857デフォルトの名無しさん2016/05/31(火) 02:00:22.72ID:tLbBjsj4
CUDAが強すぎて、なかなか広がらないイメージ

858デフォルトの名無しさん2016/05/31(火) 15:24:04.45ID:o40hgVi5
あまり最適化されてない(できない、ifがそれなりに多い)プログラムをCPUとGPUで動かしてみて、
早い方を採用するには都合がいい。

859デフォルトの名無しさん2016/08/08(月) 11:44:01.40ID:OeTPyxgg
CUDAは強い強い言われてるけど結局一社独占の技術だから過渡期の産物で終わってメインストリームにはなれんよ
nvidia自体x86やARM関係なくCPUを締め出しにかかって古い仕様を拡張する気がなさそうだし

860デフォルトの名無しさん2016/08/08(月) 23:41:36.48ID:FOEjBVJr
しかしOpenCLも最近失速気味だしなぁ。規格は2.2まで出てるのにいまだに2.1のまともな実装すら出てないし。
AMDが体力続かなくて手を引いたりしたらOpenVXみたいにフェードアウトするんじゃないか?

861デフォルトの名無しさん2016/08/13(土) 04:34:37.27ID:C6tpwDrS
物理レンダリングが出たばっかりなのに失速とは

862デフォルトの名無しさん2016/10/29(土) 09:17:30.79ID:W9gQheBG
AppleがGeForce採用すりゃNVIDIAもOpenCLをアップデートすると期待してたが、今回も採用なしか。
それとも逆に、いつまでもOpenCL 2.0対応しないから採用しないのかな。

863デフォルトの名無しさん2016/10/29(土) 12:19:11.69ID:YsxFht0u
OpenCLはオワコン

864デフォルトの名無しさん2016/10/29(土) 15:09:52.99ID:0Cs4HSkt
HIPだっけ?
あれでCUDAを汎用的に使えるようになるんじゃないの?

865デフォルトの名無しさん2016/10/29(土) 18:46:14.19ID:vjtn6SxB
>>863
C/C++使いはOpenCLも使えないと駄目ってなりつつあるんじゃないのか?

866デフォルトの名無しさん2016/10/30(日) 01:49:24.70ID:IKgBO44W
それはOpenMPでは

867デフォルトの名無しさん2017/01/08(日) 01:47:50.25ID:qDa6npPv
Vexcl難しい
サンプルコード少なすぎる

868デフォルトの名無しさん2017/02/12(日) 09:50:54.30ID:fljd0HzI
vexclは挫折してviennacl使ってる
使えるスキルある人ならvexcl良いと思うけど
自分には無理だった

869デフォルトの名無しさん2017/02/12(日) 14:41:00.16ID:VBfSC62c
boost.computeなら、どうだろうか?

870デフォルトの名無しさん2017/02/16(木) 11:11:01.71ID:sX4bqSJb
Boost.computeはcudaに対応してない

871デフォルトの名無しさん2017/02/17(金) 01:28:52.49ID:LtwBLUnB
OpenCLの話題だし、CUDA対応とかより、いかにOpenCLのコードが書きやすいかのほうが大切だと思うんだ

872デフォルトの名無しさん2017/02/28(火) 20:15:03.56ID:514SeM49
ここ1年くらい停滞気味で話題が少なかったけど、これはめでたい。

NVIDIA 378.66 drivers for Windows offer OpenCL 2.0 evaluation support
https://www.khronos.org/news/permalink/nvidia-378.66-drivers-for-windows-offer-opencl-2.0-evaluation-support

一方で、前にいろいろぶち上げたAMDは何してるんだ?Ryzenで忙しいってか?

873デフォルトの名無しさん2017/03/17(金) 02:02:00.80ID:YSidBwLT
Vexclで行列計算したいけど行列掛け算のexampleしかない
qr分解とかライブラリ使って出来ないの?
Vienaclにはqr分解とか例が沢山あるのに

874デフォルトの名無しさん2017/03/17(金) 11:56:23.09ID:ol/nseXL
できる

875デフォルトの名無しさん2017/03/30(木) 08:07:31.22ID:sSr9ORWQ
過疎ってるところ恐縮ですが、質問です。

通常のCプログラムの中で、コプロ的な使い方でOpenCLをインラインアセンブラのように使うような使い方は可能なのでしょうか?
もしくは、その様な使い方を実現する方法はないでしょうか。

876デフォルトの名無しさん2017/04/04(火) 23:25:23.65ID:d4Y6801f
Openmpでgpuの並列計算も出来るようになってから
Viennaclは更新も止まって、もう実質一年ぐらい更新ない

Openmpがgpu計算の標準になるのかな

新着レスの表示
レスを投稿する