OpenCLプログラミング#1at TECH
OpenCLプログラミング#1 - 暇つぶし2ch495:デフォルトの名無しさん
11/08/31 17:10:54.28 .net
初心者です。
Cで書かれた演算プログラムを高速化させたいと思っています。
この元のプログラムをホストプログラムとして、OpenCL用に書き換えて、高速化させたい演算部分を引っこ抜いてカーネルプログラムとして書き換えるというやり方でいいのでしょうか?

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

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

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

497:デフォルトの名無しさん
11/09/15 10:02:24.21 .net
opencl用の自動並列化コンパイラってある?

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


499:デフォルトの名無しさん
11/09/16 18:41:47.81 .net
「Ivy Bridge」プロセッサ、「OpenCL 」をサポート

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

501:デフォルトの名無しさん
11/09/17 08:21:50.52 .net
うわぁってなるあぷりならある

502:デフォルトの名無しさん
11/09/17 08:36:22.90 .net
たとえば?

503:デフォルトの名無しさん
11/09/17 18:08:09.83 .net
まってて、ちょっと調べてくる

504:デフォルトの名無しさん
11/09/18 07:57:32.03 .net
つ「URLリンク(www.geeks3d.com)

505:デフォルトの名無しさん
11/09/23 23:20:48.33 .net
なんでAMDのOpenCLってこんなにサポートが糞なの?

506:デフォルトの名無しさん
11/09/24 06:50:26.05 .net
OpenCLに関しちゃAMDが一番マシじゃね。

507:デフォルトの名無しさん
11/09/24 15:07:51.08 .net
>>500
ヒトイネ

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

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

510:デフォルトの名無しさん
11/10/03 02:54:10.32 .net
そんなことはなかったすみませんでした

511:デフォルトの名無しさん
11/10/03 22:18:02.72 .net
>>503
バグレポートなんか出来るの?

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

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

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

515:デフォルトの名無しさん
11/10/06 18:38:50.63 .net
aparapiでも使ってみたら?


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

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

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

DATA data;

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

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

518:デフォルトの名無しさん
11/11/02 23:38:01.05 .net
>>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で同じデータを扱えるし、
性能面でも悪くないやり方なんだけど。


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

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

521:デフォルトの名無しさん
11/11/03 10:38:23.81 .net
>>515
これって変えられないの?

522:デフォルトの名無しさん
11/11/04 11:46:02.78 .net
馬鹿には無理

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

524:デフォルトの名無しさん
11/11/15 23:57:17.03 .net
OpenCL 1.2
URLリンク(www.khronos.org)

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

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

527:デフォルトの名無しさん
11/11/19 02:59:11.80 .net
nVidiaはどこに向かっているんだ…

OpenACC : 新しい並列コンピューティングのためのプログラミング環境
URLリンク(www.shader.jp)

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


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

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

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

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

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

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

533:デフォルトの名無しさん
11/11/20 02:32:04.15 .net
>>522
PGI Accelerator が元になっているのかな?
URLリンク(www.softek.co.jp)

534:デフォルトの名無しさん
11/11/22 14:27:24.23 .net
インタビューで簡単にOpenACCについてふれてる
URLリンク(insidehpc.com)

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

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

536:デフォルトの名無しさん
11/11/25 00:37:00.99 .net
1.2の新機能
URLリンク(www.streamcomputing.eu)

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

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

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

540:デフォルトの名無しさん
11/11/29 23:11:26.28 .net
SSE見逃してたごめん

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

542:デフォルトの名無しさん
11/11/30 00:50:42.75 .net
>>536
OpenCLの機能実現するのに都合がいい命令がSSE4.1にあるからインテルの開発ツールはSSE4.1対応の世代以降でないと使えないんだよ
どうせ普及する頃には古い世代のCPUいなくなってるよねって方針なんだろ

543:デフォルトの名無しさん
11/11/30 00:58:02.95 .net
GPUが使えない環境での互換性用と割り切って広くサポートしてくれたほうがまだ有用なのにな

544:デフォルトの名無しさん
11/12/05 06:55:31.93 .net
構造体そのままカーネルに放り投げられない・・・
x.yに配列分けなくちゃだめか・・・
GPU正直CUDAのほうが楽だよね・・・
CPUとGPU同時並列に魅力感じてたけど
両方ともスレッドが少なすぎて・・・

545:デフォルトの名無しさん
11/12/05 09:48:13.49 .net
なにいってるんだ?

546:デフォルトの名無しさん
11/12/05 11:51:31.75 .net
構造体 a
int x;
int y;
の配列をそのままメモリバッファにコピーしても
うまくいかなかったので・・・
AMDのカーネルアナライザーでエラーがでてたんです
if(a[id].x-a[id].y){}
結局配列分割してコピーしました・・・

547:デフォルトの名無しさん
11/12/05 12:04:37.78 .net
組み込みのint2でいいじゃない。


548:デフォルトの名無しさん
11/12/05 16:36:44.62 .net
そうですね
それで組み込んでみます

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


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

551:542
11/12/06 07:51:19.62 .net
それなら分けた方がいいと思う。

552:543
11/12/06 09:23:20.52 .net
そうしてみます!

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

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

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

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

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

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

558:デフォルトの名無しさん
11/12/15 20:39:38.90 .net
URLリンク(www.4gamer.net)

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

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

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

561:デフォルトの名無しさん
11/12/15 22:40:09.72 .net
もうGPU固有じゃなくなってきたのね・・・
カーネル丸出しのCLは論文すら少ない・・・

562:デフォルトの名無しさん
11/12/26 03:28:48.61 .net
引数の渡し方が面倒なんだよなー
思わぬところでバグが出たりする

563:デフォルトの名無しさん
12/01/18 10:01:49.46 .net
openclを実用的に使うにはどんな環境がおすすめでしょうか

564:デフォルトの名無しさん
12/01/18 10:11:34.51 .net
いつでもCUDAに逃げられる環境

565:デフォルトの名無しさん
12/01/18 22:05:36.88 .net
nVidiaってこと?

566:デフォルトの名無しさん
12/01/19 09:51:18.68 .net
グラフィックボードは倍精度不動小数点数(cl_amd_fp64)が利用可能な
Radeon HD 7900、6900、5900/5800 シリーズがおすすめ

URLリンク(blog.tommy6.net)


567:デフォルトの名無しさん
12/01/19 16:52:31.76 .net
宗教戦争が始まりそうだな

568:デフォルトの名無しさん
12/01/19 17:05:38.23 .net
>>561
紹介thx

569:デフォルトの名無しさん
12/01/19 18:25:09.26 .net
どうせおまえらめんどくさい組み込み関数なんか使わないだろってことか?

570:デフォルトの名無しさん
12/01/23 19:34:34.31 .net
GCNでアセンブリが変わったのか、動かなくなってしまった・・・

571:デフォルトの名無しさん
12/01/25 02:58:13.00 .net
変わる以前にGCN対応ドライバ&ランタイムまだ出てないでしょ
CCC12.1Previewが出回ってるからそれ付属のSDKランタイムなら動くんじゃないの

572:デフォルトの名無しさん
12/01/25 03:08:02.37 .net
Kernel AnalyzerもTahiti対応版出てないしな

573:デフォルトの名無しさん
12/02/01 22:06:59.00 .net
RADEONとGeforce、ガチンコ対決ではごっちが速いの?

574:デフォルトの名無しさん
12/02/01 22:33:40.43 .net
ごっちかな

