投稿日
2013/5/26 日曜日
私が思うCUDAの微妙な点の一つとして、tex1D と tex1Dfetchという2つのテクセルフェッチ関数の存在がある。
tex1D はCUDA arrayをバックエンドに持つテクスチャリファレンス用。
tex1Dfetch は線形メモリをバックエンドに持つテクスチャリファレンス用。
これは公式のドキュメントに明記されてるので、そういう意味では問題ないけど、
万一これを取り違えてしまうとおかしなデータが読み出されることになり、正しい結果は出なくなる。
コンパイルエラーや実行時エラーは発生しないので、原因の特定に以外と時間を食ったりする。
それだけならまだマシなんだけど、環境・デバイスによっては tex1Dfetch でバックエンドが何だろうが正常に読み出せてしまったりするので、同じソース同じCUDAバージョンなのに、マシンによって結果が違うなんてことも起こりうる。
実際にうちではMac + Geforce 9400Mの環境で tex1Dfetch がCUDA arrayをバックエンドに持つテクスチャリファレンスにも使えていた。
そのおかげで、他の環境にソースを持って行って結果がおかしくなったときに、OSが違うからか?とか見当はずれの部分を調べてしまって、結構時間を無駄にした。
最近のコメント
名前
しゅごい
Jane Doe
FYI Avoid Annoying Unexpe…
Jane Doe
ご存じとは思いますが、whileには、”~の間”と…
peta_okechan
針金みたいなパーツを引っ張ると外れます。 他の方の…
虎徹ファン交換
虎徹の標準ファンを外す際に、どのようにして外されま…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…