X



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

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

公式ページにはAPIのヘッダファイルが公開されており、
まだ実際に動かす事はできないもののプログラミングすることは可能となっています。
ということで、公開に先んじてプログラミングを始めてしまいましょう。
0749デフォルトの名無しさん
垢版 |
2014/06/26(木) 08:39:51.72ID:rajeiAxv
デフォルトのコンテキストやキューが追加されたのはOpenCL1.2からだから
NVIDIAじゃ使えないことに注意な。
0750デフォルトの名無しさん
垢版 |
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 ) );

( ´,_ゝ`)
0752デフォルトの名無しさん
垢版 |
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)に準拠したプラットフォームをサポート
0753デフォルトの名無しさん
垢版 |
2014/08/30(土) 20:21:59.78ID:rOGhcjm5
ム板はしょっちゅう落ちるな。
0756デフォルトの名無しさん
垢版 |
2014/09/19(金) 23:42:34.05ID:dfKMMaQo
NVIDIAが1.2に対応しないからうちは1.1縛りだな。
OpenCVみたいにCUDAと両方やるならいいんだろうけど。
0757デフォルトの名無しさん
垢版 |
2014/10/15(水) 00:45:43.10ID:bIoSVMWH
VBAで使いたいのですが、ラッパーDLL何か
ご存知ないでしょうか?
C#用のは幾つか見つかるのですが…
0758デフォルトの名無しさん
垢版 |
2014/10/15(水) 01:04:21.97ID:bIoSVMWH
質問あげ m(_ _)m
0760デフォルトの名無しさん
垢版 |
2014/10/15(水) 10:36:01.03ID:bIoSVMWH
>>759
そうなんですけど、既にあるならそれ使いたいなと。

いま、ClooというC#用のラッパー使ったりソース見てるのですが、
ジェネリクスは使えないからどうするんだ?とか
DLL作ったことないのでチョット途方に暮れてます…
(シンプルなDLL作成サンプルは理解できますが、
openclを全てラップするのは無理…)
0763757
垢版 |
2014/10/16(木) 00:06:46.03ID:1e+5gfAa
>>761
プラットフォームを返すところから少し作り始めてみましたが、
VBAのcollectionとして値を返すなら、
C#では何なの?ディクショナリ?ってとこで
早速つまづいてしまいました(;_;)

なので、VBAでラッパー作ろうかと迷走中…
0764デフォルトの名無しさん
垢版 |
2014/10/16(木) 00:45:29.59ID:925HRnD9
別に何しようと勝手だけど
VBAでOpenCL使う必要性って何?

非同期処理が苦手なVBAは「待ち」が生じるような複雑な計算は向かないし
計算速くするだけならDLLなりに入力投げて結果だけもらえばいいし
Officeとの連携ならVBA使う必要ないし
規定されたソフトウェア以外使用禁止だったらそもそもOpenCL使えそうにないし
0766757
垢版 |
2014/10/16(木) 17:11:21.81ID:8j84DcHT
固執?( ´????×????` ) プッ
0767757
垢版 |
2014/10/16(木) 17:12:09.70ID:8j84DcHT
ありゃw
0770デフォルトの名無しさん
垢版 |
2014/10/18(土) 01:23:16.18ID:sx5ESDLm
そもそもそんな方法よりこうした方が・・とか
上流にまで遡って正そうとする奴がいるけど
余計なお世話なんじゃない?
VBAでOpenCLを使う方法を聞かれているんだから
答えがあるならそれに出せばいい。
無いならわからないと答えればいい。
見当違いのに話を捻じ曲げて、してやったりと
悦にはいるのか?
0771デフォルトの名無しさん
垢版 |
2014/10/18(土) 13:19:15.72ID:Z3gRebWt
余計なお世話だと感じたらスルーすればいいだけ
スルーも出来ないお子ちゃまが馬鹿にされるだけ
0774デフォルトの名無しさん
垢版 |
2014/10/19(日) 02:01:55.89ID:CeuU+CpH
まあ、余計なお世話なやつは
わかってない(解決策はわからない)
ってことだから

