Un enfoque para la multiplicación de matrices de números de punto fijo de 32 bits mediante instrucciones SIMD de 16 bits en DSP
Autores: Safonov, Ilia; Kornilov, Anton; Makienko, Daria
Idioma: Inglés
Editor: MDPI
Año: 2022
Acceso abierto
Artículo científico
2022
Un enfoque para la multiplicación de matrices de números de punto fijo de 32 bits mediante instrucciones SIMD de 16 bits en DSP
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Multiplicación de matrices
Enteros con signo de 32 bits
Números en punto fijo
DSP
Instrucciones SIMD
Optimización del rendimiento
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 53
Citaciones: Sin citaciones
La multiplicación de matrices es una operación importante para muchas aplicaciones de ingeniería. A veces, se deben agregar nuevas características que incluyan la multiplicación de matrices a plataformas integradas existentes e incluso obsoletas. En este documento, se considera un problema inusual: cómo implementar la multiplicación de matrices de enteros con signo de 32 bits y números en punto fijo en un DSP que solo tiene instrucciones SIMD para enteros de 16 bits. Para las tareas examinadas, el tamaño de la matriz puede variar desde varias decenas hasta doscientas. El enfoque matemático propuesto para la multiplicación de matrices rectangulares densas de números de 32 bits comprende la descomposición de matrices de 32 bits en matrices de números de 16 bits, cuatro multiplicaciones de matrices de enteros de 16 bits mediante un producto externo, y la corrección del resultado para enteros con signo y números en punto fijo. Se analizan varios trucos para la optimización del rendimiento. Además, se describen formas de implementaciones por bloques y en paralelo. Una implementación del método propuesto mediante instrucciones de vector de 16 bits es más rápida que la multiplicación de matrices utilizando instrucciones escalares de 32 bits y demuestra un rendimiento cercano a un límite teóricamente alcanzable. La técnica descrita se puede generalizar para la multiplicación de matrices de enteros de n bits y números en punto fijo mediante el manejo de matrices de enteros de n/2 bits. En conclusión, se presentan recomendaciones para los profesionales que trabajan en la implementación de la multiplicación de matrices para varios DSP.
Descripción
La multiplicación de matrices es una operación importante para muchas aplicaciones de ingeniería. A veces, se deben agregar nuevas características que incluyan la multiplicación de matrices a plataformas integradas existentes e incluso obsoletas. En este documento, se considera un problema inusual: cómo implementar la multiplicación de matrices de enteros con signo de 32 bits y números en punto fijo en un DSP que solo tiene instrucciones SIMD para enteros de 16 bits. Para las tareas examinadas, el tamaño de la matriz puede variar desde varias decenas hasta doscientas. El enfoque matemático propuesto para la multiplicación de matrices rectangulares densas de números de 32 bits comprende la descomposición de matrices de 32 bits en matrices de números de 16 bits, cuatro multiplicaciones de matrices de enteros de 16 bits mediante un producto externo, y la corrección del resultado para enteros con signo y números en punto fijo. Se analizan varios trucos para la optimización del rendimiento. Además, se describen formas de implementaciones por bloques y en paralelo. Una implementación del método propuesto mediante instrucciones de vector de 16 bits es más rápida que la multiplicación de matrices utilizando instrucciones escalares de 32 bits y demuestra un rendimiento cercano a un límite teóricamente alcanzable. La técnica descrita se puede generalizar para la multiplicación de matrices de enteros de n bits y números en punto fijo mediante el manejo de matrices de enteros de n/2 bits. En conclusión, se presentan recomendaciones para los profesionales que trabajan en la implementación de la multiplicación de matrices para varios DSP.