575:デフォルトの名無しさん
12/02/01 23:52:53.73 .net
そもそもガチンコな応用でOpenCLってまともに実績あるの?

576:デフォルトの名無しさん
12/02/02 00:02:24.64 .net
無ければなんだっての?

577:デフォルトの名無しさん
12/02/02 15:35:32.54 .net
いや別に問題ない

578:デフォルトの名無しさん
12/02/10 23:47:32.03 .net
とりあえず齧る分には公式のプログラミングガイド買っとけばおk?

579:デフォルトの名無しさん
12/02/13 02:50:23.08 .net
OK
C言語と同じ


580:デフォルトの名無しさん
12/02/22 23:40:42.01 .net
サブルーチンみたいにカーネルに直接引数渡して処理できればなぁ
アドレスを渡す時とかすげえ面倒。

581:デフォルトの名無しさん
12/02/23 01:38:17.77 .net
そんな気軽にあちこちで使うようなもんじゃないっしょ

582:デフォルトの名無しさん
12/03/08 16:45:33.65 .net
カーネルソース丸出しか
特定デバイス用にコンパイルしておかないと
いけないのがなあ

583:デフォルトの名無しさん
12/03/08 16:57:57.20 .net
大したことないやつほど隠したがる銭湯の法則

584:デフォルトの名無しさん
12/03/08 22:38:56.05 .net
BOINC的なもので使うと不正対策必要で、既知の答えも一緒に計算させたりして対策するんだけどエコじゃないて悩ましいよ

585:デフォルトの名無しさん
12/03/11 01:23:31.48 .net
それなら同じWU他のやつに配って結果一致したやつだけ採用、
合わなかったら更に配布して一致した方採用でいいんでないかね
どのみち普通にやったって計算エラーになるのもいるし

586:デフォルトの名無しさん
12/03/11 02:45:56.59 .net
つーかカーネルがソースコードだから
改竄される恐れがなんて懸念するような
プログラムなら、どんな形態で配るにせよ
ディスアセンブルされりゃ同じだって。

587:デフォルトの名無しさん
12/03/17 16:17:03.96 .net
個人PCでスパコンの1/1000の計算速度(10テラFLOPS)だってよ。スゲーな。

URLリンク(dualsocketworld.blog134.fc2.com)

588:デフォルトの名無しさん
12/03/18 17:23:23.96 .net
10TFLOPSっていうと10年前のスパコンの性能と同じくらいだな

589:デフォルトの名無しさん
12/03/18 20:53:01.85 .net
10年後に京の性能がご家庭に来るかというと、さすがにそうでもない感。

590:デフォルトの名無しさん
12/03/18 21:28:00.64 .net
物理的限界が近づいてきたからこれまでとは事情が違うよね。
無知な人は技術でなんとかなるって言っちゃうだろうけどw

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

592:デフォルトの名無しさん
12/03/19 10:47:53.21 .net
O(n^2)の直接法のN体とか本当にベンチマーク以上の意味はないんだがな
実用コードはツリー法やFMM法を使う

593:デフォルトの名無しさん
12/03/19 17:14:11.16 .net
O(n^2)がツリー法だとO(n logn)に、FMMだとO(n)になるそうだ

www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1084-12.pdf

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

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

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

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



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

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

600:デフォルトの名無しさん
12/06/27 21:29:31.15 .net
>>594
違うというか、根本的に違う

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

602:デフォルトの名無しさん
12/07/01 01:24:59.44 .net
>>595


603:デフォルトの名無しさん
12/07/01 12:56:18.02 .net
>>595


604:デフォルトの名無しさん
12/07/05 01:16:06.38 .net
GT440でclinfoしたら
Max compute units: 2
と出たんだけど、この2とGT440のCUDAコア96とはどういう関係にあるの?

605:デフォルトの名無しさん
12/07/05 12:03:19.25 .net
NVIDIAの場合
Max Compute unit = Streaming Multiprocessor(SM) = Streaming Multiprocessor eXtreme(SMX)

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

607:デフォルトの名無しさん
12/07/27 11:10:16.02 .net
>>601
Intel の Windows 用ならあるね。
AMD は知らん。

608:デフォルトの名無しさん
12/07/28 14:23:52.35 .net
URLリンク(software.intel.com)
のダウンロードリストボックスのOpenCL CPU only runtime(Windows* OS)ってやつか。
見落としてた。ありがとう。

609:デフォルトの名無しさん
12/07/30 20:27:19.07 .net
CPUでCLやっても遅いだけで意味無いなぁ

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

611:デフォルトの名無しさん
12/07/30 22:41:12.50 .net
CPUでOpenCL使うとお手軽にSIMD+マルチコア使えるな。

612:デフォルトの名無しさん
12/07/30 22:48:37.20 .net
ベンチも取らずに知ったか

613:デフォルトの名無しさん
12/07/31 00:12:55.35 .net
ベンチと言えば Intel と AMD で比べてみたら、Intel のほうがかなり速かった。
いやまあ、その PC の CPU は Intel だったんだけど。w
AMD な CPU だと逆転したりするのかなぁ。

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



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

616:デフォルトの名無しさん
12/07/31 18:30:47.41 .net
少なくともカーネル部分はお手軽だよ。

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


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

618:デフォルトの名無しさん
12/08/01 06:14:34.83 .net
インテルコンパイラ使っとけ。
それかFortranだな。

619:デフォルトの名無しさん
12/08/01 13:12:30.64 .net
simdと言っているのがSSEのパックドなインストラクションのことでいいならgccでもOK。

620:デフォルトの名無しさん
12/08/01 22:34:10.47 .net
gccじゃ自動ベクトル化は皆無に等しいだろ。

621:デフォルトの名無しさん
12/08/01 22:54:07.37 .net
ちょっと前までSSEwとか思ってたけど
これだけ並列プログラミングが普及してきてAVX2とかみると考え変わる

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

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


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

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

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

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

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

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


626:デフォルトの名無しさん
12/08/02 06:37:43.98 .net
無脳をさらすスレですか?

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

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

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


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

630:デフォルトの名無しさん
12/08/02 08:13:47.37 .net
論理的に別なのはわかるけど
対象がCPUの時にはメモリコピーしないような実装になっててもおかしくないような気もする

631:デフォルトの名無しさん
12/08/02 08:14:10.39 .net
まあ、小さい規模のコードしか書いてない奴には分からんかもしれんが、
複数のハードウェアプラットフォームをそれぞれメンテしないといけなのは、
かなりの工数がかかるからな。
多少のパフォーマンスを犠牲にしても良いことなんて沢山あるんだよ。


632:デフォルトの名無しさん
12/08/02 09:23:17.69 .net
えぇ~・・・・・・。
キミタチは実際につかったことないんだね?

URLリンク(software.intel.com)
の Sharing Resources Efficiently とか読んでごらんよ。

633:デフォルトの名無しさん
12/08/02 23:04:54.27 .net
これは恥ずかしいw

634:デフォルトの名無しさん
12/08/03 00:10:12.73 .net
どれにレスしてんだか分からんレスがおおいな。

635:デフォルトの名無しさん
12/08/03 00:34:42.14 .net
このスレ、99割が誤爆レスだからな。

636:デフォルトの名無しさん
12/08/03 19:43:05.27 .net
>>630
> 、99割
0.99 割? 990% ?

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

637:デフォルトの名無しさん
12/08/04 01:06:20.28 .net
だ ー か ー ら ー ぁ 誤 爆 で し ょ

638:デフォルトの名無しさん
12/08/08 17:52:37.24 .net
なんでこのスレこの板にあるんだ?

