OpenCLプログラミング#1

このエントリーをはてなブックマークに追加
759デフォルトの名無しさん:2014/10/15(水) 10:11:05.56 ID:3rwOGNYw
>>757
C#でVBAとOpenCLの仲介DLLでも作ればいいんでないの?
Windows知らんけど。
760デフォルトの名無しさん:2014/10/15(水) 10:36:01.03 ID:bIoSVMWH
>>759
そうなんですけど、既にあるならそれ使いたいなと。

いま、ClooというC#用のラッパー使ったりソース見てるのですが、
ジェネリクスは使えないからどうするんだ?とか
DLL作ったことないのでチョット途方に暮れてます…
(シンプルなDLL作成サンプルは理解できますが、
openclを全てラップするのは無理…)
761デフォルトの名無しさん:2014/10/15(水) 19:03:22.75 ID:oTkKZ4Eq
既にあるもので使い方覚えるより
自分で造った方が早い場合も多い
762デフォルトの名無しさん:2014/10/15(水) 22:49:10.60 ID:y41AVgB1
口だけ番長
763757:2014/10/16(木) 00:06:46.03 ID:1e+5gfAa
>>761
プラットフォームを返すところから少し作り始めてみましたが、
VBAのcollectionとして値を返すなら、
C#では何なの?ディクショナリ?ってとこで
早速つまづいてしまいました(;_;)

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

非同期処理が苦手なVBAは「待ち」が生じるような複雑な計算は向かないし
計算速くするだけならDLLなりに入力投げて結果だけもらえばいいし
Officeとの連携ならVBA使う必要ないし
規定されたソフトウェア以外使用禁止だったらそもそもOpenCL使えそうにないし
765デフォルトの名無しさん:2014/10/16(木) 15:24:45.15 ID:7O3aHiya
そもそもVBAに固執してる時点で視野狭窄。
766757:2014/10/16(木) 17:11:21.81 ID:8j84DcHT
固執?( ´????×????` ) プッ
767757:2014/10/16(木) 17:12:09.70 ID:8j84DcHT
ありゃw
768デフォルトの名無しさん:2014/10/17(金) 13:05:53.28 ID:npcZf8Up
あらあら可哀想なひとでしたか。
769デフォルトの名無しさん:2014/10/17(金) 16:09:50.28 ID:aw+RiOqr
こんなところにもシナが湧くようになったか
770デフォルトの名無しさん:2014/10/18(土) 01:23:16.18 ID:sx5ESDLm
そもそもそんな方法よりこうした方が・・とか
上流にまで遡って正そうとする奴がいるけど
余計なお世話なんじゃない?
VBAでOpenCLを使う方法を聞かれているんだから
答えがあるならそれに出せばいい。
無いならわからないと答えればいい。
見当違いのに話を捻じ曲げて、してやったりと
悦にはいるのか?
771デフォルトの名無しさん:2014/10/18(土) 13:19:15.72 ID:Z3gRebWt
余計なお世話だと感じたらスルーすればいいだけ
スルーも出来ないお子ちゃまが馬鹿にされるだけ
772デフォルトの名無しさん:2014/10/18(土) 15:49:20.82 ID:mzkaImX0
>>770
あんた公務員やな
773デフォルトの名無しさん:2014/10/18(土) 19:40:45.23 ID:P/Strs7V
余計な世話しなきゃいい
774デフォルトの名無しさん:2014/10/19(日) 02:01:55.89 ID:CeuU+CpH
まあ、余計なお世話なやつは
わかってない(解決策はわからない)
ってことだから

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

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

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

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

コンパイラの賢さに関して言えば
足並みがそろってない事の方が問題だと思う
805デフォルトの名無しさん:2015/02/26(木) 07:17:19.04 ID:BKvgQceT
クロノスってなんかのアニメであったような
806デフォルトの名無しさん:2015/02/26(木) 14:44:53.01 ID:ZlyxtZ3O
クロノスはゼウスのお父さん
807デフォルトの名無しさん:2015/02/26(木) 20:31:41.27 ID:yDVFOiWq
マッシーンロボッ!
お前には、敵はない!
808デフォルトの名無しさん
OpenCL2.1は発表されたが相変わらずNVIDIAはやる気なさそうだなぁ、コメントくれないし。
おかげでいまだに開発は1.1ベースだよ。