AMD genera una buena cantidad de patentes a lo largo del año y, siendo uno de los grandes fabricantes de unidades de procesamiento gráfico (GPU), un porcentaje importante de ellas está relacionado con tecnologías visuales. No es ningún secreto que la arquitectura actual que usa en sus GPU, llamada Graphics Core Next (GCN), tiene problemas de diseño que hace que consuma mucho pese a que es muy buena en el terreno de la computación paralela —que tiene un efecto muy positivo en las bibliotecas gráficas de bajo nivel como DirectX 12—.

La patente que ha solicitado, llamada Procesador de flujo de datos con alto ancho de banda y archivo de registro de vectores de bajo consumo, viene a solucionar precisamente ese problema de consumo que tiene. Fue publicada el 13 de diciembre de 2018 por la Oficina de Patentes de los Estados Unidos, y hace referencia a una unidad de procesamiento paralelo como la usada en las arquitecturas actuales de GPU, ya sea de AMD, Nvidia, Intel o ARM.

Esta patente viene a solventar los problemas de rendimiento al compartir recursos —como la caché— entre los procesadores de flujos de datos que componen una GPU —llamados generalmente sombreadores, núcleos CUDA en el caso de Nvidia, o multiprocesadores de flujos de datos por parte de AMD—. Estos sombreadores, que básicamente ejecutan como procesadores SIMD o una instrucción sobre múltiples datos, son capaces de ejecutar distintos tipos de operaciones de manera paralela, pero si no acceden correctamente a la información, hay que pensar que mover un registro de más significa un poco de consumo de más por parte de la GPU.

stream_processor.jpg

Por tanto, optimizar su funcionamiento y esa ejecución paralela, compartiendo mejor los recursos o reduciendo los que comparten, minimizando accesos a memoria o movimientos entre registros, entre otros, puede reducir notablemente el consumo. Muchas veces se estudia el consumo de esos movimientos como energía requerida y en el orden de los nanojulios por movimiento. En la arquitectura actual de AMD la tubería de ejecución, en la que el orden de las acciones se hace de manera preestablecida y siempre igual, es ineficiente.

Lo que describe la patente es precisamente cambios en el archivo de registro de vectores para aumentar su ancho de banda, lo que se traduce en mayor velocidad moviendo registros, así como una unidad aritmético lógica de vectores (VALU) con cambios a los sombreadores en forma de nuevas instrucciones, la adición de más memoria y otros cambios en la entrada/salida del sistema. Luego detalla todo el proceso de ejecución de instrucciones del diagrama superior como precisa la solicitud de estas patentes.

Es una lectura interesante a la vez que densa, pero tampoco muy distinta a como se solucionan estos problemas de paralelismo frente a consumo en otras arquitecturas gráficas. Obviamente no entra a detallar todo el sistema de manera pormenorizada, pero en general es evidente que AMD al menos está atajando para futuras arquitecturas este apartado del consumo para intentar acortar distancias con las arquitecturas de Nvidia.

Fuente: FPO. Vía: Hot Hardware.