639:デフォルトの名無しさん
12/08/09 01:30:40.64 .net
OpenCLハードル高いなぁ
どの機材構成でどのプラットフォームでどう書けば速くなるか
検証すべき項目が多すぎる

640:デフォルトの名無しさん
12/08/09 02:10:21.89 .net
逆に考えるんだ
速さをあきらめればすべて解決する

641:デフォルトの名無しさん
12/08/09 02:22:49.56 .net
あちらを立てればこちらが立たずですなぁ

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

643:デフォルトの名無しさん
12/08/10 23:05:10.52 .net
write once, tune everywhere

644:デフォルトの名無しさん
12/08/10 23:06:13.71 .net
anywhereだったか

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

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

647:デフォルトの名無しさん
12/08/21 22:38:27.42 .net
OpenCLで最速の構成教えて

648:デフォルトの名無しさん
12/08/22 00:38:21.46 .net
素晴らしいプログラマ

これに尽きるw

649:デフォルトの名無しさん
12/08/22 09:45:30.14 .net
>>642
Radeon の一番高いヤツをさせるだけさす。w

650:デフォルトの名無しさん
12/08/31 15:37:24.77 .net
APUより速いん?

651:デフォルトの名無しさん
12/09/06 03:18:56.29 .net
だれかOpenCLでOpenGL実装してくれ

652:デフォルトの名無しさん
12/09/08 00:09:32.81 .net
むしろOpenManko実装してくれ

653:デフォルトの名無しさん
12/09/08 01:20:37.10 .net
プロプライエタリですので

654:デフォルトの名無しさん
12/09/08 18:07:21.58 .net
OpenMankoはよ

655:デフォルトの名無しさん
12/09/08 22:36:50.84 .net
互換フリー0実装のKuperで我慢しとけ。

656:デフォルトの名無しさん
12/09/09 23:25:50.57 .net
Mankoは商用製品で我慢しろよ

657:デフォルトの名無しさん
12/09/20 15:05:43.24 .net
昔の日本はOpenだろ

658:デフォルトの名無しさん
12/09/27 04:12:39.50 .net
AMD Releases CodeXL Public Beta | SemiAccurate
URLリンク(semiaccurate.com)


659:デフォルトの名無しさん
12/10/05 01:09:53.66 .net
URLリンク(pc.watch.impress.co.jp)

660:デフォルトの名無しさん
12/10/05 01:15:43.73 .net
スレリンク(poverty板)

661:デフォルトの名無しさん
12/10/05 01:16:52.94 .net
URLリンク(prohardver.hu)


662:デフォルトの名無しさん
12/10/28 20:13:53.12 .net
意外と

663:デフォルトの名無しさん
12/11/30 23:33:09.24 .net
Khronos Releases Significant OpenCL 1.2 Specification Update | techPowerUp
URLリンク(www.techpowerup.com)

664:デフォルトの名無しさん
12/12/07 11:27:13.90 .net
OpenCLでパスワード解析
URLリンク(securityledger.com)


665:25-gpu-monster-devours-passwords-in-seconds/



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

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

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

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

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

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

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

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

672:デフォルトの名無しさん
13/01/14 05:46:41.04 .net
ジョブの内容と数によるんでは。

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

674:デフォルトの名無しさん
13/01/14 22:02:09.36 .net
自分のマシンのFLOPS計るのはどのベンチがお勧め?

675:デフォルトの名無しさん
13/01/15 00:36:48.35 .net
クロックとシェーダの数を掛ければ。

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

677:665
13/01/20 11:45:47.76 .net
Catalystのバージョン上げたらCPU使用率下がりました

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

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

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

681:デフォルトの名無しさん
13/01/23 00:21:18.43 .net
>>674
特に設定しないとシングルコアだからならない

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

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

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

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

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

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

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

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

690:デフォルトの名無しさん
13/02/07 05:31:00.88 .net
AMDだとこれが詳しい。NVIDIAのだったらCUDAのマニュアルを読めばいい。
URLリンク(developer.amd.com)

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

692:デフォルトの名無しさん
13/02/12 06:11:15.51 .net
寝言は寝て言え

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

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

695:デフォルトの名無しさん
13/05/09 04:25:55.54 .net
Intel Releases SDK with OpenCL 1.2 Support for Intel Xeon Phi Coprocessors | techPowerUp
URLリンク(www.techpowerup.com)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

714:デフォルトの名無しさん
13/08/18 NY:AN:NY.AN .net



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



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

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

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

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

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

719:デフォルトの名無しさん
13/10/24 22:48:45.60 .net
なるほど。

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

720:デフォルトの名無しさん
13/11/22 19:43:38.99 .net
Khronos Groupが「OpenCL 2.0」を完成、コンピュータビジョン向け「OpenVX 1.0」の暫定仕様も発表
URLリンク(sourceforge.jp)
URLリンク(www.khronos.org)

721:デフォルトの名無しさん
13/11/22 19:46:35.85 .net
タラタラ完成してんじゃねーよ

722:デフォルトの名無しさん
13/11/22 20:47:48.41 .net
OpenVXってのが気になる

723:デフォルトの名無しさん
13/11/25 08:28:25.60 .net
JOCLも、早く OpenCL 2.0 に対応しろよ

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

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

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

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

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

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


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

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

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

729:デフォルトの名無しさん
13/12/01 02:54:53.01 .net
そんなに面倒か?
必要十分しかないと思うんだが

730:デフォルトの名無しさん
13/12/01 03:12:45.40 .net
CUDAの簡単さと比較すると面倒

731:デフォルトの名無しさん
13/12/01 03:18:23.16 .net
あほか

732:デフォルトの名無しさん
13/12/01 03:47:08.42 .net
c++binding使えば簡単じゃないか。
まあ、プラットフォーム選択する時点で
cudaには必要ない工程だが

733:デフォルトの名無しさん
13/12/01 07:35:28.28 .net
>>719
intelが最近OpenCLライブラリやGPU向けライブラリのプレビュー版を発表してる
URLリンク(software.intel.com)
IPPはこれまで最適化済みCPUライブラリだったけど、それをGPUにも拡張しようとしてる模様

734:デフォルトの名無しさん
13/12/03 07:13:40.30 .net
>>726
ありがとうございます。

調べてみます。

735:デフォルトの名無しさん
13/12/03 13:47:40.89 .net
amd apu+linuxでaparapi経由で使ってみたんですが面白そうですね。
はるか昔に、javaで配列関係はどうしようかjniにでもしようかと悩んでたんですがこれでやっと悩みは解決できました。
java9.stream.parallelがopenclに対応してaparapiも不要になる(jvmと結合する)ようなので、openclを使えばjavaのままで配列のソリューションが得られるようです。
まだ触って4日ぐらいですが勉強がてらに、行列などの配列依存のライブラリを書き直してみようと思います。

736:デフォルトの名無しさん
13/12/30 11:40:26.21 .net
kaveriが販売される模様

737:デフォルトの名無しさん
14/01/11 01:38:48.46 .net
>>717
software.intel.com/en-us/vcsource/tools/opencl-sdk/clu-api
CLUとか
github.com/Computing-Language-Utility/CLU/blob/master/simple/simple.c
このぐらいに書ける。
使ったことはないので便利かどうかは知らない。

738:デフォルトの名無しさん
14/02/24 15:19:36.59 .net
Core iとグラボつんでグラボで画面表示しててもIntelHDでOpenCLの計算をさせることはできるのでしょうか

