Conception RTL : accélérateurs de CNN
Apprenez l’indexation de convolution et les contrats numériques entiers, puis les fenêtres en flux, la répartition sur les PE et le découpage en tuiles. Vérifiez une référence exécutable et une petite chaîne d’inférence en distinguant valeurs, estimations d’ordonnancement et trafic.
Ce que vous apprendrez
- Calculer les dimensions et indices de convolution avec pas, remplissage, dilatation et canaux
- Définir unités de virgule fixe, échelles, points zéro, largeur d’accumulateur, arrondi et saturation
- Comparer la convolution directe à un modèle de référence im2col
- Générer des fenêtres avec tampons de lignes et acceptation des transferts préservant l’état suspendu
- Calculer réutilisation des PE, stockage des tuiles, trafic et hypothèses d’ordonnancement
- Rapporter les résultats numériques et les limites des preuves d’une petite chaîne d’inférence
Avant de commencer
Ces exercices dans le navigateur utilisent des modèles pédagogiques ; ils ne compilent ni n’exécutent de HDL. Pour exécuter le code séparément, suivez le guide Digital Design Studio de votre système et connectez-vous si l’opération le demande.
Installation et premier démarrage ↗ · Téléchargements ↗Programme
- Le contrat d’inférence
- Inférence et entraînementConcept
Si seuls les canaux de sortie passent de trois à six, comment évoluent le nombre de MAC et le nombre de biais stockés ?
- Convolution et corrélation croiséeConcept
Quels sont les résultats de corrélation croisée et de noyau inversé pour [1, 2;4, 5] avec le noyau [1, 0;0, -1] ?
- Dimensions, pas, remplissage et dilatationConcept
Pour H=7, R=3, un pas de 2, un remplissage supérieur de 0 et inférieur de 1, et une dilatation de 2, calculez Ho et la coordonnée d’entrée pour h=1, r=2.
- Vérification : dimensions et nombre de MACVérification
Utilisez N=1, C=2, H=W=5, M=3, un noyau 3×3, un pas de 2, un remplissage de un sur tous les côtés et une dilatation de un. Quels sont les dimensions de sortie et le nombre de MAC ?
- Le contrat numérique
- Bits et unités en virgule fixeConcept
Multipliez 0.5 et −1.25 à F=4, puis ajoutez le biais 0.25 à F=8. Quels sont le code de l’accumulateur et la valeur réelle ?
- Échelle et point zéroConcept
Pour sx=0.25, zx=128, quels sont le code de remplissage et la valeur réelle de q=132 ? Quel code de biais représente 0.75 avec sw=0.5 ?
- Largeur d’accumulateur, arrondi et saturationConcept
Dix-huit bits signés suffisent-ils pour neuf produits int8 signés avec un biais nul ?
- TP : exécuter le contrat de quantificationTravaux pratiques
Quantifiez −40 avec les mêmes paramètres uint8. Quels sont son code et sa valeur déquantifiée, et quelle assertion ajouteriez-vous ?
- Opérateurs de référence
- Référence de convolution directeConcept
Pour les entrées [2, 3], les poids [4, −1] et le biais un, quel résultat incorrect obtient-on si le biais est ajouté à chaque itération de canal d’entrée ?
- im2col et multiplication matricielleConcept
Pour H=W=4, C=1 et un noyau 3×3 sans remplissage, calculez les éléments d’entrée d’origine, P, K et les éléments des fenêtres développées.
- Relier ReLU et regroupement maximalConcept
Avec un point zéro de sortie uint8 de 100, appliquez ReLU et un regroupement maximal 2×2 à [98, 103;101, 97].
- Vérification : ordre du traitement de sortieVérification
Appliquez le multiplicateur 0.5, zy=0, l’arrondi au plus proche vers le pair, la saturation int8, ReLU et le regroupement maximal 2×2 aux accumulateurs [−1, 2;3, −4]. Quel est le code final ?
- Génération des fenêtres en flux
- Tampons de lignes et fenêtres 3×3Concept
Pour W=8, H=6, calculez les emplacements de stockage, l’indice de la première entrée acceptée produisant une fenêtre valide et le nombre total de fenêtres.
- Ready/valid et état bloquéConcept
L’étage de sortie conserve A avec out_ready=0 tandis que l’entrée B est valide. Que doivent faire l’étage et le producteur au front suivant ?
- TP : fenêtres résistant aux pausesTravaux pratiques
Si les cycles zéro, un, deux sont suspendus à la place et que toutes les entrées sont finalement acceptées, les valeurs ou le nombre de fenêtres changent-ils ? Quel est le nombre total de cycles ?
- Vérification : temporisation de la première fenêtreVérification
Un générateur 4×4 de largeur quatre et de fenêtres 3×3 sans remplissage n’accepte aucune entrée pendant les quatre premiers cycles, puis un pixel par cycle. Quels sont l’indice d’entrée acceptée et le cycle écoulé de la première fenêtre, tous deux numérotés depuis zéro ?
- Répartition entre PE et mémoire
- PE, flux de données et réutilisation des MACConcept
Répartissez P=3, M=2, K=8 sur quatre PE à sorties stationnaires. Quels sont les cycles MAC et l’utilisation utile des créneaux MAC, hors écritures ?
- Tuiles, halos et sommes partiellesConcept
Pour Th=Tw=2, Tc=1, Tm=2, un noyau 3×3, un pas de deux et une dilatation de un, calculez les octets d’entrée/poids/sommes sur 32 bits/biais avec un seul tampon.
- Bande passante et bornes de calculConcept
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 ?
- Ordonnancements, fins incomplètes et doubles tamponsConcept
Pour K=10, quatre sorties, trois PE et un cycle supplémentaire par sortie, calculez les cycles modélisés et l’utilisation des seuls MAC.
- Vérification et projet final mesurable
- Modèles de référence et classification des échecsConcept
La référence [37, 47;67, 77] diffère de [38, 48;68, 78]. Que vérifieriez-vous d’abord et que consigneriez-vous ?
- TP : mettre à l’épreuve les cas limitesTravaux pratiques
Dans le jeu de remplissage, remplacez tous les poids du noyau par un. Quelle est la première sortie et pourquoi un test limité au centre est-il insuffisant ?
- Projet final : petite chaîne d’inférence et rapportTravaux pratiques
Conservez K=9, quatre sorties et un cycle supplémentaire par sortie, mais utilisez trois PE. Quels sont les cycles modélisés totaux et l’utilisation des seuls créneaux MAC ?
- Vérification finale : affirmations et preuvesVérification
L’exécution Node du projet vérifie l’accord numérique, 36 MAC, un modèle d’ordonnancement de 24 cycles et 90%d’utilisation des créneaux MAC. Quelle affirmation d’achèvement est exacte ?