La bande passante théorique peut être calculée à l'aide de la spécification matérielle. Par exemple, la NVIDIA GeForce GTX 280 utilise une RAM DDR avec une fréquence d'horloge de 1 107 MHz et une interface mémoire de 512 bits. L'utilisation de ces données objets, la bande passante de la mémoire théorique pic de la GeForce GTX 280 est 141,6 Go/s:
Dans ce calcul, la fréquence d'horloge de la mémoire est convertie pour Hz, multipliée par l'interface width (divisé par 8, pour convertir les bits en octets) et multiplié par 2 en raison du double débit de données . Enfin, ce produit est divisé par 109 pour convertir le résultat en Go/s (GBps).
La bande passante effective est calculée en chronométrant les activités de programme spécifiques et en connaissant comment les données sont accédées par le programme. Pour ce faire, utilisez cette équation:
bande passante effective = ((Br + Bw)/109)/heure
Ici, la bande passante effective est en unités de GBps, Br est le nombre d'octets lus par kernel, Bw est le nombre d'octets écrits par noyau, et le temps est donné en secondes.
Plus d'informations sont disponibles dans le guide des bonnes pratiques de CUDA.
http://stackoverflow.com/questions/7876006/how-to-calculate-the-achieved-bandwidth-of-a-cuda-kernel? – pQB