Simple Science

Ciencia de vanguardia explicada de forma sencilla

# Informática# Aprendizaje automático

Mejorando operaciones dispersas con la biblioteca PopSparse

PopSparse mejora la velocidad de las operaciones con matrices dispersas en los IPUs de Graphcore.

― 7 minilectura


PopSparse: OperacionesPopSparse: OperacionesSparse Rápidasdispersas en los IPUs de Graphcore.Acelera los cálculos de matrices
Tabla de contenidos

El uso de modelos dispersos en el aprendizaje profundo ha ganado mucho interés. Los modelos dispersos son útiles porque reducen la cantidad de memoria y potencia de cálculo necesarias. Esto es especialmente importante cuando queremos ejecutar redes neuronales a gran escala de manera eficiente. Los modelos dispersos funcionan al reducir el número de pesos diferentes de cero en el modelo, lo que puede disminuir los costos de almacenamiento y computación. Sin embargo, aunque es fácil ver los beneficios en términos de tamaño, es más complicado lograr mejoras de velocidad durante el cálculo. Esto es especialmente cierto en hardware común como las GPUs de NVIDIA cuando se utilizan formatos de menor precisión.

En este documento, presentamos PopSparse, una biblioteca diseñada para realizar operaciones dispersas rápidas en los IPUs de Graphcore. PopSparse aprovecha las características únicas de los IPUs junto con cualquier estructura de bloque presente en los datos. Nos enfocamos en dos tipos de dispersidad: estática, donde el patrón de dispersidad es fijo durante la configuración; y dinámica, donde el patrón puede cambiar en cada ejecución del modelo. Proporcionamos resultados que muestran que PopSparse puede realizar multiplicaciones de matrices más rápido que las operaciones densas tradicionales en IPUs.

Entendiendo la Dispersidad

La dispersidad en el aprendizaje profundo se refiere al método de reducir los pesos en un modelo. Por ejemplo, mediante técnicas como el pruning, podemos reducir el número de pesos en el modelo, generalmente eliminando aquellos que tienen poco impacto en los resultados finales. Estos métodos pueden lograr una reducción de hasta el 90-99% en el número de pesos sin afectar severamente la precisión.

Aunque reducir el tamaño del modelo es relativamente sencillo, obtener los beneficios de velocidad suele ser más complicado. Los cálculos dispersos pueden ser difíciles de implementar de manera efectiva en hardware moderno, que está diseñado para operaciones altamente paralelas. Debido a esto, muchos métodos de entrenamiento eficientes pueden no generar ganancias de velocidad prácticas durante la ejecución.

Hay varios métodos para promover la estructura en modelos dispersos para alinearlos mejor con las capacidades del hardware. Por ejemplo, las técnicas de pruning estructurado pueden agrupar el patrón de dispersidad en bloques, canales o neuronas. Sin embargo, estos métodos estructurados a menudo vienen con un costo en términos de rendimiento en comparación con los métodos no estructurados.

Biblioteca PopSparse

PopSparse se desarrolla para mejorar la velocidad de la Multiplicación de matrices dispersas en los IPUs de Graphcore. Los IPUs tienen algunas ventajas que ayudan a acelerar las operaciones dispersas. Por un lado, tienen una gran cantidad de memoria rápida en chip (SRAM), mejorando el rendimiento para operaciones que requieren alta comunicación. Además, el modelo de procesamiento de fine-grained de los IPUs divide las tareas en numerosas unidades de cómputo independientes, permitiendo que ejecuten altos grados de tareas paralelas.

Para evaluar el rendimiento de PopSparse, realizamos pruebas para multiplicaciones de matrices dispersas tanto estáticas como dinámicas. Cada modo de dispersidad tiene diferentes características y se comporta de manera diferente dependiendo del tamaño y la densidad de las matrices de entrada.

Dispersidad Estática

En la dispersidad estática, el patrón de pesos diferentes de cero se conoce en el momento en que se configura el programa. Durante esta fase de configuración, los pesos diferentes de cero se distribuyen entre las particiones de la matriz. Dado que esta distribución está pre-determinada, hay poca necesidad de intercambio de datos durante el cálculo, lo que lleva a un uso eficiente del IPU. Cada tile, o unidad de procesamiento, maneja su parte de los pesos diferentes de cero sin necesidad de comunicarse extensivamente con otros tiles.

Dispersidad Dinámica

La dispersidad dinámica permite más flexibilidad. En este modo, se conoce el número total de pesos diferentes de cero, pero su distribución específica puede cambiar cada vez que se ejecuta el modelo. Aunque esto añade un poco de sobrecarga computacional, ofrece un nivel de adaptabilidad que puede ser útil para ciertas tareas. Sin embargo, se necesitan pasos adicionales para distribuir y procesar los pesos, lo que puede ralentizar el rendimiento en comparación con la dispersidad estática.

Evaluación y Resultados

