1. Procesamiento Paralelo (Parallel Processing)
Es la capacidad de ejecutar múltiples operaciones o cálculos de forma simultánea, en lugar de hacerlo de manera secuencial (uno tras otro). A diferencia de un proceso lógico secuencial, las operaciones se realizan en bloques de pequeñas operaciones.
Los algoritmos de IA, como el aprendizaje profundo (Deep Learning), se basan en operaciones de álgebra lineal a gran escala, principalmente multiplicaciones de matrices y vectores (operaciones tensoriales). Estas operaciones se pueden descomponer en miles de pequeños cálculos independientes que pueden ejecutarse al mismo tiempo, aumentando la eficiencia y la rapidez para obtener resultados.
Para el procesamiento paralelo, se utilizan:
• GPUs (Unidades de Procesamiento Gráfico). Originalmente diseñadas para renderizar píxeles y polígonos (una tarea inherentemente paralela), su arquitectura de decenas de núcleos simples es perfecta para las operaciones matriciales de las redes neuronales. Una GPU puede realizar miles de multiplicaciones y sumas simultáneamente, acelerando el entrenamiento de modelos de inteligencia artificial.
• TPUs (Unidades de Procesamiento Tensorial). Diseñadas por Google específicamente para IA. Van un paso más allá que las GPUs. Están optimizadas para las operaciones de baja precisión (como los formatos de números FP16 o INT8) que son comunes en la inferencia y el entrenamiento de IA. Tienen una arquitectura matricial que puede procesar bloques enormes de datos en un solo ciclo de reloj.
• VPU (Unidad de Procesamiento Visual). Los VPU son utilizados para procesar patrones visuales, pueden manejar grandes datos dedicados al procesamiento de imágenes y realizar cualquier tipo de operación con esta información.
• FPGAs (Arrays de Puertas Programables). Son microsistemas integrados (chips) cuyo hardware puede ser reconfigurado por el usuario. Esto permite a los ingenieros diseñar una arquitectura de procesamiento paralelo personalizada para un modelo de IA específico, maximizando la eficiencia.
2. Memoria Distribuida (Distributed Memory)
En lugar de tener una única unidad de memoria central a la que todos los procesadores acceden, cada procesador (o grupo de procesadores) tiene su propia memoria local. Los procesadores deben comunicarse entre sí a través de una red para intercambiar datos y coordinar cada parte del proceso.
Los modelos de IA, utilizan algoritmos con base de datos bastante grandes (con millones de parámetros) y los conjuntos de datos son muchas veces demasiado grandes, que no caben en la memoria (hardware) de una sola máquina. La memoria distribuida permite escalar horizontalmente, compartiendo bloques de información, pero todos interconectados entre ellos, así tenemos finalmente una red de memoria distribuida. Las técnicas y métodos utilizados, a efectos de conseguir esto, son:
• Clústers de Procesos de cómputo. Conectan múltiples servidores (nodos), cada uno con sus propias GPUs y memoria RAM, mediante redes de alta velocidad (como InfiniBand o Ethernet de alta gama). En aplicaciones de inteligencia artificial, se utiliza un framework (mucho más que librerías) como TensorFlow o PyTorch que pueden distribuir automáticamente el entrenamiento de un modelo.
• Paralelismo de Datos. Se divide el lote de datos entre los distintos nodos. Cada nodo calcula los gradientes con su subconjunto de datos y luego todos sincronizan y promedian sus resultados.
• Paralelismo de Modelos de AIs. Se divide el modelo mismo en varias partes, cada parte se ejecuta en un nodo diferente. Esto es útil para modelos extremadamente grandes que no caben en la memoria de una sola GPU.
• Memoria HBM en GPUs/TPUs. Incluso a nivel de un solo chip, el concepto se aplica. Las GPUs modernas no usan memoria RAM estándar, sino “High-Bandwidth Memory (HBM)”,. Esto crea múltiples canales de memoria de ultra alto ancho de banda que se distribuyen a lo largo de los núcleos de la GPU, apilándose en bloques tridimensionales, así se consigue minimizar el cuello de botella de acceder a una memoria central más alejada.
De esta manera, las tecnologías de construcción permiten el manejo de millones de datos en nanosegundos, distribuyendo el trabajo entre muchas pilas de memoria asociadas a los GPUs.
3. Adaptabilidad (Adaptability)
El diseño del hardware (electrónica) tiene ahora la capacidad de reconfigurarse o adaptar su arquitectura para comportarse de manera óptima a una carga de trabajo específica, en lugar de ser un diseño fijo y de propósito general. Esto ocurre generalmente porque los algoritmos de las AIs evolucionan muy rápido. Un hardware fijo (como el caso clásico del CPU centralizado), puede volverse obsoleto o ineficiente para las nuevas arquitecturas de redes neuronales que surgen de manera continuada. La adaptabilidad permite que el hardware se mantenga vigente y eficiente. Existen diseños de hardware especializados para estos casos, aquí mencionaremos solo algunos:
• FPGAs (Arreglos de puertas Programables). Son uno de los mejores ejemplos de la adaptabilidad. Es posible con estos diseños, cargar un "bitstream" que reconfigure “literalmente” las conexiones eléctricas del chip, derivando de ello, un circuito especializado para, por ejemplo, una red de transformers o una GAN (Generative Adversarial Networks). Esto ofrece una eficiencia energética y de rendimiento superior para una tarea concreta, pero como contrapartida, existirán mayores complejidades de programación.
• ASICs (Circuitos Integrados de Aplicación Específica). Son chips diseñados desde cero para una única función (por ejemplo el chip NVDLA de NVIDIA para inferencia de deep learning). Son la forma más eficiente y potente, pero son completamente fijos. La "adaptabilidad" aquí ocurre en la fase de diseño: se crea un nuevo ASIC para adaptarse a las nuevas demandas del mercado.
• Arquitecturas Neuromórficas. Estos Chips como el “Intel Loihi 2” de Intel Labs, utilizan "spiking neural networks (SNN)", incluye 6 nucleos microprocesadores y 128 nucleos neuronales y su conectividad sináptica puede adaptarse y cambiar dinámicamente durante el funcionamiento, similar a la plasticidad sináptica en un cerebro biológico. Esto es adaptabilidad en su máxima expresión. El futuro de la tecnología de computo puede basarse en inteligencia artificial neuromórfica.

No hay comentarios:
Publicar un comentario