OpenCLプログラミング#1at TECH
OpenCLプログラミング#1 - 暇つぶし2ch518:デフォルトの名無しさん
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で同じデータを扱えるし、
性能面でも悪くないやり方なんだけど。



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