El auge de la IA, el procesamiento gráfico, la optimización combinatoria y otras aplicaciones con uso intensivo de datos ha resultado en cuellos de botella en el procesamiento de datos, ya que se deben trasladar cantidades cada vez mayores de datos de un lado a otro entre la memoria y los elementos de cómputo de una computadora. La distancia física es pequeña, pero el proceso puede ocurrir miles de millones de veces por segundo. Inevitablemente, la energía y el tiempo necesarios para mover tantos datos se acumulan. En respuesta, los ingenieros informáticos están diseñando aceleradores de hardware especializados con arquitecturas innovadoras para mejorar el rendimiento de dichas aplicaciones.
Los esfuerzos anteriores para desarrollar hardware para problemas de optimización han involucrado máquinas Ising, una categoría de solucionadores de hardware que incorporan el modelo Ising para encontrar el «estado fundamental» absoluto o aproximado, como en el mínimo de energía.
Hasta ahora, las arquitecturas de hardware para las máquinas Ising podían resolver eficientemente problemas con funciones objetivo polinómicas cuadráticas, pero no eran escalables a problemas de orden superior cada vez más relevantes, como el plegamiento de proteínas, la predicción de estructuras electrónicas, la verificación de modelos de IA, el enrutamiento de circuitos, el diagnóstico de fallas y programación.
Tinish Bhattacharya, estudiante de doctorado en el laboratorio del profesor de ingeniería eléctrica e informática Dmitri Strukov de UC Santa Barbara, lleva a cabo una investigación en esta área. Él y varios colaboradores de la industria, junto con colegas académicos en Europa y el colaborador industrial Hewlett Packard Labs, han desarrollado hardware de computación de gradiente de funciones especializadas para acelerar la velocidad a la que se pueden resolver problemas complejos de optimización de alto orden.
Un artículo que describe su trabajo, «Cálculo de gradientes polinomiales de alto grado en la memoria». aparece en el diario Comunicaciones de la naturaleza.
«La función objetivo de cualquier problema de optimización, como una carga de trabajo de IA, representa un ‘panorama energético’ N-dimensional, donde cada combinación de valores variables representa un punto único en ese panorama», dijo Bhattacharya, y señaló: «El objetivo es encuentre el conjunto de asignaciones de variables que corresponda al punto más bajo (o más generalmente, lo más cercano posible al más bajo) de ese paisaje».
A modo de paralelo, sugiere un paisaje real.
«Imagínate en lo alto de Sierra Nevada, y tu objetivo es encontrar el punto más bajo de una zona determinada, lo más rápido posible y con el menor esfuerzo posible. Para lograrlo, obviamente, seguirás la pendiente más pronunciada hacia abajo. La información sobre la inclinación y la dirección en la que se encuentra la pendiente más pronunciada con respecto a donde estás está dada por el gradiente de la función en ese punto. Procedes tomando pasos incrementales y recalculando el gradiente después de cada uno para confirmar que todavía estás. en la pendiente más empinada», explicó.
Este ejemplo plantea un paisaje tridimensional que podría representarse mediante los ejes x, y, z, y el cálculo del gradiente es relativamente simple. Sin embargo, los problemas prácticos de optimización pueden tener cientos de miles de variables.
«La operación de cálculo del gradiente se realiza de forma iterativa, una y otra vez, y debemos poder hacerlo de forma rápida y eficiente», añadió.
Según Battacharya, gran parte del hardware de última generación propuesto actualmente para resolver este tipo de problemas se limita a problemas de segundo orden. El principal beneficio de su hardware, señaló, es que puede resolver problemas como la satisfacibilidad booleana en su espacio nativo de alto orden sin tener que realizar ningún preprocesamiento, lo que potencialmente proporciona una velocidad exponencial con respecto a las arquitecturas de hardware actuales que se limitan al segundo orden. funciones objetivas.
como lo hacen
Un elemento clave del nuevo hardware es su capacidad para realizar computación en memoria dentro del propio conjunto de memoria, mitigando el cuello de botella que resulta del movimiento de grandes cantidades de datos entre la memoria y el procesador en una computadora clásica. Los investigadores aceleran las operaciones realizando la multiplicación de vectores de matrices, la operación matemática detrás del paso de cálculo de gradiente, mediante el uso de matrices de barras transversales de dispositivos de memristores especializados.
La gran ventaja de la computación en memoria es que se puede realizar en un tiempo independiente del tamaño de la matriz. Siempre requiere un solo paso, sin intercambio de datos de un lado a otro, lo que reduce drásticamente el tiempo de resolución.
El hardware consta de memorias de barras transversales (superficies elevadas reales litografiadas en el chip) donde varias líneas de palabras (cables) corren horizontalmente y varias líneas de bits corren verticalmente. Colocar un memristor en cada ubicación donde se cruzan una línea de palabras y una línea de bits (con un terminal del dispositivo conectado a la línea de palabras y el otro a la línea de bits) forma una matriz de barras cruzadas de memristores.
La matriz que codifica el problema se almacena en los estados de estos memristores. El vector se aplica como pulsos de lectura proporcionales en las líneas de palabras. Las corrientes resultantes, que fluyen por las líneas de bits, representan el resultado de la multiplicación vectorial-matriz.
La innovación central que permite el cálculo de gradientes de polinomios de alto orden en el espacio nativo (de alto orden) es el uso de dos matrices de barras transversales consecutivas. Ambas barras transversales almacenan la matriz que representa el polinomio de orden superior. La primera barra transversal calcula los monomios de orden superior del polinomio. La segunda barra transversal utiliza este resultado como entrada para calcular el gradiente de orden superior para todas las variables en cada una de sus líneas de bits.
Este elemento «masivamente paralelo» del enfoque del grupo es clave para su éxito.
«Con esto queremos decir que nuestro hardware puede calcular los gradientes para cada una de esas variables al mismo tiempo, en lugar de secuencialmente, como lo hace gran parte del hardware actual», dijo Bhattacharya. «Esa es la optimización, en un sentido, el hecho de que hemos retenido esa propiedad enormemente paralela incluso cuando vamos a ese espacio de alto orden».
Desde un punto de vista algorítmico, la capacidad de optimizar una función nativa de alto orden, a diferencia de la versión reducida de segundo orden, puede resultar en una ventaja de velocidad de casi dos órdenes de magnitud para problemas que tienen solo 150 variables. Esto sigue siendo un orden de magnitud menor que la mayoría de los problemas prácticamente relevantes que se encuentran en escenarios del mundo real, y se espera que la ventaja de velocidad aumente exponencialmente con la adición de más variables.
Más información:
Tinish Bhattacharya et al, Cálculo de gradientes polinomiales de alto grado en la memoria, Comunicaciones de la naturaleza (2024). DOI: 10.1038/s41467-024-52488-y
Citación: El hardware especializado resuelve problemas de optimización de alto orden con computación en memoria (2025, 8 de enero) obtenido el 8 de enero de 2025 en https://techxplore.com/news/2025-01-specialized-hardware-high-optimization-problems.html
Este documento está sujeto a derechos de autor. Aparte de cualquier trato justo con fines de estudio o investigación privados, ninguna parte puede reproducirse sin el permiso por escrito. El contenido se proporciona únicamente con fines informativos.
GIPHY App Key not set. Please check settings