2015年6月19日 10:00
コンピュータアーキテクチャの話 (331) 汎用の科学技術計算におけるGPUのキャッシュの必要性
図3-22に示すように、シェアードメモリは、メモ用紙のようなもので、手近に置いて、メモしたものを読んだり、メモを書き込んだりすることはできるが、転送が終わると元のデータとの関係は切れてしまう。一方、キャッシュの場合は、元のデータとの対応性が維持されていて、コピーした内容が変更されても元のデバイスメモリに反映されるという違いがある。
また、キャッシュへのデータの出し入れはハードウェアが自動的にやってくれるが、シェアードメモリの場合は、デバイスメモリのどのアドレスのデータをシェアードメモリのどのアドレスにコピーするか、シェアードメモリのどのアドレスのデータをデバイスメモリにコピーするかは、プログラムに明示的に書いてやる必要がある。
必要なデータだけを移動するという点ではシェアードメモリは効率が良いが、転送を明示的に書く必要があるので、プログラマの負担は大きい。しかし、グラフィックス表示だけにGPUが使われていた時代は、GPUのプログラムを作るのはごく限られたプログラマで、プログラムの手間が掛かっても、ハードウェアのコストを上げずに、高い性能を実現することが望まれたのである。
夏支度を始めよう!【おしゃれキッズ&ママの夏の購入品 11選】 | HugMug