739:デフォルトの名無しさん
14/02/24 16:36:29.14 .net
遅くはなろうが計算は出来るでしょう

740:デフォルトの名無しさん
14/02/24 17:04:11.19 .net
あれ?遅くなる要因あるのでしょうか
使ってないIntelHDも使いたいというイメージだったのですが

741:デフォルトの名無しさん
14/02/24 18:04:09.93 .net
CPUでやったほうが速いってだけ

742:デフォルトの名無しさん
14/02/24 18:14:29.38 .net
CPUスレッドとは排他でしか使えないと言うことですか?

743:デフォルトの名無しさん
14/02/24 18:17:43.70 .net
732だけど、単純にIntelHDをグラボと取り違えただけだよ

744:デフォルトの名無しさん
14/02/24 18:34:07.15 .net
了解です

745:デフォルトの名無しさん
14/03/23 07:57:03.89 2/mKAdk3.net
Ubuntu用のSDKはDebian GNU/Linuxで使えますか?

746:デフォルトの名無しさん
14/03/24 20:46:02.33 +qxUA/lQ.net
>>733
俺も今日勉強始めたばっかだから実態よく分からんが、
規格ミニマムだとGPUで実行するバイナリを、
プログラム実行時に動的にコンパイルしてマウントする場合があるらしく、
それだとコンパイルのオーバーヘッドで遅くなりそう。

実行時にコンパイルせず事前にコンパイルしたバイナリを使うこともできるそうで
NVidia, AMDあたりはLLVMで動いてるからまず大丈夫だろうけど、HD Graphicsはどうなるんだろうか?

747:デフォルトの名無しさん
14/04/04 10:41:37.63 YtPgho8U.net
CentOSにAMDのドライバを入れることに成功したけど、Debianには入らなかった。

748:デフォルトの名無しさん
14/04/23 21:53:33.92 e3QPM/2Y.net
GPU持ってるCPUを使っているとか?

749:741
14/04/23 22:38:07.40 Xxk46iNW.net
はい、haswell(i7-4771)を使っています。
その他のグラフィックボードは積んでいません

750:デフォルトの名無しさん
14/04/23 23:16:57.80 RpkkzUGi.net
Platformの数とデバイスの数はイコールじゃない。
デバイスはCPUとGPUの2個見つかるはず。ちなみに内蔵かどうかは関係ない。
気になるならclGetPlatformIDs/clGetPlatformInfoで見てみりゃいい。

751:741
14/04/23 23:39:22.71 Xxk46iNW.net
はしょって書くと以下のように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

752:デフォルトの名無しさん
14/04/23 23:55:44.68 TUgA9FPl.net
Platform数はドライバの数
汎用のドライバとIntelチューンのドライバの2つが入っていたら2つのプラットフォームが出てくる
少なくともWindowsだとそんな感じ

あと745の結果でPlatformIDが同じなのはおかしい
多分745のプログラムはバグってる

753:741
14/04/24 00:06:20.94 T0adDPXi.net
ドライバの数ですか・・・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

754:デフォルトの名無しさん
14/06/26 07:45:11.00 DsGyZECt.net
>>717
cl.hpp使えばそんな難しくないだろ

URLリンク(qa.atmarkit.co.jp)

755:デフォルトの名無しさん
14/06/26 08:39:51.72 rajeiAxv.net
デフォルトのコンテキストやキューが追加されたのはOpenCL1.2からだから
NVIDIAじゃ使えないことに注意な。

756:デフォルトの名無しさん
14/06/26 12:05:53.66 u/fLSVr/.net
>>747
// OpenCL側に結果を書き込む領域を作成する
const size_t
length = 0x10;
cl::Buffer
array( CL_MEM_READ_ONLY, length * sizeof( float ) );

( ´,_ゝ`)

757:デフォルトの名無しさん
14/06/26 22:35:19.78 BVAAIzQv.net
>>749
答えといてやれよ。

758:デフォルトの名無しさん
14/08/29 13:36:44.60 P9znXDYB.net
AMDとMS,GPU演算用途向けのコンパイラ「C++ AMP v1.2」を発表
URLリンク(www.4gamer.net)
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)に準拠したプラットフォームをサポート

759:デフォルトの名無しさん
14/08/30 20:21:59.78 rOGhcjm5.net
ム板はしょっちゅう落ちるな。

760:デフォルトの名無しさん
14/08/30 20:24:50.83 nZ1XDijW.net
よく落ちるな‥

761:デフォルトの名無しさん
14/09/19 08:34:07.91 KzrQAxPc.net
OpenCL 1.2が現在のstableになるのかな?
1.1だとOpenCVは動かないですね

762:デフォルトの名無しさん
14/09/19 23:42:34.05 dfKMMaQo.net
NVIDIAが1.2に対応しないからうちは1.1縛りだな。
OpenCVみたいにCUDAと両方やるならいいんだろうけど。

763:デフォルトの名無しさん
14/10/15 00:45:43.10 bIoSVMWH.net
VBAで使いたいのですが、ラッパーDLL何か
ご存知ないでしょうか?
C#用のは幾つか見つかるのですが…

764:デフォルトの名無しさん
14/10/15 01:04:21.97 bIoSVMWH.net
質問あげ m(_ _)m

765:デフォルトの名無しさん
14/10/15 10:11:05.56 3rwOGNYw.net
>>756
C#でVBAとOpenCLの仲介DLLでも作ればいいんでないの?
Windows知らんけど。

766:デフォルトの名無しさん
14/10/15 10:36:01.03 bIoSVMWH.net
>>758
そうなんですけど、既にあるならそれ使いたいなと。

いま、ClooというC#用のラッパー使ったりソース見てるのですが、
ジェネリクスは使えないからどうするんだ?とか
DLL作ったことないのでチョット途方に暮れてます…
(シンプルなDLL作成サンプルは理解できますが、
openclを全てラップするのは無理…)

767:デフォルトの名無しさん
14/10/15 19:03:22.75 oTkKZ4Eq.net
既にあるもので使い方覚えるより
自分で造った方が早い場合も多い

768:デフォルトの名無しさん
14/10/15 22:49:10.60 y41AVgB1.net
口だけ番長

769:757
14/10/16 00:06:46.03 1e+5gfAa.net
>>760
プラットフォームを返すところから少し作り始めてみましたが、
VBAのcollectionとして値を返すなら、
C#では何なの?ディクショナリ?ってとこで
早速つまづいてしまいました(;_;)

なので、VBAでラッパー作ろうかと迷走中…

770:デフォルトの名無しさん
14/10/16 00:45:29.59 925HRnD9.net
別に何しようと勝手だけど
VBAでOpenCL使う必要性って何?

非同期処理が苦手なVBAは「待ち」が生じるような複雑な計算は向かないし
計算速くするだけならDLLなりに入力投げて結果だけもらえばいいし
Officeとの連携ならVBA使う必要ないし
規定されたソフトウェア以外使用禁止だったらそもそもOpenCL使えそうにないし

771:デフォルトの名無しさん
14/10/16 15:24:45.15 7O3aHiya.net
そもそもVBAに固執してる時点で視野狭窄。

772:757
14/10/16 17:11:21.81 8j84DcHT.net
固執?( ´����×����` ) プッ

773:757
14/10/16 17:12:09.70 8j84DcHT.net
ありゃw

774:デフォルトの名無しさん
14/10/17 13:05:53.28 npcZf8Up.net
あらあら可哀想なひとでしたか。

775:デフォルトの名無しさん
14/10/17 16:09:50.28 aw+RiOqr.net
こんなところにもシナが湧くようになったか

