Alto rendimiento en cálculos en sistema de números residuales utilizando aritmética de punto flotante
Autores: Isupov, Konstantin
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
Alto rendimiento en cálculos en sistema de números residuales utilizando aritmética de punto flotante
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Sistemas
Palabras clave
Sistema de residuos
Aritmética paralela
Rangos dinámicos
Aplicaciones de precisión múltiple
Operaciones de punto flotante
Primitivas paralelas de datos
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 22
Citaciones: Sin citaciones
El sistema de números de residuos (RNS) es conocido por su aritmética paralela y ha sido utilizado en las últimas décadas en varias aplicaciones importantes, desde el procesamiento digital de señales y las redes neuronales profundas hasta la criptografía y la computación de alta precisión. Sin embargo, la comparación, identificación de signos, detección de desbordamiento y división siguen siendo difíciles de implementar en RNS. Para tales operaciones, la mayoría de los métodos propuestos en la literatura solo admiten rangos dinámicos pequeños (hasta varios decenas de bits), por lo que solo son adecuados para aplicaciones de baja precisión. Recientemente propusimos un método que admite conjuntos de módulos arbitrarios con rangos dinámicos de tamaño criptográfico, de hasta varios miles de bits. El interés práctico de nuestro método en comparación con los métodos existentes es que se basa únicamente en operaciones de punto flotante estándar muy rápidas, por lo que es adecuado para aplicaciones de múltiple precisión y se puede implementar eficientemente en muchas plataformas de propósito general que admiten la aritmética IEEE 754. En este documento, realizamos más mejoras a este método y demostramos que se puede aplicar con éxito para implementar primitivas de datos paralelos eficientes que operan en el dominio RNS, a saber, encontrar el elemento máximo de una matriz de números RNS en unidades de procesamiento gráfico. Nuestros resultados experimentales en una GPU NVIDIA RTX 2080 muestran que para residuos aleatorios y un conjunto de 128 módulos con un rango dinámico de 2048 bits, la implementación propuesta reduce el tiempo de ejecución en un factor de 39 y el consumo de memoria en un factor de 13 en comparación con una implementación basada en conversión de radices mixtas.
Descripción
El sistema de números de residuos (RNS) es conocido por su aritmética paralela y ha sido utilizado en las últimas décadas en varias aplicaciones importantes, desde el procesamiento digital de señales y las redes neuronales profundas hasta la criptografía y la computación de alta precisión. Sin embargo, la comparación, identificación de signos, detección de desbordamiento y división siguen siendo difíciles de implementar en RNS. Para tales operaciones, la mayoría de los métodos propuestos en la literatura solo admiten rangos dinámicos pequeños (hasta varios decenas de bits), por lo que solo son adecuados para aplicaciones de baja precisión. Recientemente propusimos un método que admite conjuntos de módulos arbitrarios con rangos dinámicos de tamaño criptográfico, de hasta varios miles de bits. El interés práctico de nuestro método en comparación con los métodos existentes es que se basa únicamente en operaciones de punto flotante estándar muy rápidas, por lo que es adecuado para aplicaciones de múltiple precisión y se puede implementar eficientemente en muchas plataformas de propósito general que admiten la aritmética IEEE 754. En este documento, realizamos más mejoras a este método y demostramos que se puede aplicar con éxito para implementar primitivas de datos paralelos eficientes que operan en el dominio RNS, a saber, encontrar el elemento máximo de una matriz de números RNS en unidades de procesamiento gráfico. Nuestros resultados experimentales en una GPU NVIDIA RTX 2080 muestran que para residuos aleatorios y un conjunto de 128 módulos con un rango dinámico de 2048 bits, la implementación propuesta reduce el tiempo de ejecución en un factor de 39 y el consumo de memoria en un factor de 13 en comparación con una implementación basada en conversión de radices mixtas.