CUDA by exampleを読んだときのメモ:第7章「Texture Memory」(書きかけ)
- この章ではテクスチャメモリについて学ぶ。コンスタントメモリと同様、読み込み専用のメモリであり、あるケースにおいて、メモリトラフィックを減らしてパフォーマンスを向上させる。
- 元来はグラフィックのアプリに対してのそれであったが、数値計算にも有用である。
7章の目的
- テクスチャメモリの特徴について。性能面で。
- 1次元でテクスチャメモリをCUDA Cで実装する方法について
- 2次元でテクスチャメモリをCUDA Cで実装する方法について
テクスチャメモリの概要
- コンスタントメモリ同様、チップ上に存在し、キャッシュされる。
- あるケースにおいては、グローバルメモリへのアクセスを減少することで、速いメモリアクセスとなる。
- メモリアクセスに局所性がある場合に、良く効く機能。
- 図7.1に、thread0からthread3が隣接するメモリにアクセスする例を示す。このような場合、メモリアクセスは連続ではないので、CPUでのキャッシュではキャッシュが効かないが、テクスチャメモリでは良いパフォーマンスを示す。
熱伝導の計算
単純な熱伝導モデル
- テクスチャメモリの性能を、長方形の領域での熱伝導の例。
- 図のように、ランダムに熱源がある例。
テクスチャメモリの使用
- 温度の時間発展において、メモリアクセスの局所性が強い。テクスチャメモリが効果的な事例だ。
7章のまとめ
- コンスタントメモリ同様、キャッシュの効果が得られるケースがある。
- 熱伝導方程式などの場合とか。
- 1次元のテクスチャメモリまたは2次元のテクスチャメモリが使える。パフォーマンスは同等。
- 1次元又は2次元の選択は、スレッドブロック又はグリッドの形状に応じて使いやすいものを。
- 2次元の熱伝導方程式では、境界条件の扱いがよいので2次元を選択した。