Resumen:
|
[ES] Las redes neuronales convolucionales (CNN) son, de hecho, el método estándar para clasificación de imágenes en diversos dominios, incluyendo reconocimiento facial automático en sistemas de protección de fronteras, ...[+]
[ES] Las redes neuronales convolucionales (CNN) son, de hecho, el método estándar para clasificación de imágenes en diversos dominios, incluyendo reconocimiento facial automático en sistemas de protección de fronteras, conducción autónoma en vehículos, sanidad, etc. Desplegar una CNN requiere encontrar un equilibrio entre objetivos contrapuestos, como productividad, precisión y consumo de energía. En entornos críticos, asegurar un nivel aceptable de robustez contra fallos es de vital importancia. Millones de parámetros, cargados desde memoria principal a los buffers de los aceleradores de las CNN, son usados repetidamente en el proceso de inferencia. Bit-flips accidentales o maliciosos en esos buffers pueden afectar negativamente a la precisión de la red. Las soluciones tradicionales, basadas en redundancia, pueden aportar una elevada cobertura de errores, pero con una elevada sobrecarga, en ocasiones inasumible, especialmente en soluciones con recursos limitados.
Este trabajo propone una nueva metodología para localizar bits en los parámetros en coma flotante de una CNN que no son necesarios (por irrelevantes o por invariantes). Por una parte, la representación en memoria de valores en coma flotante (frecuentemente usando el estándar IEEE-754 de 32 bits) tiene una precisión muy elevada, innecesaria para el proceso de inferencia de una CNN. Así pues, se puede utilizar la inyección de fallos para determinar los bits que son irrelevantes para el proceso de inferencia (generalmente los bits menos significativos). Por otra parte, la mayoría de los parámetros están incluidos en un pequeño rango de valores y, por tanto, sus representaciones tienen exponentes similares. Analizando estos valores, es posible encontrar bits invariantes (que tienen el mismo valor en todos los parámetros). Incluso se pueden realizar ligeras modificaciones a determinados parámetros para incrementar el número de bits invariantes.
Los bits invariantes y los irrelevantes no afectan al proceso de inferencia, así que se pueden utilizar como bits de paridad para códigos correctores de errores. Es importante remarcar que esta metodología mantiene la precisión de la CNN y su huella en memoria, y puede desplegarse sin reentrenar la red. Se ha aplicado a diferentes CNN de PyTorch entrenadas previamente para demostrar la validez y aplicabilidad general de la propuesta.
[-]
[EN] Convolutional Neural Networks (CNNs) are the de facto standard method for image classification in various domains, including automatic face recognition in border-protection systems, autonomous driving in vehicles, ...[+]
[EN] Convolutional Neural Networks (CNNs) are the de facto standard method for image classification in various domains, including automatic face recognition in border-protection systems, autonomous driving in vehicles, health care, etc. Deploying CNNs requires balancing conflicting goals, like throughput, accuracy, and power consumption. In safety-critical environments, ensuring acceptable levels of robustness against faults is also of utmost importance. Millions of parameters, loaded from main memory into the internal buffers of CNN accelerators, are repeatedly used in the inference process. Accidental and malicious bit-flips targeting these buffers may negatively impact CNN's accuracy. Traditional redundancy-based solutions provide high error coverage at the cost of high, and sometimes unaffordable, overheads, especially for resource-constrained solutions.
This work proposes a novel methodology to locate bits in the floating-point (FP) parameters of a CNN that are not necessary (irrelevant or invariant). On the one hand, the memory representation of FP values (frequently 32-bit IEEE-754 standard) has a very high precision, unnecessary for the CNN inference process. Thus, fault injection can be used to determine the bits that are irrelevant to the inference process (usually the least significant bits). On the other hand, most of the parameters are within a short range of values and, therefore, their representations have similar exponents. By analyzing these values, it is possible to find invariant bits, i.e. bits that have always the same value in all parameters. Even more, slight modifications can be applied to selected parameters to increase the number of invariant bits.
Irrelevant and invariant bits do not affect the inference process, so they can be used as parity bits for error correction codes (ECCs). It is important to note that this methodology preserves the CNN accuracy and its memory footprint, and it can be deployed without retraining the network. It has been applied to different PyTorch pre-trained CNNs to demonstrate the validity and general applicability of the approach.
[-]
|