18 / 20 · Concept
Concevoir des tests signés et aux limites
Combinez les limites arithmétiques, de dimensions et de commande au-delà d’un exemple nominal.
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
Choisir des entrées distinguant les défauts
L’exemple positif 2×2 révèle le décalage et l’indexation, mais pas l’extension de signe ni la saturation. Des matrices de uns aident à vérifier les comptes mais peuvent masquer une transposition. Utilisez des valeurs asymétriques, des négatifs, des zéros et des lignes et colonnes différentes.
A=[[2, −1], [0, 3]] et B=[[4, 5], [−2, 1]] produisent [[10, 9], [−6, 3]]. Cela inclut des sorties positives et négatives et un zéro valide. B identité doit reproduire A. B nul doit produire des sorties zéro alors que chaque PE consomme toujours K termes.
Pour W=8, K=4, répéter minimum×minimum donne 65536 ; répéter minimum×maximum donne −65024 ; répéter maximum×maximum donne 64516. Tous tiennent dans AW=18. Tester seulement le plus grand opérande positif manque le plus grand produit positif.
Pour la ligne A [−128, −128, 127, 127] et la colonne B [−128, 127, −128, 127], les produits sont [16384, −16256, −16256, 16129]. Leur somme vaut un, avec les sommes préfixes [16384, 128, −16128, 1]. Un petit résultat final ne justifie pas un accumulateur intermédiaire étroit.
Couvrir les limites de dimensions et de commande
N=1, K=1 termine après E0. N=3, K=1 termine encore après E4 parce que les opérandes traversent la grille. N=1, K=5 est un produit scalaire de cinq fronts sans décalage spatial. Tester K=1, 2, 3, 4 franchit les limites de largeur des compteurs, notamment la différence entre stocker K−1 et stocker K.
Insérez des pauses avant le premier MAC, à mi-réduction et avant le dernier MAC. Bloquez les sorties après la fin. Réinitialisez après clear, à mi-traitement et lorsqu’un résultat valide attend. Une sortie de l’ancien traitement après reset est un échec. Comparez les dimensions de tuiles en multiples exacts à celles laissant une ligne ou colonne ; vérifiez les masques par coordonnées.
Pour chaque cas réussi, indiquez la matrice, les listes exactes de termes consommés, le nombre de fronts advance, le nombre de pauses et les coordonnées des sorties livrées. Les tests négatifs nécessitent une catégorie d’erreur attendue. Séparez les vérifications exactes d’accumulateur de la quantification de sortie. Des jeux fixes aux limites et des tests aléatoires à graine rendent les échecs reproductibles tout en étendant la couverture au-delà d’un exemple unique.
Essayez vous-même
Pour N=3, K=1, trouvez le numéro du dernier front et le nombre de fronts. Trouvez aussi la somme de quatre termes minimum×maximum pour W=8, K=4.
Lire l’explication
Le dernier numéro est 1+6−3=4, donnant cinq fronts E0..E4. Un produit minimum×maximum vaut −16256 ; quatre donnent −65024.