Mémoire de maîtrise (2023)
Document en libre accès dans PolyPublie |
|
Libre accès au plein texte de ce document Conditions d'utilisation: Tous droits réservés Télécharger (6MB) |
Résumé
Les Réseaux de Neurones Convolutifs (CNN) sont utilisés dans de nombreux domaines et offrent une grande précision au détriment de la portabilité. Les progrès récents dans les techniques de quantification ont démontré que les Réseaux de Neurones Quantifiés (QNN) sur moins d’un octet atteignent une précision comparable, voire supérieure à celle des réseaux calculés en virgule flottante, tout en réduisant considérablement les coûts de calcul et l’empreinte mémoire. Cependant, les opérations sur des opérandes de taille inférieure à l’octet sur du matériel moderne standard sont généralement effectuées de manière sous optimale en raison de l’absence de prise en charge de telles précisions. Pour remédier à cette limitation, nous présentons dans ce travail différentes modifications d’Ara, un processeur 64-bit conforme à la norme RISC-V “V” en sources libres. Nous introduisons deux processeurs vectoriels spécialisés nommés Sparq et SparqV2, conçus spécifiquement pour accélérer l’inférence des QNN en utilisant une technique appelée ULPPACK. De plus, nous comparons les performances de ces processeurs à celles de Quark, un autre processeur basé sur Ara qui utilise la technique d’opérations binaires séquentielles pour les opérations sur des opérandes inférieurs à l’octet. Sparq(V2) et Quark sont implémentés avec la technologie GLOBAL FOUNDRIES 22FDX FD-SOI et étendent le jeu d’instructions (ISA) en ajoutant des instructions spécialisées pour améliorer l’efficacité des calculs sur des opérandes de tailles inférieures à l’octet. L’unité de calcul en virgule flottante est également supprimée pour minimiser la surface et la consommation d’énergie. Dans notre implémentation physique, nous démontrons qu’une voie (lane dans la terminologie relative à Ara) sur Sparq présente une surface inférieure de 43,3% par rapport à une voie d’Ara. Pour illustrer les performances de Sparq et de Quark, nous mettons en oeuvre une opération de convolution 2D vectorisée pour des opérandes de basse précision. Nous montrons que Sparq peut accélérer de manière significative les calculs sur des opérandes de tailles inférieurs à l’octet, avec des accélérations moyennes respectives de 2.95 fois et 2.40 fois par rapport aux convolutions 2D en virgule flottante sur 32 bits pour différentes couches du modèle ResNet-18 en exploitant une résolution sur 2 et 4 bits. De plus, nous montrons que pour des opérandes de faible précision supérieure à 2 bits, l’utilisation de la méthode ULPPACK sur Sparq permet d’obtenir de meilleures performances que la méthode d’opérations binaires séquentielles utilisée par Quark.
Abstract
Convolutional Neural Networks (CNNs) have found extensive use in various applications, offering high accuracy but limited portability when implemented with full precision. Recent advances in quantization techniques have shown that sub-byte Quantized Neural Networks (QNNs) can achieve accuracy comparable or even superior to their floating point counterparts while significantly reducing computational costs and memory requirements. However, performing sub-byte computations on standard hardware is generally suboptimal due to the lack of support for such precisions. In this work, we present several modifications of Ara, an open-source 64-bit RISC-V “V” compliant processor, to address this limitation. We introduce two specialized sub-byte vector processors called Sparq and SparqV2, designed specifically to accelerate QNN inference using a technique known as ULPPACK. Additionally, we compare the performance of these processors to Quark, another custom processor based on Ara that employs the bit-serial technique. Both Sparq(V2) and Quark are implemented using the GLOBAL FOUNDRIES 22FDX FD-SOI technology and extend their Instruction Set Architecture (ISA) by incorporating custom instructions to enhance sub-byte computation efficiency. To minimize area and power usage, the floating-point unit is removed. In our physical implementation, we demonstrate that Sparq’s lanes reduce the cell area by 43.3% compared to Ara’s lanes. To showcase the performance of Sparq and Quark, we implement an ultra-low-precision vectorized conv2d operation, leveraging the dedicated hardware. Our results indicate that Sparq achieves significant acceleration in sub-byte computations, leading to speedups of 2.95 times and 2.40 times over floating-point 32-bit 2D convolutions for different layers of the ResNet-18 model processed in 2-bit and 4-bit resolution, respectively. Furthermore, we show that for low-precision operands above 2-bit, utilizing the ULPPACK method on Sparq yields better performance than the bit-serial method employed by Quark.
Département: | Département de génie électrique |
---|---|
Programme: | Génie électrique |
Directeurs ou directrices: | Jean Pierre David et Yvon Savaria |
URL de PolyPublie: | https://publications.polymtl.ca/54392/ |
Université/École: | Polytechnique Montréal |
Date du dépôt: | 13 nov. 2023 10:54 |
Dernière modification: | 13 nov. 2024 21:59 |
Citer en APA 7: | Dupuis, T. (2023). Implémentation efficiente de produits de convolution sur des opérandes représentés sur moins de 8 bits [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/54392/ |
---|---|
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements