くらし情報『コンピュータアーキテクチャの話 (335) キャッシュの実装を世代ごとに変化させてきたNVIDIA』

2015年8月14日 10:00

コンピュータアーキテクチャの話 (335) キャッシュの実装を世代ごとに変化させてきたNVIDIA

このような場合は、使用中でありデータを保持する必要はあるが、すぐに使うわけではないという変数を保持しているレジスタエントリをグローバルメモリに書き出してレジスタを空けるSpill処理を行って、空いたレジスタを新たな用途に使う。そして、以前、追い出したデータが必要になると、空きレジスタがあれば、そこに退避したデータ読み込むFill処理を行う。また、空きレジスタが無ければ、どれかのレジスタをSpillして、そこにFillする。

一般にSpillされたデータは、それほど遠くない将来にFillされるので、L1DキャッシュをSpillしたデータの格納に使うのは都合が良い。また、SM1のスレッドからSpillされたデータは他のSMで使われることは有り得ない。従って、Spillデータのキャッシュへの書き込みを他のSMのキャッシュに通知する必要はない。従って、コヒーレンシ維持のためのグローバルメモリへの書き込みと他のSMがグローバルメモリを読む必要もない。用途は制限されるがコヒーレンシ維持のためにドライバが介入する必要もなく、性能の見通しも良いので、現実的な解と言える。


最近のMaxwell GPUでも、L1Dキャッシュをデフォールトではグローバル変数の格納に使わないという点は変わっていないが、ハードウェア的にはシェアードメモリと一体化して作るのではなく、テクスチャキャッシュと一体化するという実装に変更された。

新着くらしまとめ
もっと見る
記事配信社一覧
facebook
Facebook
Instagram
Instagram
X
X
YouTube
YouTube
上へ戻る
エキサイトのおすすめサービス

Copyright © 1997-2024 Excite Japan Co., LTD. All Rights Reserved.