776:デフォルトの名無しさん
14/10/18 01:23:16.18 sx5ESDLm.net
そもそもそんな方法よりこうした方が・・とか
上流にまで遡って正そうとする奴がいるけど
余計なお世話なんじゃない?
VBAでOpenCLを使う方法を聞かれているんだから
答えがあるならそれに出せばいい。
無いならわからないと答えればいい。
見当違いのに話を捻じ曲げて、してやったりと
悦にはいるのか?

777:デフォルトの名無しさん
14/10/18 13:19:15.72 Z3gRebWt.net
余計なお世話だと感じたらスルーすればいいだけ
スルーも出来ないお子ちゃまが馬鹿にされるだけ

778:デフォルトの名無しさん
14/10/18 15:49:20.82 mzkaImX0.net
>>769
あんた公務員やな

779:デフォルトの名無しさん
14/10/18 19:40:45.23 P/Strs7V.net
余計な世話しなきゃいい

780:デフォルトの名無しさん
14/10/19 02:01:55.89 CeuU+CpH.net
まあ、余計なお世話なやつは
わかってない(解決策はわからない)
ってことだから

解決策以外はただの雑談
スルーするかしないかなんて、
どうでもいいこと

781:デフォルトの名無しさん
15/01/12 09:09:09.30 BHqm0X8b.net
OpenCLとCUDAの相互運用について情報を探していたらCUDAカーネルを
OpenCLランタイムから実行できると書いてある記事を見つけたんだが、
本当にそんなんできるんだっけ?
URLリンク(www.4gamer.net)

782:デフォルトの名無しさん
15/02/04 08:37:05.19 PgjHlyod.net
いままでコンスタントに500[ms]程度でkernel処理が終わってたのが、
1分以上kernel処理が終了しない異常が、
処理2回目とあと不定期に発生するようになりました。
処理の内部のループカウントを数えたら正常なときと大差なく、
重い処理をしてはいないようです。やはりハードの不具合でしょうか?

783:デフォルトの名無しさん
15/02/04 11:47:15.88 kErMECZ6.net
windows update

784:デフォルトの名無しさん
15/02/08 04:16:42.58 4RF7kRSx.net
モバイルだと、GPU性能とCPU性能あんま大差ないからな。CPUだと4コアでNEON使えば最大性能で60GFLOPSぐらい?最新のTegraX1とかだと300GFLOPSオーバーするかもしれんが
現行のAdreno330ぐらいだと150GFLOPSくらい?

785:デフォルトの名無しさん
15/02/08 04:19:43.86 4RF7kRSx.net
だからNEONのコードをわざわざ書き直す必要まだないかな?メモリアクセスのほうがボトルネックになってるっぽいのもあるし。まぁ、CPUとGPU実行じゃ消費電力ちがうかもしれんが。

786:デフォルトの名無しさん
15/02/15 00:22:26.32 rqZ8R7KU.net
個人的にはこの言語産廃な気がするけどどうなんだろう
手続きの多さはさすがにちょっと…
CUDA←AMDも似たもの作るorライセンス料払ってでも統一しろ(最良)
C++AMPとOpenACC←そのレベルの抽象言語ぐらい統一しろ(次善)
OpenCL←やめて

787:デフォルトの名無しさん
15/02/15 10:01:14.87 MuMGrz7U.net
OpenCLはハード非依存のGPGPUプラットフォームとして用意され、
その上にライブラリを構築してユーザーはそれを使うのが本来意図してたこと。
残念ながらそういうライブラリがあまり出てきていないのが現実かな。

788:デフォルトの名無しさん
15/02/15 12:56:46.74 TTUR8i8s.net
OpenCLはDSPとかFPGAとかGPU以外もターゲットに入っているから
下手に統合しない方がいいと思う

789:デフォルトの名無しさん
15/02/15 20:42:11.90 aU4fh9i9.net
とか言いながら、触ればわかるが単なるCUDAの焼き直しなんだよな、これ

790:デフォルトの名無しさん
15/02/15 21:52:13.56 DwKzmQqr.net
nvidiaのquadro K620Mか
インテルグラフィックHD5500にしようと思うんだけど
openclとか数値計算の初歩の練習としてはどっちがいいよ

791:デフォルトの名無しさん
15/02/15 22:09:31.75 SQuQNCw8.net
>>783
IntelのOpenCLドライバって糞だって印象しかない。
AMDやNVIDIAで動いてたコードが通らなかったりするし。

792:デフォルトの名無しさん
15/02/15 22:20:29.24 DwKzmQqr.net
>>784
ありがとうございます

793:デフォルトの名無しさん
15/02/15 22:26:41.71 SSlwb3yD.net
実は正しくないコードが他の環境ではたまたま通っていただけ、てのはよくある。
たしかにIntelのコンパイラは厳しいから、普段の開発は他のGPUでやっていても
IntelのKernel Builderでカーネルのチェックしたりするな。

794:デフォルトの名無しさん
15/02/16 00:42:06.13 bUgXoWHZ.net
>>786
コードそのものに問題はなかったよ。
カーネルが複雑になりすぎるとIntelのコンパイラは落ちるから論外。

795:デフォルトの名無しさん
15/02/16 00:55:29.94 0cGz3jVB.net
IntelはGlobalWorkingGroupとLocalWGのサイズがN倍じゃないと動かないんだけどAMDは変な比率でも動く
原因調べるのの時間かかったよ

796:デフォルトの名無しさん
15/02/16 02:05:22.57 bUgXoWHZ.net
>>788
そりゃ動くほうが不思議だw 自分の場合はカーネルを小さくしたら
普通に通ったからそういう問題はなかったはず。

797:デフォルトの名無しさん
15/02/16 07:56:11.60 F7oc1qZ/.net
>>784
同意

798:デフォルトの名無しさん
15/02/16 13:24:15.63 LR9r89r7.net
AMDのコンパイラも最適化オンにしたらコンパイル終わらなかった事あったので、結構怪しい。(2011年ぐらいの話だけど)

799:デフォルトの名無しさん
15/02/16 13:44:20.54 bUgXoWHZ.net
>>791
確かにAMDのコンパイラの最適化は完全に地雷だったw

800:デフォルトの名無しさん
15/02/16 21:40:57.33 HyfDl27x.net
>>783
初心者がこれからOpenCLを始めるのにどの環境を選ぶか、という話なら
NVIDIAは避けるのが無難だな。デバッガやオフラインコンパイラなんかの
ツールが皆無に等しい。
CUDAもやりたいとかいうなら別だが。

801:デフォルトの名無しさん
15/02/16 22:38:07.54 QHeQ+cdL.net
>>793
多くの奴はGPGPUするぞ、じゃメジャーなCUDAで良いやだからな
OpenCL使ってIntel,Nv,AMD(あとFPGAとか?)でちゃんと動くものを作らなければいけないってあんまりないだろからな

802:デフォルトの名無しさん
15/02/17 02:24:50.68 xvdMpEI6.net
OpenCL使ったところで、同じコードでどんなCPU/GPUでも効率よく動くとかレアケースだしなぁ。

803:デフォルトの名無しさん
15/02/17 08:22:15.68 fCIGE3+K.net
最高のパフォーマンスを引き出すチューニングというなら別だが、どれかGPUを想定した
コードならそこそこの速度で動くだろ。たいてい、従来のCPUより速けりゃ十分だろうし。
FPGAだけは別格で、GPUと同じコードじゃぜんぜん速度が出ないだろうが。

