CUDA samplesのbilateralFilterの中身を解析してみました。

・メモリ領域の確保とデバイスへのコピー(.cuの118行目)
二次元配列を連続領域として確保したいのでcudaMallocPitch()とcudaMemcpy2D()を用いている。
http://www.slis.tsukuba.ac.jp/~fujisawa.makoto.fu/cgi-bin/wiki/index.php?%A5%EA%A5%CB%A5%A2%A5%E1%A5%E2%A5%EA%A4%C8CUDA%C7%DB%CE%F3

・テクスチャメモリ
テクスチャメモリの生成(.cuの17行目)
テクスチャメモリと画像の関連付け(cudaBindTexture2D(), .cuの186行目)
テクスチャメモリの参照(tex2D(), .cuの99行目)
http://gpu.fixstars.com/index.php/%E3%83%86%E3%82%AF%E3%82%B9%E3%83%81%E3%83%A3%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%E3%82%92%E4%BD%BF%E3%81%86

・PBOをCUDAからいじる
PBOをCUDAへ登録(cudaGraphicsGLRegisterBuffer(), .cppの401行目)
PBOのポインタを取得(cudaGraphicsResourceGetMappedPointer(), .cppの167行目)
PBOの値をいじる(.cuの114行目)
http://shouyu.hatenablog.com/entry/2011/12/05/192410

・PBOの描画(.cppの178行目)
PBOをテクスチャに設定して、テクスチャマッピング。