OpenCL(3)2012/03/01 05:47

OpenCLの入門書を片手にOpenCLで配列の足し算が出来るコードをやっと書けました。OpenCLは、使うための初期化の設定がとっても面倒なので、ここは、誰か、わかりやすいインターフェースとかクラスとかにして欲しいところ。え、雲がしろって?雲が書くと、かえって使いにくくなりそうな予感がしていて、ちょっと、自信が無かったりします。えへへ。とはいえ、難しい概念とかはなくて単純なコードで初期化は出来るので、そこは出来たとして、雲が一番悩んだのは、並列計算を実行する時に指定するワークアイテム総数とは何か?ということです。このワークアイテムの総数というのは、早い話、int a[512]とint b[512]を要素毎に足す(c[0]=a[0]+b[0], c[1]=a[1]+b[1],...以下略)とする場合は512と指定することになります。雲は、最初、このワークグループの総数を1としていて、何故か、最初の要素(c[0])しか正しい結果が得られなくて、恐ろしく悩んでいました。まだまだ、正確に使い方を理解したという気はしませんが、現在の雲の理解レベルはこんなところです。

OpenCL(2)2012/02/26 19:25

OpenCLに足を突っ込んで見ると書いてはみたものの、実は、よくよく調べてみたら、雲の持っているHD2400ProはOpenCLに非対応でした。が~ん。ということで、この際、騒音をまき散らすようになったHD2400の代わりにHD7750を入れてみました。OpenCLでデバイス情報を取得すると、なんと、GPUが表示されるではありませんか。感動。。。これから、実際に、カーネル(GPUで実行されるプログラム)を書いてみようと思います。楽しみすぎて、久々にわくわく。嬉しいよ~。

OpenCL2012/02/18 06:32

雲は、元々の出身が数値計算(解析)ということもあって、意外と数値計算の高速化なんてことが好きだったりします。ということで、しばらく、お蔵入りにしていた高速化のネタであるOpenCLを調べていますのでその記録を残しておきます。本当は、intelのララビーに行くはずだったけど、結局、キャンセルされたので、今後は、OpenCL→AVX2(メモリがCPUとGPUで分かれているのは使いにくいので)に行く予定です。

OpenCL入門 - マルチコアCPU・GPUのための並列プログラミング

http://www.fixstars.com/ja/company/books/opencl/

OpenCLのコードをVC++で色つきに

http://matsuura-h.blogspot.com/2011/06/69-openclvc.html

OpenCL Reference Pages(OpenCL 公式ホームページ)

http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/

OpenCL C++ bindingで複数の.clファイルを扱う

http://matsuura-h.blogspot.com/2011/12/opencl-c-bindingcl.html