804:デフォルトの名無しさん
15/02/18 10:38:35.72 CGhwPhC5.net
SSEレジスタに乗ること期待して書いたchar16とかGPUに食わせたら憤死するで。

805:デフォルトの名無しさん
15/02/18 16:12:46.20 pennC58Z.net
アーキテクチャ毎に最適化しないと、
OpenCLで性能なんか出せないよ。

806:デフォルトの名無しさん
15/02/18 22:51:48.89 Z2YWe05s.net
>>797
ベクタ型は想定するターゲットで効果が見込まれる場合に使うべきで、そういう意味では
どっちかというとチューニングの範疇だろう。
そもそも、インテルのコンパイラならベクタ型使わずに普通に書いてSSE/AVXを
使ってくれるんだが。CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR=1だしな。
下手に最適化しようとして却って駄目にしているように思える。

807:デフォルトの名無しさん
15/02/19 01:05:51.96 f67JHinc.net
かたやGPUになるとパイプラインのスカスカ具合見ながら
int2とかint4とか使って依存関係のない演算で埋めていかないとお話にならんしなぁ。

808:デフォルトの名無しさん
15/02/19 02:14:32.89 KUEe9MYM.net
アーキテクチャごとの最適化は、まだコンパイラとかの成長中の部分もあるだろうしなぁ
そのうち改善はしてくれるような気がするけど

809:デフォルトの名無しさん
15/02/19 22:30:01.89 t/UF4QVL.net
そうは言っても今のアーキが向かってる方向ってコンパイラ実装の難易度上がってるから
コンパイラの苦手な部分を補填してやらにゃ速くならないってのは改善される事はないと思う
むしろそこまで賢いコンパイラとか使いたくない

810:デフォルトの名無しさん
15/02/19 23:19:07.50 1LBnym+M.net
技術的側面もあるが
それ以上にIA64がコケたことが
コンパイラを賢くしてプロセッサを脳筋にする道を
決定的に閉ざした
コンパイラの賢さに関して言えば
足並みがそろってない事の方が問題だと思う

811:デフォルトの名無しさん
15/02/26 07:17:19.04 BKvgQceT.net
クロノスってなんかのアニメであったような

812:デフォルトの名無しさん
15/02/26 14:44:53.01 ZlyxtZ3O.net
クロノスはゼウスのお父さん

813:デフォルトの名無しさん
15/02/26 20:31:41.27 yDVFOiWq.net
マッシーンロボッ!
お前には、敵はない!

814:デフォルトの名無しさん
15/03/08 09:21:28.42 rJrv12ko.net
OpenCL2.1は発表されたが相変わらずNVIDIAはやる気なさそうだなぁ、コメントくれないし。
おかげでいまだに開発は1.1ベースだよ。

815:デフォルトの名無しさん
15/04/12 20:37:22.82 4fkLnYAO.net
OpenCLでHEVCをGPUに部分的にデコードさせる実験やってるな
まあ新製品はハードウェアでHEVCに対応してるから不要になっちゃうんだけど

816:デフォルトの名無しさん
15/04/12 20:37:43.88 4fkLnYAO.net
×やってるな
○やってたな去年の夏ごろ

817:デフォルトの名無しさん
15/04/12 21:03:58.32 b726GPIq.net
結局使えるのは、いつくらいになるのか…

818:デフォルトの名無しさん
15/04/25 14:51:39.69 zIE5htjK.net
vexcl使えばopenclもcudaも関係なくGPUが使えるっぽいけど

819:デフォルトの名無しさん
15/04/25 16:55:17.48 DlB5+dQK.net
NVIDIAでやっと1.2が使えるようになったと思ったらバグってんじゃねーか。
本当にやる気無いのな。

820:デフォルトの名無しさん
15/04/26 16:04:03.54 ljYoE8AT.net
そらやる気ないやろ。
cudaなら囲い込みできるのに、
cudaの焼き直しのOpenCLなんて協力するだけ損だし。

821:デフォルトの名無しさん
15/04/27 10:52:17.46 1JZfjbGY.net
URLリンク(pocl.sourceforge.net)

822:デフォルトの名無しさん
15/06/06 14:22:49.99 xHuAhJj5.net
Core i7 3990とGeForce使ってるんだけど、IntelHDが認識されてなくてデバイスマネージャに表示されない
OpenCLの性能評価を試したいんだけど、IntelHDのドライバをインストールすれば認識されますかね?

823:デフォルトの名無しさん
15/06/07 15:10:46.44 OFY6KtcL.net
>>815
モニタはiGPUとゲフォどっちにつないでる?
それと自作PCか?

824:デフォルトの名無しさん
15/06/07 15:14:39.85 OFY6KtcL.net
あ、それとintel Opencl driver インストールうまくできるか試してみて結果おしえて

825:デフォルトの名無しさん
15/06/07 20:39:44.84 NnypvtRT.net
>>816
モニタはGeForceに接続。ドライバインストール試してみる。

826:デフォルトの名無しさん
15/06/08 05:35:15.96 ewd9hwV4.net
Intelのにモニターをつなげないと
いけなかったはず。

827:デフォルトの名無しさん
15/06/08 13:13:32.81 rnRcmo2O.net
i7 3990は検索してもろくにヒットしないけど、Sandy Bridge-Eなら無理なのでは。

828:デフォルトの名無しさん
15/06/09 01:36:37.47 c7FHKlcw.net
そだね、そのくらい確認してるかと思って聞かなかったけど、
iGPUがついてないならそもそも無理だわな。

829:デフォルトの名無しさん
15/06/10 12:18:07.90 VIG2W0Y+.net
うまくいけばCPUの方はOpenCLで動かせるかもしれない
やる意味ないけどね

830:デフォルトの名無しさん
15/06/19 09:06:28.51 giF1KE9b.net
GPUのないノートのCPUでデバックしてから
GPUで実行できるなら俺はうれしい

831:デフォルトの名無しさん
15/06/19 21:38:40.35 s6jV56Gc.net
別途ドライバをインストールしなきゃならんってのが難点なんだよな。
SSE/AVXをお手軽に使えて、コア数に応じてマルチスレッドで実行してくれるから
使いではあると思うんだが。

832:デフォルトの名無しさん
15/06/19 23:20:08.11 KZJPVbVq.net
デバッグなんかよりチューニングが大事だからターゲットハード以外でコーディングしてもなぁ

833:デフォルトの名無しさん
15/06/20 00:21:14.39 46SUOvEb.net
なにがなんでも最高性能出さなきゃならん用途ばかりじゃあるまい。
一般的な並列化のみで大多数のハードでそこそこ速くなりゃ十分、という応用もある。

834:デフォルトの名無しさん
15/06/22 00:09:27.57 e4hiyCLD.net
CLはチューニングなしだとCPUに惨敗もありえるのでな。

835:デフォルトの名無しさん
15/06/22 01:11:03.05 rREKDKy5.net
メモリ転送とenqueueしてからの計算開始に時間かかるのがなぁ

836:デフォルトの名無しさん
15/06/22 07:39:26.22 FYteK6ai.net
CPUに惨敗してた処理がチューニングでどうかなるもんか?
単に並列化できてなかっただけじゃね?

837:デフォルトの名無しさん
15/06/22 21:40:24.04 e4hiyCLD.net
>>829
レジスタ数とか共有メモリサイズとかでブロックサイズだっけnVIDIAでいうところのwarp数とか
調整しないとてんでダメだよ。

