Altifigence Academy

19 / 24 · Concept

Bande passante et bornes de calcul

Pour 1152 MAC et 224 octets, utilisez huit PE mais conservez la bande passante à 0.5 octet/cycle. Quelle est la borne inférieure avec chevauchement parfait ?

Alimenter l’arithmétique

Le nombre de MAC mesure le travail ; la bande passante mesure la vitesse à laquelle les opérandes peuvent l’atteindre. Quatre PE à un MAC offrent idéalement quatre MAC par cycle. Lire deux opérandes d’un octet pour chaque MAC exigerait huit octets par cycle. La réutilisation réduit le trafic externe, mais les tampons locaux nécessitent encore assez de ports pour alimenter les PE. Bande passante externe et demande de ports de lecture internes sont des grandeurs différentes.

La borne inférieure de calcul est le nombre de MAC divisé par la cadence MAC disponible. La borne de transfert est le nombre d’octets divisé par la bande passante. Avec un chevauchement parfait, le temps total ne peut faire mieux que leur maximum. Sans chevauchement, additionnez-les. Démarrage, rafales, préparation des adresses, fins incomplètes et écritures peuvent augmenter l’ordonnancement réel.

Conception hypothétique détaillée

Utilisez N=1, C=2, H=W=6, M=4 et une convolution 3×3 sans remplissage. La sortie est 4×4 et le travail 1152 MAC. Supposez que chaque tenseur est lu une fois, sans rechargement de halo ni déversement des sommes partielles. Les entrées int8 utilisent 72 octets, les poids 72, les sorties 64 et les biais sur 32 bits 16 : 224 octets au total.

Quatre PE donnent une borne de calcul de 288 cycles. À un octet par cycle, le transfert nécessite 224 cycles : la borne avec chevauchement parfait est donc 288. À un demi-octet par cycle, les transferts nécessitent 448 cycles et deviennent la plus grande borne. Sans chevauchement à un octet par cycle, la somme simple est 512 cycles. Associez ces hypothèses à chaque nombre rapporté.

Sous cette hypothèse de réutilisation, l’intensité arithmétique est 1152/224≈5.14 MAC par octet. Lire les deux opérandes de chaque MAC utilise au contraire 2304 octets d’opérandes ; sorties et biais portent le total à 2384. Le travail est inchangé ; le mouvement diffère. Cela ignore volontairement caches, compression et alignement du bus et n’est pas une mesure matérielle.

Notez taille unique des tenseurs, octets réellement lus/écrits, trafic des sommes partielles, opérations utiles des PE et cycles totaux. Classez les cycles inactifs par manque d’entrée, blocage de sortie, fins incomplètes et commande. Doubler les PE ne peut pas diviser le temps par deux lorsque les transferts dominent. Une meilleure réutilisation peut exiger plus de stockage : considérez cette analyse avec le budget de tuile précédent.

Essayez vous-même

Pour 1152 MAC et 224 octets, utilisez huit PE mais conservez la bande passante à 0.5 octet/cycle. Quelle est la borne inférieure avec chevauchement parfait ?

Lire l’explication

La borne de calcul est 144 cycles et celle de transfert448 : le maximum est donc 448. L’alimentation en opérandes reste la borne limitante.

Votre choix s’applique à ce navigateur. Modifiez-le à tout moment en bas de page.