Articulo de referencia

Computación aproximada

La computación aproximada es un paradigma emergente para el diseño de alto rendimiento y/o eficiencia energética. [ 1 ] Incluye una gran cantidad de técnicas de computación que ...

La computación aproximada es un paradigma emergente para el diseño de alto rendimiento y/o eficiencia energética. [ 1 ] Incluye una gran cantidad de técnicas de computación que devuelven un resultado posiblemente inexacto en lugar de un resultado exacto garantizado, y que pueden usarse para aplicaciones donde un resultado aproximado es suficiente para su propósito. [ 2 ] Un ejemplo de esta situación es un motor de búsqueda donde puede no existir una respuesta exacta para una consulta determinada y, por lo tanto, muchas respuestas pueden ser aceptables. De manera similar, la pérdida ocasional de algunos fotogramas en una aplicación de video puede pasar desapercibida debido a las limitaciones perceptivas de los humanos. La computación aproximada se basa en la observación de que, en muchos escenarios, aunque realizar una computación exacta requiere una gran cantidad de recursos, permitir una aproximación limitada puede proporcionar ganancias desproporcionadas en rendimiento y energía, al tiempo que se logra una precisión de resultado aceptable. Por ejemplo, en el algoritmo de agrupamiento k -means , permitir solo una pérdida del 5 % en la precisión de clasificación puede proporcionar un ahorro de energía 50 veces mayor en comparación con la clasificación totalmente precisa.

El requisito fundamental en la computación aproximada es que la aproximación solo se puede introducir en datos no críticos, ya que aproximar datos críticos (por ejemplo, operaciones de control) puede tener consecuencias desastrosas, como el bloqueo del programa o resultados erróneos.

Estrategias

Se pueden utilizar varias estrategias para realizar cálculos aproximados.

Circuitos aproximados
Circuitos aritméticos aproximados: [ 3 ] sumadores aproximados , [ 4 ] [ 5 ] multiplicadores aproximados [ 6 ] y otros circuitos lógicos pueden reducir la sobrecarga de hardware. [ 7 ] [ 8 ] [ 9 ] Por ejemplo, un sumador aproximado de múltiples bits puede ignorar la cadena de acarreo y, por lo tanto, permitir que todos sus subsumadores realicen la operación de suma en paralelo. [ 10 ] [ 11 ]
Aceleradores de hardware aproximados
Almacenamiento y memoria aproximados
En lugar de almacenar valores de datos exactos, se pueden almacenar de forma aproximada, por ejemplo, truncando los bits menos significativos en datos de punto flotante . Otro método es aceptar una memoria menos fiable. Para ello, en DRAM [ 12 ] y eDRAM , se pueden reducir o controlar las asignaciones de frecuencia de actualización . [ 13 ] En SRAM , se puede reducir [ 14 ] o controlar la tensión de alimentación. [ 15 ] Se puede aplicar almacenamiento aproximado para reducir el alto consumo de energía de escritura de MRAM . [ 16 ] En general, se deben deshabilitar todos los mecanismos de detección y corrección de errores .
Aproximación a nivel de software
Existen varias formas de aproximar a nivel de software. Se puede aplicar la memorización o la memorización difusa (el uso de una base de datos vectorial para la recuperación aproximada desde una caché, es decir, el almacenamiento en caché difuso). Se pueden omitir algunas iteraciones de bucles (lo que se denomina perforación de bucle ) para obtener un resultado más rápidamente. También se pueden omitir algunas tareas, por ejemplo, cuando una condición de tiempo de ejecución sugiere que esas tareas no serán útiles ( omisión de tareas ). Los algoritmos de Monte Carlo y los algoritmos aleatorios sacrifican la corrección a cambio de garantías de tiempo de ejecución. [ 17 ] El cálculo se puede reformular según paradigmas que permiten una fácil aceleración en hardware especializado, por ejemplo, una unidad de procesamiento neuronal. [ 18 ]
Sistema aproximado
En un sistema aproximado, [ 19 ] [ 20 ] diferentes subsistemas del sistema, como el procesador, la memoria, el sensor y los módulos de comunicación, se aproximan sinérgicamente para obtener una curva de compensación QE a nivel de sistema mucho mejor en comparación con las aproximaciones individuales a cada uno de los subsistemas.

Áreas de aplicación

