CUDA プログラミング ガイドには、次のように記載されています。
「帯域幅は、パフォーマンスにとって最も重要なゲーティング要因の 1 つです。コードへのほとんどすべての変更は、帯域幅にどのように影響するかというコンテキストで行う必要があります。」
続いて、毎秒数百ギガバイトの理論上の帯域幅を計算します。グローバルメモリに読み書きできるバイト数が、カーネルがどれだけ最適化されているかを反映している理由について、私は途方に暮れています。
共有メモリやレジスタに格納されたデータに対して集中的な計算を行うカーネルを使用し、最初に 1 回の読み取りのみを行い、最後にグローバル メモリとの間で書き込みを行う場合、有効な帯域幅は確実に小さくなります。カーネル自体は非常に効率的かもしれません。
このコンテキストで帯域幅をさらに説明できる人はいますか?
ありがとう