Actualizado a: 22 de enero de 2024
La inteligencia artificial ha irrumpido en el ámbito de la informática. Esto es un hecho. No es el futuro, es el presente. Y esta inteligencia artificial está haciendo que las unidades de procesamiento cambien. Y lo hace tanto para que los procesadores se adapten a estas nuevas cargas de trabajo, como también haciendo que la propia IA pueda interferir en el diseño y desarrollo de estos chips.
El origen de la IA: alejado de la informática actual
El origen de la inteligencia artificial (IA) se remonta a mediados del siglo XX, con los primeros intentos de simular la inteligencia humana en máquinas. El término «inteligencia artificial» fue acuñado por John McCarthy en 1956, durante la Conferencia de Dartmouth, donde se sentaron las bases y objetivos de esta disciplina.
En España, hubo un pionero destacado llamado Leonardo Torres Quevedo, quien fue uno de los impulsores de la IA moderna y la automatización. Aunque su trabajo fue valorado en el extranjero, a menudo es pasado por alto en nuestro país.
Aunque el interés por la IA ha existido desde mucho antes, el verdadero desarrollo de la disciplina se produjo en la década de 1950 y 1960, con el surgimiento de las primeras investigaciones y experimentos en el campo. En ese período, se exploraron enfoques como el razonamiento simbólico, el aprendizaje automático y las redes neuronales artificiales.
Durante las décadas siguientes, la IA experimentó avances y desafíos. En los años 80 y 90, la IA se centró en áreas como el procesamiento del lenguaje natural, la visión por computadora y la resolución de problemas complejos. Sin embargo, los avances no siempre cumplieron con las expectativas iniciales y se produjo un período conocido como la «desilusión de la IA«.
La «desilusión de la IA» (también conocida como «invierno de la IA») se refiere a un período de desencanto y disminución de la financiación y el interés público en la inteligencia artificial que ocurrió en la década de 1970 y principios de la década de 1990. Durante este tiempo, muchas de las promesas y expectativas iniciales sobre las capacidades de la IA no se cumplieron, lo que llevó a un escepticismo generalizado sobre el campo.
La falta de avances significativos en la IA y la incapacidad para cumplir con las expectativas generadas condujeron a la disminución de la inversión y la investigación en el campo. Las técnicas y enfoques utilizados en ese momento, como el razonamiento simbólico y los sistemas expertos, mostraron limitaciones en términos de su capacidad para lidiar con la incertidumbre y la complejidad del mundo real.
Además, los recursos computacionales disponibles en ese momento eran limitados en comparación con las demandas de la IA, lo que dificultaba el desarrollo de algoritmos y modelos más avanzados. La falta de resultados prácticos y aplicaciones exitosas también contribuyó a la desilusión generalizada.
Sin embargo, a medida que avanzaba la década de 1990 y se producían avances en áreas como el aprendizaje automático y las redes neuronales, se revitalizó el interés y la inversión en la IA, marcando el comienzo de una nueva era de desarrollo y aplicaciones prácticas en el campo. La desilusión de la IA fue un período importante en la historia de la disciplina, que llevó a una reevaluación de los enfoques y planteamientos, y sentó las bases para los avances futuros.
En los últimos años, gracias al aumento exponencial de la capacidad computacional, la disponibilidad de grandes cantidades de datos y los avances en algoritmos de aprendizaje automático, la IA ha experimentado un renacimiento. Hoy en día, la IA está presente en diversos ámbitos, como la conducción autónoma, el reconocimiento de voz, la traducción automática, los asistentes virtuales y mucho más.
Procesadores y cargas de trabajo de inteligencia artificial
Es importante mencionar que los primeros intentos de combinar procesadores con inteligencia artificial surgieron cuando se comenzaron a ejecutar cargas de trabajo de IA en estas unidades de procesamiento. Desde que se acuñó el término «inteligencia artificial» en 1956 hasta la actualidad, este campo ha experimentado una gran evolución.
Cuando las primeras redes neuronales artificiales y algoritmos de IA empezaron a desarrollarse, era necesario convertir estos algoritmos en código fuente para que pudieran ser compilados y ejecutados por los procesadores como cualquier otro programa. En ese momento, no se contaba con aceleradores especializados.
Además, surgieron lenguajes como PROLOG, ampliamente utilizado en IA, y sistemas cada vez más capaces. Un hito importante fue el superordenador Watson de IBM, dedicado a la inteligencia artificial, que marcó el inicio de la creación de los primeros chips con redes neuronales artificiales y aceleradores de IA, aunque inicialmente se limitaban a la investigación y el rendimiento de alto nivel.
Con el tiempo, la inteligencia artificial se volvió cada vez más inteligente y requirió una mayor potencia de cálculo, lo que llevó a utilizar unidades más poderosas como las GPUs para abordar este desafío.
IA dentro de los procesadores
Como seguramente sabes, uno de los aspectos críticos de un procesador es su unidad de predicción de saltos. Esta unidad se encarga de anticipar las decisiones de bifurcación condicionales o incondicionales que tomará el software en ejecución, evitando así retrasos innecesarios mientras se espera por la decisión. De esta manera, cuando se completa la ejecución, el resultado ya está disponible, lo que mejora el rendimiento en general.
Hasta ahora, estas predicciones se han basado en tablas y estadísticas que indican cuántas veces se ha tomado o no una determinada bifurcación en los saltos. De esta forma, la CPU puede tomar una decisión con un porcentaje aceptable de aciertos, pero también con algunos fallos.
Cuando ocurre un fallo, es necesario vaciar el canal de ejecución y reiniciar el camino correcto, descartando el incorrecto. Esto resulta en una penalización importante en ciclos de reloj.
Sin embargo, AMD fue una de las pioneras en investigar el uso de redes neuronales artificiales basadas en el perceptrón para su unidad de predicción de saltos. Esto permitió aprender de forma más inteligente en lugar de depender únicamente de tablas estadísticas, lo que mejoró la precisión de las predicciones. Esta implementación se introdujo en la microarquitectura Piledriver.
No obstante, durante una conversación que tuve con François Piednöel, ex arquitecto principal de Intel, parece ser que este tipo de tecnologías comenzaron a generar cierta dificultad para los ingenieros. Actualmente, no se conocen detalles sobre si Intel, AMD y otras compañías están utilizando versiones mejoradas de redes neuronales para la predicción de saltos, pero es un tema interesante a tener en cuenta.
Aceleradores de inteligencia artificial dedicados
Dado el considerable aumento en la cantidad de cargas de trabajo de inteligencia artificial, impulsadas por tecnologías como los asistentes de voz, la IA en cámaras web, el uso de IA para mejorar el rendimiento gráfico y muchas otras aplicaciones, los procesadores han tenido que incorporar aceleradores de inteligencia artificial. De esta manera, se brinda una solución a estas cargas de trabajo que consumen recursos y para las cuales las CPU convencionales no tienen una arquitectura óptima para maximizar el rendimiento.
Como probablemente ya sepas si nos lees con frecuencia, la IA requiere datos de coma flotante de baja precisión, como FP8, FP16, entre otros. Esto significa que no es necesario utilizar las Unidades de Punto Flotante (FPU) de los procesadores, diseñadas principalmente para FP32, FP64 y SIMD superiores. Lo mismo ocurría con las GPUs, que tampoco estaban optimizadas para estos requisitos, aunque han avanzado significativamente con la inclusión de unidades Tensor y aceleradores de cómputo para estos datos de baja precisión.
Uno de los pioneros en integrar estos aceleradores de IA en los SoC (System-on-a-Chip) fue Apple, con sus unidades A-Series y M-Series. Estas incluían una NPU (Neural Processing Unit), llamada Neural Engine por Apple. Estas unidades son básicamente procesadores dedicados que actúan como aceleradores para cargas de trabajo de inteligencia artificial. Por ejemplo, se encargan de ciertas tareas de IA en sus aplicaciones, del asistente virtual Siri y de tecnologías de cámara para ajuste y mejora de imágenes, entre otros.
Poco a poco, esta necesidad también se ha extendido a otros SoC y procesadores. AMD sorprendió este año al incluir la tecnología AMD Ryzen AI en sus procesadores AMD Ryzen para portátiles basados en Zen 4. Esta unidad es otra NPU similar a la de Apple, dedicada a acelerar cargas de trabajo de IA en el sistema. Así, se convirtieron en los primeros chips x86 en integrar uno de estos aceleradores. Es probable que Intel no tarde mucho en responder y también comience a integrar este tipo de unidades para no quedarse rezagado en este campo.
Es probable que los procesadores del futuro estén especialmente adaptados para manejar cargas de trabajo de inteligencia artificial (IA). Dado el creciente papel de la IA en una amplia variedad de aplicaciones, desde el reconocimiento de voz hasta el procesamiento de imágenes y la toma de decisiones complejas, los procesadores deberán evolucionar para satisfacer estas demandas.
Además, los procesadores del futuro podrían estar equipados con arquitecturas optimizadas para algoritmos de IA, permitiendo una mayor paralelización y ejecución simultánea de múltiples tareas. Esto aumentaría la capacidad de procesamiento y reduciría los tiempos de respuesta en aplicaciones de IA intensivas.
Otra adaptación importante podría ser la optimización del consumo de energía, ya que las cargas de trabajo de IA a menudo requieren un alto rendimiento computacional y consumen mucha energía. Los procesadores del futuro podrían desarrollarse con enfoques de eficiencia energética, utilizando técnicas como la reducción del voltaje de operación, la gestión inteligente de la potencia y la mejora en la eficiencia de los transistores.
Y quien sabe si también vendrán con funciones que se puedan activar para realizar algunas mejoras en los sistemas actuales, al igual que se han venido integrando algunas extensiones multimedia, tecnologías de seguridad, virtualización, etc.
Los otros procesadores: la GPU
La GPU ha adquirido una gran importancia en el ámbito de la inteligencia artificial. Aunque originalmente fue diseñada para acelerar el procesamiento de gráficos en aplicaciones de videojuegos y diseño, su arquitectura paralela y capacidad de procesamiento masivo se ha vuelto altamente beneficiosa para tareas de inteligencia artificial.
La IA se basa en algoritmos complejos que implican operaciones matemáticas intensivas y procesamiento de datos a gran escala. La GPU, con su gran cantidad de núcleos de procesamiento y capacidad de realizar múltiples cálculos en paralelo, ofrece un rendimiento significativamente más rápido en comparación con las unidades de procesamiento central (CPU) tradicionales.
Las GPU son particularmente eficientes en aplicaciones de aprendizaje automático y redes neuronales profundas. Estas técnicas requieren grandes cantidades de datos y operaciones matriciales, y la arquitectura de la GPU permite realizar estas tareas de manera simultánea y altamente eficiente. Además, las bibliotecas de software como CUDA y cuDNN proporcionan un entorno optimizado para el desarrollo de algoritmos de IA en GPU.
El uso de GPU en la IA ha permitido acelerar significativamente el entrenamiento y la inferencia de modelos, lo que ha llevado a avances en áreas como el reconocimiento de voz, el procesamiento del lenguaje natural, la visión por computadora y muchas otras aplicaciones de vanguardia. Además, las GPUs han abierto el camino para el desarrollo de frameworks y librerías de IA de código abierto, como TensorFlow y PyTorch, que aprovechan al máximo la capacidad de procesamiento de estas unidades.
Inteligencia artificial en el diseño de procesadores
No solo encontramos casos de inteligencia artificial como carga de trabajo o aceleradores integrados en los procesadores, sino que también debemos destacar la presencia de la IA en otros ámbitos, como en algunas herramientas EDA (Electronic Design Automation) que mejoran funciones específicas y facilitan el trabajo de ingenieros y arquitectos.
Es importante destacar que algunas grandes empresas están utilizando IA para mejorar el diseño de sus procesadores. Esto proporciona un apoyo a las mentes brillantes de los arquitectos, ya que la IA puede automatizar o agilizar tareas repetitivas o tediosas para los seres humanos, al menos por el momento.Sin embargo, se espera que en el futuro el uso de la IA se expanda aún más y permita la creación de diseños de microarquitecturas realizados exclusivamente por ella, potencialmente reemplazando a los ingenieros actuales.
Actualmente, sin pretender hacer predicciones sobre el futuro, contamos con los llamados IA-EDA, que son entornos de desarrollo de circuitos electrónicos utilizados en la industria de los semiconductores. Estos entornos pueden ofrecer algunas ventajas sobre las herramientas EDA tradicionales, como la capacidad de realizar tareas como:
- Diseño automatizado: se utiliza para la automatización de etapas específicas en el diseño de chips, como el enrutamiento de cables, la disposición de componentes y la optimización del diseño. Mediante el uso de algoritmos de aprendizaje automático y optimización, es posible generar diseños más eficientes y optimizados en términos de rendimiento, área y consumo de energía.
- Verificación de diseño: constituye una fase crítica en el proceso de diseño de chips para garantizar que el diseño cumpla con las especificaciones y carezca de errores. La inteligencia artificial se emplea en el desarrollo de técnicas de verificación más avanzadas, como la generación automática de casos de prueba, la detección de errores y la depuración automatizada.
- Exploración de diseño y optimización: se utiliza para explorar y optimizar el espacio de diseño de chips. Los algoritmos de aprendizaje automático ayudan a encontrar configuraciones óptimas de parámetros, como tamaños de transistores, voltajes de operación y topologías de circuitos, que cumplan con los objetivos de diseño, como rendimiento, consumo de energía y costo.
- Análisis y predicción de rendimiento: se emplea para analizar y predecir el rendimiento de los diseños de chips. Mediante modelos de aprendizaje automático entrenados con datos históricos y de simulación, es posible predecir el rendimiento de un diseño en función de ciertos parámetros y condiciones de operación.
Ventajas
Es decir, el uso de IA para diseñar chips, como los procesadores, puede traer a la industria:
- Mejora de la eficiencia y la productividad: la IA automatiza ciertas tareas del diseño de chips, como la optimización del diseño, el enrutamiento de cables y la colocación de componentes. Esto permite una mayor eficiencia y productividad al reducir el tiempo y el esfuerzo necesarios para completar estas tareas manualmente.
- Optimización del rendimiento y la energía: los algoritmos de aprendizaje automático pueden ayudar a encontrar configuraciones óptimas de parámetros en el diseño de chips, como tamaños de transistores y voltajes de operación. Esto permite maximizar el rendimiento y minimizar el consumo de energía, lo que resulta en chips más eficientes y con mejor rendimiento.
- Reducción de errores y mejora de la calidad: la IA se utiliza en la verificación de diseño para detectar errores y depurar automáticamente los diseños de chips. Esto ayuda a reducir los errores humanos y mejora la calidad del diseño al garantizar que cumpla con las especificaciones y requisitos.
- Exploración de diseños complejos: permite explorar y optimizar de manera más eficiente el amplio espacio de diseño de chips. Al utilizar algoritmos de aprendizaje automático, es posible analizar múltiples variables y encontrar soluciones óptimas que cumplan con los objetivos de diseño, como rendimiento, consumo de energía y costo.
- Aceleración del proceso de diseño: acelera el proceso de diseño de chips al automatizar tareas repetitivas y complejas. Esto permite a los ingenieros y arquitectos centrarse en aspectos más creativos y estratégicos del diseño, acelerando el tiempo de lanzamiento al mercado de nuevos productos.
Además, se puede utilizar para el diseño de cualquier tipo de chip, no solo procesadores. La inteligencia artificial también es válida para diseñar incluso PCBs o placas de circuito impreso. Por tanto, se va a transformar en una ayuda para muchos ingenieros, aunque por el momento no en un sustituto total…
Desventajas
Aunque el uso de la inteligencia artificial (IA) en el diseño de chips ofrece numerosos beneficios, también existen algunas desventajas a tener en cuenta:
- Complejidad y falta de transparencia: los algoritmos de IA utilizados en el diseño de chips pueden ser extremadamente complejos y difíciles de comprender. Esto puede dificultar la identificación y corrección de posibles errores o problemas en el diseño. Además, la falta de transparencia en los procesos de toma de decisiones de la IA puede generar incertidumbre sobre cómo se llegó a determinadas soluciones.
- Dependencia de datos de entrenamiento: los modelos de IA utilizados en el diseño de chips se basan en datos de entrenamiento para aprender y tomar decisiones. Si los datos utilizados están sesgados o no representan de manera precisa la diversidad de casos posibles, existe el riesgo de que el diseño resultante también sea sesgado o subóptimo.
- Limitaciones en la creatividad y el pensamiento humano: aunque la IA puede automatizar tareas repetitivas y optimizar ciertos aspectos del diseño, puede carecer de la capacidad de innovación y creatividad humana. La intuición y el pensamiento crítico de los ingenieros y arquitectos humanos pueden ser fundamentales para encontrar soluciones originales y superar desafíos complejos.
- Costos y recursos adicionales: la implementación de la IA en el diseño de chips puede requerir inversiones significativas en infraestructura, hardware especializado y personal capacitado en el manejo de la tecnología. Además, el mantenimiento y actualización continua de los sistemas de IA también puede generar costos adicionales.
- Riesgos de seguridad y privacidad: la utilización de la IA en el diseño de chips puede plantear preocupaciones en términos de seguridad y privacidad de los datos. La exposición de información confidencial o la vulnerabilidad a ataques cibernéticos pueden ser riesgos asociados con el uso de sistemas de IA.
Aunque la IA ofrece beneficios considerables en el diseño de chips, es importante abordar y mitigar las desventajas, como la complejidad, la falta de transparencia, la dependencia de datos de entrenamiento, las limitaciones en la creatividad humana, los costos adicionales y los riesgos de seguridad y privacidad.
Conclusión
Con el paso del tiempo, la inteligencia artificial (IA) se integrará cada vez más en todos los sectores, incluido el ámbito de los procesadores, que deberán adaptarse a estas nuevas cargas de trabajo, al igual que lo hicieron en su momento con las necesidades multimedia y el software actual.
Podemos imaginar un futuro en el que la propia IA sea capaz de diseñar chips o encargarse de la gestión de las fábricas de semiconductores. De hecho, las actuales fábricas ya pueden funcionar de manera casi autónoma, lo que reduce la necesidad de personal en su interior y, por ende, la contaminación en las salas limpias.
Sin embargo, todo esto conlleva riesgos e inconvenientes, como la reducción de la dependencia de la mano de obra humana actual.