[ad_1]
(noticias nanowerk) Investigadores del MIT y NVIDIA han desarrollado dos técnicas que aceleran el procesamiento de tensores dispersos, un tipo de estructura de datos utilizada para tareas informáticas de alto rendimiento. Las técnicas complementarias podrían conducir a mejoras significativas en el rendimiento y la eficiencia energética de sistemas como los modelos masivos de aprendizaje automático que impulsan la inteligencia artificial generativa.
Las tesis centrales
![Calcular](https://www.nanowerk.com/news2/robotics/id63972_1.jpg)
Investigación
Los tensores son estructuras de datos utilizadas por los modelos de aprendizaje automático. Ambos nuevos métodos tienen como objetivo explotar de manera eficiente la llamada escasez (valores cero) en los tensores. Al procesar estos tensores, puede omitir los ceros y así ahorrar esfuerzo computacional y memoria. Por ejemplo, cualquier cosa multiplicada por cero es cero, por lo que se puede omitir este proceso. Y puede comprimir el tensor (no es necesario almacenar ceros), por lo que se puede almacenar una porción mayor en la memoria del chip.
Sin embargo, explotar la escasez presenta varios desafíos. Encontrar valores distintos de cero en un tensor grande no es una tarea fácil. Los enfoques existentes a menudo limitan las posiciones de valores distintos de cero imponiendo un patrón de escasez para simplificar la búsqueda. Sin embargo, esto limita la variedad de tensores dispersos que se pueden procesar de manera eficiente.
Otro desafío es que la cantidad de valores distintos de cero puede variar en diferentes regiones del tensor. Esto dificulta determinar cuánto espacio se requiere para almacenar diferentes regiones en la memoria. Para garantizar que la región se ajuste, a menudo se asigna más espacio de memoria del necesario, lo que provoca que el búfer de memoria esté infrautilizado. Esto aumenta el tráfico de memoria fuera del chip, lo que aumenta el consumo de energía.
Investigadores del MIT y NVIDIA han desarrollado dos soluciones para abordar estos problemas. Por un lado, han desarrollado una técnica que permite que el hardware encuentre de manera eficiente valores distintos de cero para una variedad más amplia de patrones de escasez.
Para la otra solución, desarrollaron un método que puede manejar el caso en que los datos no caben en la memoria, lo que aumenta la utilización del búfer de memoria y reduce el tráfico de memoria fuera del chip.
Ambos métodos aumentan el rendimiento y reducen los requisitos de energía de los aceleradores de hardware diseñados específicamente para acelerar el procesamiento de tensores dispersos.
“A medida que se utilizan aceleradores de hardware más especializados o de dominios específicos, normalmente se pierde la flexibilidad que obtendría de un procesador de uso general como una CPU. Lo especial de estos dos artículos es que demostramos que aún se puede mantener la flexibilidad y la adaptabilidad sin dejar de ser especializado y eficiente», dice Vivienne Sze, profesora asociada en el Departamento de Ingeniería Eléctrica y Ciencias de la Computación (EECS) del MIT, miembro del grupo de investigación Laboratory of Electronics (RLE) y coautor principal de artículos sobre ambos avances (“HighLight: Efficient and Flexible DNN Acceleration with Hierarchical Structured Sparsity” y “Tailors: Accelerating Sparse Tensor Algebra by Overbooking Buffer Capacity”).
Sus coautores incluyen a los autores principales Yannan Nellie Wu PhD ’23 y Zi Yu Xue, estudiante de posgrado en ingeniería eléctrica e informática; y el coautor principal Joel Emer, profesor de informática e ingeniería eléctrica del MIT y miembro del Laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL), y otros en NVIDIA. Ambos artículos se presentarán en el Simposio Internacional sobre Microarquitectura IEEE/ACM.
Resaltado: encuentre valores cero de manera eficiente
La escasez puede ocurrir en el tensor por varias razones. Por ejemplo, los investigadores a veces “podan” partes innecesarias de los modelos de aprendizaje automático reemplazando algunos valores en el tensor con ceros, lo que genera escasez. El grado de escasez (porcentaje de ceros) y las posiciones de los ceros pueden variar según el modelo.
Para que sea más fácil encontrar los valores restantes distintos de cero en un modelo con miles de millones de valores individuales, los investigadores a menudo restringen la ubicación de los valores distintos de cero para que caigan en un patrón específico. Sin embargo, cada acelerador de hardware suele estar diseñado para admitir un patrón de escasez específico, lo que limita su flexibilidad.
Por el contrario, el acelerador de hardware desarrollado por los investigadores del MIT llamado HighLight puede manejar una variedad de patrones de escasez y aún así funciona bien cuando se ejecutan modelos que tienen valores distintos de cero.
Utilizan una técnica que llaman “escasez estructurada jerárquicamente” para representar de manera eficiente una variedad de patrones de escasez que consisten en varios patrones de escasez simples. Este enfoque divide los valores de un tensor en bloques más pequeños, y cada bloque tiene su propio patrón simple y disperso (quizás dos ceros y dos distintos de ceros en un bloque de cuatro valores).
Luego combinan los bloques en una jerarquía, donde cada colección de bloques también tiene su propio patrón simple y disperso (quizás un bloque nulo y tres bloques distintos de cero en un plano de cuatro bloques). Continúas combinando bloques en capas más grandes, pero los patrones siguen siendo simples en cada paso.
Esta simplicidad permite a HighLight encontrar y omitir ceros de manera más eficiente, lo que le permite aprovechar al máximo la capacidad de reducir el exceso de cálculos. En promedio, el diseño de su acelerador tenía un producto de retardo de energía (una medida de eficiencia energética) aproximadamente seis veces mejor que otros enfoques.
«En última instancia, el acelerador HighLight es capaz de acelerar modelos densos de manera eficiente porque no genera muchos gastos generales y, al mismo tiempo, es capaz de explotar cargas de trabajo con cantidades variables de valores nulos basados en la escasez estructurada jerárquicamente», explicó Wu. .
En el futuro, ella y sus colaboradores quieren aplicar la escasez estructurada jerárquicamente a más tipos de modelos de aprendizaje automático y diferentes tipos de tensores en los modelos.
Schneider y Swiftiles: “overbooking” eficaz para acelerar las cargas de trabajo
Los investigadores también pueden utilizar la escasez para mover y procesar datos en un chip de computadora de manera más eficiente.
Debido a que los tensores suelen ser más grandes de lo que se puede almacenar en la memoria intermedia del chip, el chip solo accede y procesa una parte del tensor a la vez. Los trozos se llaman mosaicos.
Para maximizar el uso de este búfer y limitar la frecuencia con la que el chip debe acceder a la memoria fuera del chip, que a menudo domina el consumo de energía y limita la velocidad de procesamiento, los investigadores intentan utilizar el mosaico más grande que quepa en el búfer.
Pero en un tensor disperso, muchos de los valores de datos son cero, por lo que en el búfer puede caber un mosaico aún más grande de lo que uno esperaría dada su capacidad. No es necesario almacenar valores cero.
Sin embargo, el número de valores nulos puede variar en diferentes regiones del tensor, por lo que también pueden ser diferentes para cada mosaico. Esto dificulta determinar el tamaño de mosaico que cabe en la zona de influencia. Por lo tanto, los enfoques existentes a menudo asumen de manera conservadora que no hay ceros y terminan seleccionando un mosaico más pequeño, lo que genera un desperdicio de espacio en blanco en el búfer.
Para abordar esta incertidumbre, los investigadores proponen utilizar «overbooking» para aumentar el tamaño del mosaico y tolerar cuando el mosaico no cabe en el buffer.
Al igual que una aerolínea sobreventa de boletos en un vuelo: si todos los pasajeros se presentan, la aerolínea debe compensar a los que son expulsados del avión. Pero normalmente no todos los pasajeros llegan.
En un tensor disperso, el tamaño del mosaico se puede elegir de modo que los mosaicos generalmente tengan suficientes ceros para que la mayoría de ellos todavía quepan en el búfer. Pero ocasionalmente un mosaico tendrá más valores distintos de cero de los que caben. En este caso, estos datos se eliminan del búfer.
Los investigadores permiten que el hardware recupere solo los datos que se movieron, sin volver a adquirir ni procesar todo el mosaico. Modifica el «final» del búfer para manejar esto, de ahí el nombre de esta técnica, Tailors.
Luego, también desarrollaron un enfoque para determinar el tamaño de los mosaicos que aprovecha la sobresuscripción. Este método, llamado Swiftiles, estima rápidamente el tamaño de mosaico ideal para que un porcentaje de mosaicos especificado por el usuario tenga overbooking. (Los nombres «Tailors» y «Swiftiles» son un tributo a Taylor Swift, cuya reciente gira Eras estuvo llena de códigos de entradas anticipadas con overbooking).
Swiftiles reduce la cantidad de veces que el hardware tiene que verificar el tensor para determinar el tamaño de mosaico ideal, lo que ahorra esfuerzo computacional. La combinación de Tailors y Swiftiles duplica con creces la velocidad y utiliza solo la mitad de la potencia de los aceleradores de hardware existentes que no pueden soportar la sobresuscripción.
“Swiftiles nos permite estimar el tamaño que deben tener estos mosaicos sin la necesidad de realizar múltiples iteraciones para refinar la estimación. Esto sólo funciona porque se admite el overbooking. Incluso si te desvías por una cantidad decente, aún puedes obtener un aumento de velocidad significativo debido a la forma en que se distribuyen los valores distintos de ceros”, dice Xue.
En el futuro, los investigadores planean extender la idea de overbooking a otros aspectos de la arquitectura informática y también trabajar para mejorar el proceso de estimación del nivel óptimo de overbooking.
[ad_2]