La computación aproximada se ha utilizado en diversos ámbitos donde las aplicaciones toleran errores, como el procesamiento multimedia , el aprendizaje automático , el procesamiento de señales y la computación científica . Por lo tanto, la computación aproximada se basa principalmente en aplicaciones relacionadas con la percepción/cognición humana y que poseen una resistencia inherente a los errores. Muchas de estas aplicaciones se basan en cálculos estadísticos o probabilísticos, de modo que se pueden realizar diferentes aproximaciones para ajustarse mejor a los objetivos deseados. [ 21 ] Una aplicación destacada en el aprendizaje automático es el uso que Google hace de este enfoque en sus unidades de procesamiento tensorial (TPU, un ASIC personalizado ). [ 22 ]

paradigmas derivados

El principal problema en la computación aproximada radica en la identificación de la sección de la aplicación susceptible de ser aproximada. En el caso de aplicaciones a gran escala, es frecuente encontrar personas expertas en técnicas de computación aproximada que carecen de suficiente experiencia en el dominio de la aplicación (y viceversa). Para solucionar este problema, se han propuesto paradigmas de programación [ 23 ] . Todos ellos comparten la clara separación de roles entre el programador de la aplicación y el experto en el dominio de la aplicación . Estos enfoques permiten la difusión de las optimizaciones y técnicas de computación aproximada más comunes.

Véase también

