2016-04-27 1 views
0

Salut dans un document sur le transfert de données dans opencl je lis Comme la taille des données que nous voulons envoyer à la mémoire de l'appareil augmente la bande passante va augmenter, mais je ne sais pas pourquoi. quelqu'un peut-il s'il vous plaît m'expliquer pourquoi la bande passante va augmenter?Pourquoi dans opencl A mesure que la taille des messages augmente, la bande passante augmente?

+0

Il y a des frais généraux partout donc vous devez copier des pièces aussi grandes que possible. La gestion de l'alimentation du processeur n'augmente pas l'horloge à moins que l'opération ne dure longtemps. –

+0

La taille de la taille est octets. La dimension de la bande passante est octets par seconde. La relation entre les deux est linéaire. –

+0

S'il vous plaît pouvez-vous nommer le papier? –

Répondre

1

Chaque fois qu'un noyau est lancé ou transféré vers/depuis le GPU, il y a un court délai de plusieurs microsecondes. Historiquement, cela a été plus important sur les GPU AMD que sur les GPU Nvidia. Par conséquent, il y a deux composants au temps qu'il faut pour envoyer des données: latency + X * Y B/sX est le nombre d'octets et Y est la bande passante théorique. Lorsque X est petit, X * Y n'est pas beaucoup plus grand que latency. Lorsque X devient grand, par ex. plusieurs mégaoctets, la composante latency du temps total devient une si petite fraction du temps total qu'elle devient insignifiante.