解決策以外はただの雑談
スルーするかしないかなんて、
どうでもいいこと
0775デフォルトの名無しさん
垢版 |
2015/01/12(月) 09:09:09.30ID:BHqm0X8b
OpenCLとCUDAの相互運用について情報を探していたらCUDAカーネルを
OpenCLランタイムから実行できると書いてある記事を見つけたんだが、
本当にそんなんできるんだっけ?
http://www.4gamer.net/games/032/G003263/20091104040/
0776デフォルトの名無しさん
垢版 |
2015/02/04(水) 08:37:05.19ID:PgjHlyod
いままでコンスタントに500[ms]程度でkernel処理が終わってたのが、
1分以上kernel処理が終了しない異常が、
処理2回目とあと不定期に発生するようになりました。
処理の内部のループカウントを数えたら正常なときと大差なく、
重い処理をしてはいないようです。やはりハードの不具合でしょうか?
0777デフォルトの名無しさん
垢版 |
2015/02/04(水) 11:47:15.88ID:kErMECZ6
windows update
0778デフォルトの名無しさん
垢版 |
2015/02/08(日) 04:16:42.58ID:4RF7kRSx
モバイルだと、GPU性能とCPU性能あんま大差ないからな。CPUだと4コアでNEON使えば最大性能で60GFLOPSぐらい?最新のTegraX1とかだと300GFLOPSオーバーするかもしれんが
現行のAdreno330ぐらいだと150GFLOPSくらい?
0779デフォルトの名無しさん
垢版 |
2015/02/08(日) 04:19:43.86ID:4RF7kRSx
だからNEONのコードをわざわざ書き直す必要まだないかな?メモリアクセスのほうがボトルネックになってるっぽいのもあるし。まぁ、CPUとGPU実行じゃ消費電力ちがうかもしれんが。
0780デフォルトの名無しさん
垢版 |
2015/02/15(日) 00:22:26.32ID:rqZ8R7KU
個人的にはこの言語産廃な気がするけどどうなんだろう
手続きの多さはさすがにちょっと…

CUDA←AMDも似たもの作るorライセンス料払ってでも統一しろ(最良)
C++AMPとOpenACC←そのレベルの抽象言語ぐらい統一しろ(次善)
OpenCL←やめて
0781デフォルトの名無しさん
垢版 |
2015/02/15(日) 10:01:14.87ID:MuMGrz7U
OpenCLはハード非依存のGPGPUプラットフォームとして用意され、
その上にライブラリを構築してユーザーはそれを使うのが本来意図してたこと。
残念ながらそういうライブラリがあまり出てきていないのが現実かな。
0782デフォルトの名無しさん
垢版 |
2015/02/15(日) 12:56:46.74ID:TTUR8i8s
OpenCLはDSPとかFPGAとかGPU以外もターゲットに入っているから
下手に統合しない方がいいと思う
0784デフォルトの名無しさん
垢版 |
2015/02/15(日) 21:52:13.56ID:DwKzmQqr
nvidiaのquadro K620Mか
インテルグラフィックHD5500にしようと思うんだけど
openclとか数値計算の初歩の練習としてはどっちがいいよ
0785デフォルトの名無しさん
垢版 |
2015/02/15(日) 22:09:31.75ID:SQuQNCw8
>>784
IntelのOpenCLドライバって糞だって印象しかない。
AMDやNVIDIAで動いてたコードが通らなかったりするし。
0787デフォルトの名無しさん
垢版 |
2015/02/15(日) 22:26:41.71ID:SSlwb3yD
実は正しくないコードが他の環境ではたまたま通っていただけ、てのはよくある。
たしかにIntelのコンパイラは厳しいから、普段の開発は他のGPUでやっていても
IntelのKernel Builderでカーネルのチェックしたりするな。
0788デフォルトの名無しさん
垢版 |
2015/02/16(月) 00:42:06.13ID:bUgXoWHZ
>>787
コードそのものに問題はなかったよ。
カーネルが複雑になりすぎるとIntelのコンパイラは落ちるから論外。
0789デフォルトの名無しさん
垢版 |
2015/02/16(月) 00:55:29.94ID:0cGz3jVB
IntelはGlobalWorkingGroupとLocalWGのサイズがN倍じゃないと動かないんだけどAMDは変な比率でも動く
原因調べるのの時間かかったよ
0790デフォルトの名無しさん
垢版 |
2015/02/16(月) 02:05:22.57ID:bUgXoWHZ
>>789
そりゃ動くほうが不思議だw 自分の場合はカーネルを小さくしたら
普通に通ったからそういう問題はなかったはず。
0791デフォルトの名無しさん
垢版 |
2015/02/16(月) 07:56:11.60ID:F7oc1qZ/
>>785
同意
0792デフォルトの名無しさん
垢版 |
2015/02/16(月) 13:24:15.63ID:LR9r89r7
AMDのコンパイラも最適化オンにしたらコンパイル終わらなかった事あったので、結構怪しい。(2011年ぐらいの話だけど)
0794デフォルトの名無しさん
垢版 |
2015/02/16(月) 21:40:57.33ID:HyfDl27x
>>784
初心者がこれからOpenCLを始めるのにどの環境を選ぶか、という話なら
NVIDIAは避けるのが無難だな。デバッガやオフラインコンパイラなんかの
ツールが皆無に等しい。
CUDAもやりたいとかいうなら別だが。
0795デフォルトの名無しさん
垢版 |
2015/02/16(月) 22:38:07.54ID:QHeQ+cdL
>>794
多くの奴はGPGPUするぞ、じゃメジャーなCUDAで良いやだからな
OpenCL使ってIntel,Nv,AMD(あとFPGAとか?)でちゃんと動くものを作らなければいけないってあんまりないだろからな
0796デフォルトの名無しさん
垢版 |
2015/02/17(火) 02:24:50.68ID:xvdMpEI6
OpenCL使ったところで、同じコードでどんなCPU/GPUでも効率よく動くとかレアケースだしなぁ。
0797デフォルトの名無しさん
垢版 |
2015/02/17(火) 08:22:15.68ID:fCIGE3+K
最高のパフォーマンスを引き出すチューニングというなら別だが、どれかGPUを想定した
コードならそこそこの速度で動くだろ。たいてい、従来のCPUより速けりゃ十分だろうし。
FPGAだけは別格で、GPUと同じコードじゃぜんぜん速度が出ないだろうが。
0800デフォルトの名無しさん
垢版 |
2015/02/18(水) 22:51:48.89ID:Z2YWe05s
>>798
ベクタ型は想定するターゲットで効果が見込まれる場合に使うべきで、そういう意味では
どっちかというとチューニングの範疇だろう。
そもそも、インテルのコンパイラならベクタ型使わずに普通に書いてSSE/AVXを
使ってくれるんだが。CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR=1だしな。
下手に最適化しようとして却って駄目にしているように思える。
0801デフォルトの名無しさん
垢版 |
2015/02/19(木) 01:05:51.96ID:f67JHinc
かたやGPUになるとパイプラインのスカスカ具合見ながら
int2とかint4とか使って依存関係のない演算で埋めていかないとお話にならんしなぁ。
0802デフォルトの名無しさん
垢版 |
2015/02/19(木) 02:14:32.89ID:KUEe9MYM
アーキテクチャごとの最適化は、まだコンパイラとかの成長中の部分もあるだろうしなぁ