Referencias

  1. J. Han y M. Orshansky, " Computación aproximada: un paradigma emergente para el diseño energéticamente eficiente ", en el 18º Simposio Europeo de Pruebas del IEEE, págs. 1-6, 2013.
  2. A. Sampson, et al. " EnerJ: Tipos de datos aproximados para computación segura y general de bajo consumo ", En ACM SIGPLAN Notices, vol. 46, no. 6, 2011.
  3. Jiang et al., " Circuitos aritméticos aproximados: una revisión, caracterización y aplicaciones recientes ", Actas del IEEE, vol. 108, n.° 12, págs. 2108 - 2135, 2020.
  4. J. Echavarria, et al. "FAU: Unidades sumadoras aproximadas rápidas y optimizadas para errores en FPGA basadas en LUT", FPT, 2016.
  5. J. Miao, et al. " Modelado y síntesis de sumadores aproximados óptimos de calidad-energía ", ICCAD, 2012
  6. ^ Rehman, Semeen; El-Harouni, Walaa; Shafique, Mahoma; Kumar, Akash; Henkel, Jörg (7 de noviembre de 2016). Exploración arquitectónico-espacial de multiplicadores aproximados . ACM. pag.  80.doi : 10.1145 /2966986.2967005 . ISBN 9781450344661. S2CID 5326133 . 
  7. S. Venkataramani, et al. " SALSA: síntesis lógica sistemática de circuitos aproximados ", DAC, 2012.
  8. J. Miao, et al. " Síntesis lógica aproximada bajo restricciones generales de magnitud y frecuencia de error ", ICCAD, 2013
  9. R. Hegde et al. " Procesamiento de señales energéticamente eficiente mediante tolerancia al ruido algorítmica ", ISLPED, 1999.
  10. Camus, Vincent; Mei, Linyan; Enz, Christian; Verhelst, Marian (diciembre de 2019). "Revisión y evaluación comparativa de arquitecturas de unidades de multiplicación y acumulación escalables con precisión para el procesamiento de redes neuronales embebidas" . IEEE Journal on Emerging and Selected Topics in Circuits and Systems . 9 (4): 697–711 . Bibcode : 2019IJEST...9..697C . doi : 10.1109/JETCAS.2019.2950386 . ISSN 2156-3357 . La implementación elegida en este estudio asume un multiplicador secuencial de desplazamiento a la derecha, ya que requiere un sumador de primera etapa más pequeño que un diseño de desplazamiento a la izquierda, lo que evita la propagación de acarreo larga y la extensión del bit de signo. 
  11. Nagornov, Nikolay N.; Lyakhov, Pavel A.; Bergerman, Maxim V.; Kalita, Diana I. (2024). "Tendencias modernas en la mejora de las características técnicas de dispositivos y sistemas para el procesamiento de imágenes digitales" . IEEE Access . 12 : 44659–44681 . Bibcode : 2024IEEEA..1244659N . doi : 10.1109/ACCESS.2024.3381493 . ISSN 2169-3536 . La suma y acumulación de bits de orden superior no se realizan hasta la reducción parcial del producto para la siguiente multiplicación en la arquitectura propuesta. 
  12. Raha, A.; Sutar, S.; Jayakumar, H.; Raghunathan, V. (julio de 2017). "Quality Configurable Approximate DRAM" . IEEE Transactions on Computers . 66 (7): 1172– 1187. Bibcode : 2017ITCmp..66.1172R . doi : 10.1109/TC.2016.2640296 . ISSN 0018-9340 . 
  13. ^ Kim, Yongjune; Choi, Won Ho; Guyot, Cirilo; Cassuto, Yuval (diciembre de 2019). "Sobre la asignación óptima de energía de actualización para memorias energéticamente eficientes". Conferencia de Comunicaciones Globales IEEE 2019 (GLOBECOM) . Waikoloa, Hola, Estados Unidos: IEEE. págs. 1 a 6. arXiv : 1907.01112 . doi : 10.1109/GLOBECOM38437.2019.9013465 . ISBN  978-1-7281-0962-6. S2CID 195776538 . 
  14. Frustaci, Fabio; Blaauw, David ; Sylvester, Dennis; Alioto, Massimo (junio de 2016). "SRAM aproximadas con gestión dinámica de energía y calidad". IEEE Transactions on Very Large Scale Integration (VLSI) Systems . 24 (6): 2128– 2141. Bibcode : 2016ITVL...24.2128F . doi : 10.1109/TVLSI.2015.2503733 . ISSN 1063-8210 . S2CID 8051173 .  
  15. Kim, Yongjune; Kang, Mingu; Varshney, Lav R.; Shanbhag, Naresh R. (2018). "Generalized Water-filling for Source-aware Energy-efficient SRAMs". IEEE Transactions on Communications . 66 (10): 4826– 4841. arXiv : 1710.07153 . Bibcode : 2018ITCom..66.4826K . doi : 10.1109/TCOMM.2018.2841406 . ISSN 0090-6778 . S2CID 24512949 .  
  16. Kim, Yongjune; Jeon, Yoocharn; Choi, Hyeokjin; Guyot, Cyril; Cassuto, Yuval (2022). "Optimizing Write Fidelity of MRAMs by Alternating Water-filling Algorithm". IEEE Transactions on Communications . 70 (9): 5825– 5836. Bibcode : 2022ITCom..70.5825K . doi : 10.1109/TCOMM.2022.3190868 . ISSN 0090-6778 . S2CID 250565077 .  
  17. C.Alippi, Inteligencia para sistemas embebidos: un enfoque metodológico, Springer, 2014, págs. 283
  18. Esmaeilzadeh, Hadi; Sampson, Adrian; Ceze, Luis; Burger, Doug (2012). Aceleración neuronal para programas aproximados de propósito general . 45.º Simposio Internacional Anual IEEE/ACM sobre Microarquitectura. Vancouver, BC: IEEE. pp. 449–460 . doi : 10.1109/MICRO.2012.48 . 
  19. Raha, Arnab; Raghunathan, Vijay (2017). "Hacia compensaciones entre energía y precisión en sistemas completos". Actas de la 54.ª Conferencia Anual de Automatización del Diseño 2017. DAC '17. Nueva York, NY, EE. UU.: ACM. págs. 74:1–74:6. doi : 10.1145/3061639.3062333 . ISBN  9781450349277. S2CID 2503638 . 
  20. Ghosh, Soumendu Kumar; Raha, Arnab; Raghunathan, Vijay (24 de julio de 2023). "Sistemas de inferencia de borde aproximados y energéticamente eficientes" . ACM Transactions on Embedded Computing Systems . 22 (4): 77:1–77:50. doi : 10.1145/3589766 . ISSN 1539-9087 . 
  21. Liu, Weiqiang; Lombardi, Fabrizio; Schulte, Michael (dic. 2020). "Computación aproximada: de circuitos a aplicaciones" . Actas del IEEE . 108 (12): 2103. Bibcode : 2020IEEEP.108.2103L . doi : 10.1109/JPROC.2020.3033361 .
  22. Liu, Weiqiang; Lombardi, Fabrizio; Schulte, Michael (dic. 2020). "Computación aproximada: de circuitos a aplicaciones" . Actas del IEEE . 108 (12): 2104. Bibcode : 2020IEEEP.108.2103L . doi : 10.1109/JPROC.2020.3033361 .
  23. Nguyen, Donald; Lenharth, Andrew; Pingali, Keshav (2013). «Una infraestructura ligera para el análisis de grafos». Actas del Vigésimo Cuarto Simposio ACM sobre Principios de Sistemas Operativos . ACM. págs. 456–471 . doi : 10.1145/2517349.2522739 . ISBN  9781450323888.