CUDAにおけるテクスチャリファレンスとテクスチャオブジェクトの違い

どちらもGPUのテクスチャフェッチ機能を利用してデータにアクセスするためのもので、概念的には同じものと言える。
しかし詳細に踏み込むとかなり違いがある。
(以下はDriver APIの利用を想定したものだけど、Runtime APIでも大部分はそのまま当てはまると思う。)

続きを読む

CUDAにおける線形メモリ(linear memory)とArray(CUarray)の違い

この記事は普段にも増して思い込みで書いてる度合いが高めなので注意が必要です。間違いがあれば指摘していただけるとありがたいです。

続きを読む

CUDA Driver APIのC++ラッパーを作った

OpenCLのC++ラッパーであるcl.cppの便利さに感銘を受けたので、CUDA Driver API向けにC++ラッパーを作った。

続きを読む

clCreateImageがCL_INVALID_VALUEを返す問題の回避方法

Mac(OSX 10.8.3、GPU Geforce 9400M)のclCreateImageがおかしいという記事を書いたが、さすがにclCreateImage程度の基本的な関数がまともに動かないってのはおかしいと思ったので少し詳しく調べてたら回避方法みたいなものが分かった。

続きを読む

XcodeでOpenCL APIのC++ Wrapperを使ってみる

前回ホストコードをC++で書いたが、CのAPIを使っていたためC++らしさはあまり表現出来ていなかった。
あれから、OpenCL APIのC++ Wrapper(OpenCL C++ Bindings)というものの存在を知ったので、それを使って前回のホストコードをさらにC++っぽく書き換えてみた。
ソース(ホストコードのみ)はこの記事の最後に載せてある。

続きを読む

いまXcodeでOpenCLをはじめる多分いちばん簡単かもしれない方法

以前書いたCUDAの記事のOpenCL版。
こちらも、いちばん簡単なんてタイトル付けてるけど実は他のやり方をあまり調べてないというか、OpenCLはじめて数時間の初心者なので、もっといい方法があれば教えてください。

続きを読む

DH57JGから地雷臭が

MacでCUDAを使ってきたけど、GPUが古めのGeforce 9400Mだから新しいGPUドライバが配布されていない。(Appleがんばれ)
CUDAドライバは最新のものを入れてるけどGPUドライバが古いからCUDAで微妙な不具合が出てたんだと思う。

続きを読む