そのうち改善はしてくれるような気がするけど
0803デフォルトの名無しさん
垢版 |
2015/02/19(木) 22:30:01.89ID:t/UF4QVL
そうは言っても今のアーキが向かってる方向ってコンパイラ実装の難易度上がってるから
コンパイラの苦手な部分を補填してやらにゃ速くならないってのは改善される事はないと思う

むしろそこまで賢いコンパイラとか使いたくない
0804デフォルトの名無しさん
垢版 |
2015/02/19(木) 23:19:07.50ID:1LBnym+M
技術的側面もあるが
それ以上にIA64がコケたことが
コンパイラを賢くしてプロセッサを脳筋にする道を
決定的に閉ざした

コンパイラの賢さに関して言えば
足並みがそろってない事の方が問題だと思う
0808デフォルトの名無しさん
垢版 |
2015/03/08(日) 09:21:28.42ID:rJrv12ko
OpenCL2.1は発表されたが相変わらずNVIDIAはやる気なさそうだなぁ、コメントくれないし。
おかげでいまだに開発は1.1ベースだよ。
0809デフォルトの名無しさん
垢版 |
2015/04/12(日) 20:37:22.82ID:4fkLnYAO
OpenCLでHEVCをGPUに部分的にデコードさせる実験やってるな
まあ新製品はハードウェアでHEVCに対応してるから不要になっちゃうんだけど
0813デフォルトの名無しさん
垢版 |
2015/04/25(土) 16:55:17.48ID:DlB5+dQK
NVIDIAでやっと1.2が使えるようになったと思ったらバグってんじゃねーか。
本当にやる気無いのな。
0814デフォルトの名無しさん
垢版 |
2015/04/26(日) 16:04:03.54ID:ljYoE8AT
そらやる気ないやろ。
cudaなら囲い込みできるのに、
cudaの焼き直しのOpenCLなんて協力するだけ損だし。
0816デフォルトの名無しさん
垢版 |
2015/06/06(土) 14:22:49.99ID:xHuAhJj5
Core i7 3990とGeForce使ってるんだけど、IntelHDが認識されてなくてデバイスマネージャに表示されない
OpenCLの性能評価を試したいんだけど、IntelHDのドライバをインストールすれば認識されますかね?
0818デフォルトの名無しさん
垢版 |
2015/06/07(日) 15:14:39.85ID:OFY6KtcL
あ、それとintel Opencl driver インストールうまくできるか試してみて結果おしえて
0822デフォルトの名無しさん
垢版 |
2015/06/09(火) 01:36:37.47ID:c7FHKlcw
そだね、そのくらい確認してるかと思って聞かなかったけど、
iGPUがついてないならそもそも無理だわな。
0825デフォルトの名無しさん
垢版 |
2015/06/19(金) 21:38:40.35ID:s6jV56Gc
別途ドライバをインストールしなきゃならんってのが難点なんだよな。
SSE/AVXをお手軽に使えて、コア数に応じてマルチスレッドで実行してくれるから
使いではあると思うんだが。
0826デフォルトの名無しさん
垢版 |
2015/06/19(金) 23:20:08.11ID:KZJPVbVq
デバッグなんかよりチューニングが大事だからターゲットハード以外でコーディングしてもなぁ
0827デフォルトの名無しさん
垢版 |
2015/06/20(土) 00:21:14.39ID:46SUOvEb
なにがなんでも最高性能出さなきゃならん用途ばかりじゃあるまい。
一般的な並列化のみで大多数のハードでそこそこ速くなりゃ十分、という応用もある。
0830デフォルトの名無しさん
垢版 |
2015/06/22(月) 07:39:26.22ID:FYteK6ai
CPUに惨敗してた処理がチューニングでどうかなるもんか?
単に並列化できてなかっただけじゃね?
0831デフォルトの名無しさん
垢版 |
2015/06/22(月) 21:40:24.04ID:e4hiyCLD
>>830
レジスタ数とか共有メモリサイズとかでブロックサイズだっけnVIDIAでいうところのwarp数とか
調整しないとてんでダメだよ。
0832デフォルトの名無しさん
垢版 |
2015/06/22(月) 21:41:31.55ID:e4hiyCLD
>>829
そのコストを払っても高速かどうかは実機でテストするしかないしな。
機種ごとにCLを使うか通常ルーチン使うか選別するくらいしないと効果なし
0833デフォルトの名無しさん
垢版 |
2015/06/23(火) 02:38:28.65ID:22fvktD/
チューニングは難しい
何となくやってみたら、処理時間が5倍遅くなったときの衝撃は大きかったな
0834デフォルトの名無しさん
垢版 |
2015/06/23(火) 08:25:00.27ID:drLPVFNo
ターゲットのハードに特化したチューニングをしないと使い物にならんようなことを
言っている人がいるが、そんなこといったらユーザー環境を特定せずに広く配布する
アプリなんて作れんな。
うちじゃ一般的なGPU向けチューニングしかしてないが、NV/AMD安いのから高いのまで
テストしてみてローエンドでもCPUの数倍くらいで動くから十分、速く動かしたいなら
高いGPU使え、ってなノリだな。
0836デフォルトの名無しさん
垢版 |
2015/06/23(火) 22:58:24.67ID:VwORpFDM
>>834
AMDのHSAのAPUとAMDのOpenCl2のdGPUがHPCを除いたいまのデファクト
それ以外は無視で良い。Nvは一般用でGPGPUやる気ないし
HPC用ならターゲットのハードに特化したチューニングは当然だし
0846デフォルトの名無しさん
垢版 |
2015/12/19(土) 16:25:03.85ID:2xl0Mjgh
GeForceはOpenCL2.xに対応した?
CUDAに同様の機能が在るから技術的に無理という事はないだろうけど
0848デフォルトの名無しさん
垢版 |
2015/12/19(土) 19:06:17.07ID:2xl0Mjgh
サンクス。IntelですらOpenCL2.0に対応しているのに業界最大手のnVIDIAがやらないのはなぁ
CUDAを使えという事なんだろうけど、それではnVIDIA専用になってしまうからそれは避けたい。
かといってnVIDIAを無視する訳にもいかないというジレンマ
そろそろOpenCL2.xをメインにしていきたいのだが
0849デフォルトの名無しさん
垢版 |
2015/12/20(日) 00:20:21.34ID:ujiFhYYe
VGAはいまAMDがすごく伸びてきているんだろ
来年の後半にはVGAの販売数シェアではAMDがNvidiaを上回るんじゃないのか
再来年には一般グラフィックではIntel、AMDが2強ってなるんじゃないか
■ このスレッドは過去ログ倉庫に格納されています

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