El procesamiento multihilo simultáneo y heterogéneo ( SHMT ) es un marco de software que aprovecha los sistemas informáticos heterogéneos que contienen una mezcla de unidades centrales de procesamiento (CPU), unidades de procesamiento gráfico (GPU) y hardware de aprendizaje automático de propósito especial , por ejemplo, unidades de procesamiento tensorial (TPU). [ 1 ] [ 2 ]
Cada componente procesa la información de manera diferente. A menudo, los datos deben moverse entre procesadores, lo que puede crear cuellos de botella, con un procesador bloqueado mientras espera a que otro termine. [ 1 ]
Arquitectura
El sistema define procesadores virtuales y operaciones virtuales (VOP). Las VOP se descomponen en una o más operaciones de alto nivel (HLOP). A continuación, distribuye las operaciones entre los procesadores. El sistema de tiempo de ejecución asigna dinámicamente los procesadores virtuales a los procesadores físicos, evaluando la disponibilidad de recursos para mantener todos los procesadores ocupados. El planificador emplea una política de robo de trabajo ligera y con conciencia de la calidad (QAWS). [ 1 ]
Los entornos de ejecución convencionales asignan un procesador (conjunto) a cada subtarea, dejando otros tipos de procesadores inactivos. En otras palabras, la(s) CPU(s) se ejecutan (posiblemente en paralelo) y, cuando esa subtarea finaliza, la siguiente subtarea se entrega a la(s) GPU(s). Cuando estas finalizan, la siguiente subtarea se entrega a la(s) TPU(s). [ 2 ]
Agregar la canalización de software permite que la segunda subtarea se ejecute utilizando resultados parciales de la primera subtarea, lo que mejora la utilización de los recursos. [ 2 ]
SHMT va un paso más allá, identificando subtareas que pueden ejecutarse independientemente de otras en el tipo de procesador adecuado, lo que permite un paralelismo aún mayor. Algunas subtareas pueden ejecutarse en varios tipos de procesadores. SHMT puede dividir una única subtarea entre dichos tipos de procesadores. Por lo tanto, el avance fundamental consiste en mantener más procesadores trabajando simultáneamente, reduciendo el tiempo y los costos de energía. [ 2 ]
Punto de referencia
Los investigadores probaron el concepto utilizando una configuración típica de teléfono inteligente modificada para que se pareciera a un servidor de centro de datos. [ 1 ]
El hardware consistía en un módulo Jetson Nano de Nvidia que contenía un procesador ARM Cortex-A57 de cuatro núcleos (CPU) y 128 núcleos de GPU con arquitectura Maxwell . Se conectó una Google Edge TPU a través de su ranura M.2 Key E. Los procesadores se comunicaban mediante una interfaz PCI Express (PCIe) integrada. Los datos compartidos se almacenaban en una memoria LPDDR4 de 64 bits y 4 GB . La Edge TPU añadía 8 MB de memoria al dispositivo. El sistema operativo era Ubuntu Linux 18.04. [ 1 ]
En comparación con un sistema convencional, el rendimiento aumentó 1,95 veces, mientras que el consumo de energía se redujo en un 51%, en una variedad de pruebas comparativas, incluyendo Black–Scholes , DCT8X8, DWT, FFT , Histograma, Hotspot, Laplaciano , MF, Sobel, SRAD y GMEAN. [ 1 ]
Véase también
Referencias
- 1 2 3 4 5 6 McClure, Paul (22 de febrero de 2024). "Un ajuste de software duplica la velocidad de procesamiento de la computadora y reduce a la mitad el consumo de energía" . New Atlas . Recuperado el 25 de febrero de 2024 .
- 1 2 3 4 Hsu, Kuan-Chieh; Tseng, Hung-Wei (2023-12-08). "Multihilo simultáneo y heterogéneo". 56.º Simposio Internacional Anual IEEE/ACM sobre Microarquitectura . MICRO '23. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 137–152 . doi : 10.1145/3613424.3614285 . ISBN 979-8-4007-0329-4.
- Arquitectura de software
- Computación paralela