Vulkan 1.4.359: Expansión de capacidades de matriz cooperativa

La especificación de la API Vulkan recibió hoy una actualización importante con el lanzamiento de la versión 1.4.359. Esta actualización semanal introduce una nueva extensión diseñada para potenciar las capacidades de matriz cooperativa (cooperative matrix) dentro del ecosistema gráfico y de cómputo.

En 2023, la llegada de Vulkan 1.3.255 marcó un hito con la introducción de la extensión VK_KHR_cooperative_matrix, la cual brindó soporte inicial para matrices cooperativas en Vulkan y la representación intermedia SPIR-V. Esta herramienta resulta fundamental para tareas de inferencia de machine learning, post-procesamiento gráfico y simulaciones físicas complejas. Cabe destacar que este soporte también fue incorporado recientemente en OpenCL.

Con la versión 1.4.359, se añade la extensión VK_EXT_cooperative_matrix_maintenance1, que incluye una serie de mejoras incrementales para el soporte de matrices cooperativas. Este nuevo componente busca acelerar funciones que van más allá de los simples kernels GEMM (General Matrix Multiply), añadiendo soporte para conversiones de tipo y uso, reducciones, operaciones por elemento y otras funciones avanzadas. El texto de la nueva extensión detalla:

"Esta extensión añade varias características nuevas basadas en los tipos de matriz cooperativa introducidos en VK_KHR_cooperative_matrix. El objetivo es ampliar y acelerar capacidades más allá de los kernels GEMM, incluyendo soporte para conversiones de tipo, reducciones, operaciones por elemento y la conversión de un índice de elemento a una coordenada de matriz. [...] Esta extensión también proporciona un nuevo comando para consultar las propiedades de las matrices cooperativas, el cual es fácilmente extensible. La consulta incluye entradas para el tamaño de subgrupo deseado y, al utilizarse con extensiones como VK_NV_cooperative_matrix2, permite a las implementaciones exponer propiedades óptimas para tamaños de subgrupos o grupos de trabajo locales específicos".

Este desarrollo técnico fue fruto de la colaboración entre ingenieros de NVIDIA, Qualcomm, Intel y Arm, quienes buscan estandarizar el rendimiento en arquitecturas heterogéneas.

Aquellos desarrolladores e interesados en profundizar en los detalles técnicos específicos de esta implementación pueden revisar este commit que detalla los cambios incluidos en Vulkan 1.4.359.

Vía Phoronix.