838:デフォルトの名無しさん
15/06/22 21:41:31.55 e4hiyCLD.net
>>828
そのコストを払っても高速かどうかは実機でテストするしかないしな。
機種ごとにCLを使うか通常ルーチン使うか選別するくらいしないと効果なし

839:デフォルトの名無しさん
15/06/23 02:38:28.65 22fvktD/.net
チューニングは難しい
何となくやってみたら、処理時間が5倍遅くなったときの衝撃は大きかったな

840:デフォルトの名無しさん
15/06/23 08:25:00.27 drLPVFNo.net
ターゲットのハードに特化したチューニングをしないと使い物にならんようなことを
言っている人がいるが、そんなこといったらユーザー環境を特定せずに広く配布する
アプリなんて作れんな。
うちじゃ一般的なGPU向けチューニングしかしてないが、NV/AMD安いのから高いのまで
テストしてみてローエンドでもCPUの数倍くらいで動くから十分、速く動かしたいなら
高いGPU使え、ってなノリだな。

841:デフォルトの名無しさん
15/06/23 08:50:44.48 LQs/3Np0.net
一番遅いハードに合わせて作っとけば問題ないよ

842:デフォルトの名無しさん
15/06/23 22:58:24.67 VwORpFDM.net
>>833
AMDのHSAのAPUとAMDのOpenCl2のdGPUがHPCを除いたいまのデファクト
それ以外は無視で良い。Nvは一般用でGPGPUやる気ないし
HPC用ならターゲットのハードに特化したチューニングは当然だし

843:デフォルトの名無しさん
15/06/24 01:34:16.84 35TMs94C.net
madとかそういう複合命令(?)を使ってチューニングする程度で抑えたいところ

844:デフォルトの名無しさん
15/08/31 07:10:09.59 kH1QDWTh.net
Vexclの開発が止まってる
誰か引き継ぐ人はいないのか?

845:デフォルトの名無しさん
15/09/02 06:58:53.31 VNDyXTKC.net
早く2.0を使えるようにしてくれ

846:デフォルトの名無しさん
15/09/03 00:02:12.18 iQnjIkb4.net
NVIDIA無視すりゃ幸せになれるぞ

847:デフォルトの名無しさん
15/09/03 01:44:07.69 cb/ef9ik.net
>>839
こんなに対応が遅いと思わなかったんだよ
次からはAMDを信じるよ、あればだけど

848:デフォルトの名無しさん
15/12/19 10:21:19.84 7/8YsZOJ.net
プログラマはMacを使ってるってマジ?
スレリンク(news板)

849:デフォルトの名無しさん
15/12/19 10:23:37.79 qfRCvKdP.net
単なる世間知らずが踊らされてそう言ってるだけ

850:デフォルトの名無しさん
15/12/19 12:49:21.08 BBUxwf4S.net
マルチコピペだぞそれ

851:デフォルトの名無しさん
15/12/19 15:25:38.18 iG82T79N.net
100スレ以上にレスしてNGにならないのは運営が公認してるマルチってことか

852:デフォルトの名無しさん
15/12/19 16:25:03.85 2xl0Mjgh.net
GeForceはOpenCL2.xに対応した?
CUDAに同様の機能が在るから技術的に無理という事はないだろうけど

853:デフォルトの名無しさん
15/12/19 18:13:33.83 LGhGH2LK.net
358でやっと1.2正式サポートしたところ。

854:デフォルトの名無しさん
15/12/19 19:06:17.07 2xl0Mjgh.net
サンクス。IntelですらOpenCL2.0に対応しているのに業界最大手のnVIDIAがやらないのはなぁ
CUDAを使えという事なんだろうけど、それではnVIDIA専用になってしまうからそれは避けたい。
かといってnVIDIAを無視する訳にもいかないというジレンマ
そろそろOpenCL2.xをメインにしていきたいのだが

855:デフォルトの名無しさん
15/12/20 00:20:21.34 ujiFhYYe.net
VGAはいまAMDがすごく伸びてきているんだろ
来年の後半にはVGAの販売数シェアではAMDがNvidiaを上回るんじゃないのか
再来年には一般グラフィックではIntel、AMDが2強ってなるんじゃないか

856:デフォルトの名無しさん
15/12/20 00:47:13.59 14eB8c4R.net
NVIDIAのOpenCL対応はちょうどAppleが採用やめたあたりから停滞したな。
結局のところNVIDIAにとって、そういうOpenCLを望む大口の顧客でもいない限り
OpenCLに力を入れる理由はないんだろうな。

857:デフォルトの名無しさん
15/12/20 01:02:38.32 XNwlDZDb.net
nvidiaはopenAMP+だっけ?あっちに力いれてんじゃないのかね?

858:デフォルトの名無しさん
15/12/20 04:40:12.37 oUoqwn36.net
AMDもCUDAに対応するみたいなニュースをみたけど、どうなったんだろう?
GPGPUの技術も速く落ち着いて欲しい

859:デフォルトの名無しさん
15/12/20 07:41:04.82 MpbNAZoy.net
CUDAが各社GPU共通のならいいけどそうじゃないからなぁ
Intel iGPUでも使えないと困る

860:デフォルトの名無しさん
15/12/20 07:47:22.55 14eB8c4R.net
AMDのあれは、HSAをターゲットにしたHalideやvexclのような並列計算APIで、
それがNVIDIA向けにもコンパイルできるって話だな。既存のCUDAコードからも
コンバートできるというのは目新しいが。

861:デフォルトの名無しさん
16/03/29 10:04:21.74 /c8bAcK4.net
サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
URLリンク(www.youtube.com)宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービ


862:ス不足 サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題 春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残 コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題 マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了 校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント 高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート



863:デフォルトの名無しさん
16/05/30 13:15:08.40 27ORFIrk.net
CUDA8.0RCでも1.2どまり

864:デフォルトの名無しさん
16/05/31 02:00:22.72 tLbBjsj4.net
CUDAが強すぎて、なかなか広がらないイメージ

865:デフォルトの名無しさん
16/05/31 15:24:04.45 o40hgVi5.net
あまり最適化されてない(できない、ifがそれなりに多い)プログラムをCPUとGPUで動かしてみて、
早い方を採用するには都合がいい。

866:デフォルトの名無しさん
16/08/08 11:44:01.40 OeTPyxgg.net
CUDAは強い強い言われてるけど結局一社独占の技術だから過渡期の産物で終わってメインストリームにはなれんよ
nvidia自体x86やARM関係なくCPUを締め出しにかかって古い仕様を拡張する気がなさそうだし

867:デフォルトの名無しさん
16/08/08 23:41:36.48 FOEjBVJr.net
しかしOpenCLも最近失速気味だしなぁ。規格は2.2まで出てるのにいまだに2.1のまともな実装すら出てないし。
AMDが体力続かなくて手を引いたりしたらOpenVXみたいにフェードアウトするんじゃないか?

868:デフォルトの名無しさん
16/08/13 04:34:37.27 C6tpw


869:DrS.net



870:デフォルトの名無しさん
16/10/29 09:17:30.79 W9gQheBG.net
AppleがGeForce採用すりゃNVIDIAもOpenCLをアップデートすると期待してたが、今回も採用なしか。
それとも逆に、いつまでもOpenCL 2.0対応しないから採用しないのかな。

871:デフォルトの名無しさん
16/10/29 12:19:11.69 YsxFht0u.net
OpenCLはオワコン

872:デフォルトの名無しさん
16/10/29 15:09:52.99 0Cs4HSkt.net
HIPだっけ?
あれでCUDAを汎用的に使えるようになるんじゃないの?