Para explorar el rendimiento de PopSparse, comparamos su velocidad con los métodos tradicionales de multiplicación de matrices densas tanto en el IPU como en la GPU. Se prueban varios parámetros para identificar configuraciones que generen los mejores resultados.

Rendimiento de Matrices Densas

Al comparar operaciones de matrices densas, encontramos que en tamaños de batch más grandes, el rendimiento del IPU y la GPU es comparable en formatos de menor precisión. Sin embargo, para tamaños de batch más pequeños, el IPU tiende a desempeñarse mejor. La flexibilidad que ofrece la SRAM le permite gestionar el movimiento de datos de manera más eficiente que las GPUs, que pueden tener problemas bajo condiciones similares.

Rendimiento de Matrices Dispersas

El rendimiento de las configuraciones de dispersidad estática y dinámica en el IPU muestra resultados prometedores. Generalmente, la dispersidad estática supera a la dinámica. Dicho esto, ambos modos de operaciones dispersas ofrecen un mejor rendimiento en comparación con las operaciones densas, especialmente cuando las matrices de entrada son grandes y tienen tamaños de bloque significativos.

Nuestros experimentos revelan que las implementaciones dispersas en el IPU pueden superar a las operaciones densas, especialmente bajo condiciones específicas: baja densidad de pesos diferentes de cero, mayores tamaños de bloque y mayores tamaños de características. Esto hace que PopSparse sea una opción favorable para muchos escenarios de aprendizaje profundo.

Comparación con la GPU

Cuando miramos el rendimiento de la GPU junto a los resultados del IPU, vemos que las GPUs pueden tener dificultades con densidades más bajas de pesos diferentes de cero. Si bien tienen un buen rendimiento en general, su eficiencia puede disminuir en comparación con las operaciones optimizadas de PopSparse en el IPU.

Conclusión

PopSparse mejora de manera efectiva el rendimiento de la multiplicación de matrices dispersas en los IPUs, proporcionando una ventaja competitiva sobre los métodos densos tradicionales y las implementaciones en GPU. Hemos establecido que la dispersidad estática puede llevar a mejoras significativas de velocidad mientras se gestiona una menor sobrecarga que la dispersidad dinámica. Este trabajo destaca el potencial de la dispersidad estructurada como un método para mejorar la velocidad y eficiencia en las operaciones de redes neuronales.

La exploración de la dispersidad de bloques y su aplicación en modelos de aprendizaje profundo promete fomentar investigaciones y desarrollos futuros en esta área. Al demostrar cómo la dispersidad de bloques estática puede acelerar la inferencia en redes neuronales, esperamos impulsar una mayor investigación en algoritmos de pruning dispersos eficientes y aplicaciones en aprendizaje automático.

Trabajo Futuro

Mirando hacia adelante, nuestro objetivo es mostrar cómo la dispersidad de bloques estática puede mejorar efectivamente la inferencia de modelos grandes en los IPUs. Esto implicará lograr una alta eficiencia en memoria mientras se mantiene el rendimiento computacional. En general, el uso de la dispersidad estructurada podría convertirse en una parte crítica para mejorar la eficiencia de los modelos de aprendizaje profundo en el futuro.

Fuente original

Título: PopSparse: Accelerated block sparse matrix multiplication on IPU

Resumen: Reducing the computational cost of running large scale neural networks using sparsity has attracted great attention in the deep learning community. While much success has been achieved in reducing FLOP and parameter counts while maintaining acceptable task performance, achieving actual speed improvements has typically been much more difficult, particularly on general purpose accelerators (GPAs) such as NVIDIA GPUs using low precision number formats. In this work we introduce PopSparse, a library that enables fast sparse operations on Graphcore IPUs by leveraging both the unique hardware characteristics of IPUs as well as any block structure defined in the data. We target two different types of sparsity: static, where the sparsity pattern is fixed at compile-time; and dynamic, where it can change each time the model is run. We present benchmark results for matrix multiplication for both of these modes on IPU with a range of block sizes, matrix sizes and densities. Results indicate that the PopSparse implementations are faster than dense matrix multiplications on IPU at a range of sparsity levels with large matrix size and block size. Furthermore, static sparsity in general outperforms dynamic sparsity. While previous work on GPAs has shown speedups only for very high sparsity (typically 99\% and above), the present work demonstrates that our static sparse implementation outperforms equivalent dense calculations in FP16 at lower sparsity (around 90%). IPU code is available to view and run at ipu.dev/sparsity-benchmarks, GPU code will be made available shortly.

Autores: Zhiyi Li, Douglas Orr, Valeriu Ohan, Godfrey Da costa, Tom Murray, Adam Sanders, Deniz Beker, Dominic Masters

Última actualización: 2023-04-05 00:00:00

Idioma: English

Fuente URL: https://arxiv.org/abs/2303.16999

Fuente PDF: https://arxiv.org/pdf/2303.16999

Licencia: https://creativecommons.org/licenses/by-sa/4.0/

Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.

Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.

Más de autores

Artículos similares