873:デフォルトの名無しさん
16/10/29 18:46:14.19 vjtn6SxB.net
>>862
C/C++使いはOpenCLも使えないと駄目ってなりつつあるんじゃないのか?

874:デフォルトの名無しさん
16/10/30 01:49:24.70 IKgBO44W.net
それはOpenMPでは

875:デフォルトの名無しさん
17/01/08 01:47:50.25 qDa6npPv.net
Vexcl難しい
サンプルコード少なすぎる

876:デフォルトの名無しさん
17/02/12 09:50:54.30 fljd0HzI.net
vexclは挫折してviennacl使ってる
使えるスキルある人ならvexcl良いと思うけど
自分には無理だった

877:デフォルトの名無しさん
17/02/12 14:41:00.16 VBfSC62c.net
boost.computeなら、どうだろうか?

878:デフォルトの名無しさん
17/02/16 11:11:01.71 sX4bqSJb.net
Boost.computeはcudaに対応してない

879:デフォルトの名無しさん
17/02/17 01:28:52.49 LtwBLUnB.net
OpenCLの話題だし、CUDA対応とかより、いかにOpenCLのコードが書きやすいかのほうが大切だと思うんだ

880:デフォルトの名無しさん
17/02/28 20:15:03.56 514SeM49.net
ここ1年くらい停滞気味で話題が少なかったけど、これはめでたい。
NVIDIA 378.66 drivers for Windows offer OpenCL 2.0 evaluation support
URLリンク(www.khronos.org)
一方で、前にいろいろぶち上げたAMDは何してるんだ?Ryzenで忙しいってか?

881:デフォルトの名無しさん
17/03/17 02:02:00.80 YSidBwLT.net
Vexclで行列計算したいけど行列掛け算のexampleしかない
qr分解とかライブラリ使って出来ないの?
Vienaclにはqr分解とか例が沢山あるのに

882:デフォルトの名無しさん
17/03/17 11:56:23.09 ol/nseXL.net
できる

883:デフォルトの名無しさん
17/03/30 08:07:31.22 sSr9ORWQ.net
過疎ってるところ恐縮ですが、質問です。

通常のCプログラムの中で、コプロ的な使い方でOpenCLをインラインアセンブラのように使うような使い方は可能なのでしょうか?
もしくは、その様な使い方を実現する方法はないでしょうか。

884:デフォルトの名無しさん
17/04/04 23:25:23.65 d4Y6801f.net
Openmpでgpuの並列計算も出来るようになってから
Viennaclは更新も止まって、もう実質一年ぐらい更新ない

Openmpがgpu計算の標準になるのかな

885:デフォルトの名無しさん
17/10/25 09:29:08.47 h/b8kKiY.net
開発環境自体もOpenCL 2.0で止まっている感じはするな
鈍足になった感じはする

886:デフォルトの名無しさん
18/04/03 04:40:48.84 mPevnajZ.net
cudaだと毎回計算結果違うとかビットエラーで整数計算も間違うことあるらしい
OpenCLをamdで動かすとどうなの?

887:デフォルトの名無しさん
18/04/03 11:25:01.62 R6gDm2yr.net
えっ

888:デフォルトの名無しさん
18/04/03 23:11:05.85 RICRRaNn.net
マイニング終了でRädeonの中古が格安で大量に売られてるので
何か使えないか
Openclってひょっとして再帰できない?

889:デフォルトの名無しさん
18/04/06 09:28:13.93 Z8wP2fEV.net
>>877
科学計算用のやつだと、ちゃんとエラー補正してくれるよ

890:デフォルトの名無しさん
18/05/18 19:25:23.10 RN2l/52Z.net
再帰できないってことはないだろ。
確認まではしてないけど、小さいの書けばすぐわかるからよろしくです

891:デフォルトの名無しさん
18/05/18 23:22:29.85 z36hYsyi.net
たしか昔はcudaも再帰できなかったと思う
ある時期までの規格なら再帰できないとかもありえる
あるいは製品依存とか?

892:デフォルトの名無しさん
18/05/19 10:52:19.90 iBGlap+k.net
再帰って、例えば階乗(n!)を関数内で1引いて乗算して、また自身を呼び出すみたいなことでしょ?
できないわけないよな……と脳内で思ってます。
色々な階乗をパラでやっても大丈夫だと思うし、一つの階乗をパラでやっても排他きちんとやれば大丈夫だと…
もしかして全く勘違いなこと言ってるのかな…
(最近CL書いてない、というか、並列プログラム自体ネタがなくて書いてないorz)

893:デフォルトの名無しさん
18/05/19 12:28:46.68 BjCA6AhS.net
再帰するにはスタックが必須になるから
そんな暗黙の領域管理をGPUにやらせるのかってことでしょ
再帰がなければ関数ごとに固定領域を決めればいいので楽できる

894:デフォルトの名無しさん
18/05/19 13:45:59.07 iBGlap+k.net
普通に関数呼んでreturnで帰って来るんだから、スタックなんて意識しなくていいんじゃない?
(関数の戻り先は、勝手にスタックに積んでreturnで勝手に取り出してくる)
スタック容量が少ないから別途管理しないといけないってこと?

895:デフォルトの名無しさん
18/05/19 14:22:31.54 7qbCVCh9.net
ふつう、関数はインライン展開される。
再帰だと原則それができない。

896:デフォルトの名無しさん
18/05/19 15:09:02.73 GMayPujS.net
888

897:デフォルトの名無しさん
18/05/19 16:23:46.57 KZiehyBT.net
マイニング負け組はこちらへどうぞ
intel Oprencl2.1が今はお勧め
書籍もいっぱいあるぞ!
構わないからデペロッパーになろう

898:デフォルトの名無しさん
18/05/19 19:18:17.82 fx9VLx2G.net
>>886
マジっすか。勉強になりました。
m(_ _)m

899:
18/05/20 14:06:31.19 JyKbNFIa.net
>>886
Yコンビネータを見よ
インライン展開された、いいかえると無名関数であっても、再帰は可能である

900:デフォルトの名無しさん
18/05/20 14:35:44.13 KmZcyykh.net
的外れすぎるw
Yコンビネータは無名関数で再帰ができるようになる程度の意味しかないだろ。
(末尾呼び出し最適化がない限り)関数呼び出し深さが不定であるのには変わりない。
もちろんOpenCLには末尾呼び出し最適化も第一級オブジェクトとしての関数もないし、
それどころか関数ポインタすらない。

901:デフォルトの名無しさん
18/05/20 16:22:27.06 V9eOsuAz.net
うむ

902:デフォルトの名無しさん
18/05/23 19:10:21.35 Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
H1I8V

903:デフォルトの名無しさん
18/05/24 10:34:27.52 cPlRxlDn.net
H1I8V

904:デフォルトの名無しさん
18/07/04 18:21:25.84 bZ79e0V+.net
これ人気らしいぞURLリンク(goo.gl)

905:デフォルトの名無しさん
18/07/04 21:44:26.88 gFgZc5FG.net
QOJ

906:デフォルトの名無しさん
18/07/05 16:14:25.67 AeL6VB/V.net
H1I8V

907:デフォルトの名無しさん
19/06/19 04:56:27.83 tVNS+22r.net
【出資】松本卓朗 人工知能詐欺【注意】
スレリンク(rikei板)

908:デフォルトの名無しさん
19/06/19 08:10:22.42 qaAgAiWI.net
久しぶりに何か書かれたと思ったら orz

909:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch