Intel ha actualizado su Compute Runtime con soporte para PISA (Portable Instruction Set Architecture), una nueva ISA virtual y modelo de programación destinados a sus GPU. Su objetivo es proporcionar un destino estable para los compiladores, evitando que el código tenga que generarse directamente para la ISA física específica de cada arquitectura.
La idea introduce una capa entre el software y las instrucciones que ejecuta finalmente la GPU. Un programa puede compilarse primero hacia PISA y después transformarse en código máquina adaptado al hardware concreto, permitiendo mantener una representación común entre diferentes generaciones compatibles. Intel sitúa entre sus objetivos la portabilidad, el rendimiento cercano al código nativo y el soporte para bibliotecas escritas manualmente y ensamblador inline.
PISA separa el código del conjunto de instrucciones físico de cada GPU
Las GPU evolucionan incorporando nuevas instrucciones, unidades de ejecución y capacidades que obligan a los compiladores a conocer las particularidades de cada generación. PISA intenta desplazar parte de esa dependencia hacia la fase final de compilación, proporcionando un objetivo común sobre el que puedan trabajar las capas superiores.
El resultado no consiste en ejecutar directamente PISA sobre la GPU. Su representación debe finalizarse hacia las instrucciones nativas de la arquitectura de destino, donde pueden aplicarse las características específicas disponibles en ese hardware.
Esto puede resultar especialmente útil cuando aparece una nueva generación. El compilador que produce PISA no necesita necesariamente reconstruir toda su salida alrededor de una ISA física diferente, siempre que el programa permanezca dentro de las funciones compatibles con el nuevo objetivo.
Portabilidad no significa que funcione automáticamente en cualquier GPU Intel
Intel ha diseñado precisamente mecanismos para limitar esa compatibilidad. Cada módulo PISA declara tanto la versión utilizada como la arquitectura objetivo, y las instrucciones disponibles dependen de ese destino. Utilizar una función que el hardware seleccionado no soporta genera un error.
Las arquitecturas posteriores pueden mantener compatibilidad con funciones de generaciones anteriores, pero únicamente mientras esas características continúen soportadas. PISA permite reutilizar código entre GPU compatibles; no convierte todas las GPU Intel en arquitecturas equivalentes.
Ese matiz evita una interpretación demasiado optimista del concepto. Una aplicación que dependa de una instrucción exclusiva de una generación seguirá necesitando una GPU capaz de ejecutarla, aunque utilice PISA como representación intermedia.
El planteamiento recuerda directamente a PTX de NVIDIA
La comparación más evidente está en PTX, la ISA virtual utilizada por NVIDIA dentro de CUDA. En ambos casos existe una representación situada entre el código de alto nivel y las instrucciones físicas que terminará ejecutando la GPU.
El interés de este modelo está en combinar dos objetivos que normalmente chocan: mantener cierta independencia respecto al hardware sin alejarse demasiado de él. Intel especifica precisamente que PISA debe ofrecer rendimiento cercano a la ISA máquina y permitir programación de bajo nivel mediante ensamblador inline y bibliotecas especializadas.
Eso convierte PISA en algo más específico que una representación intermedia completamente genérica. Su documentación define tipos de datos, registros especiales, acceso a memoria, operaciones atómicas, sincronización y comunicación entre subgrupos, exponiendo conceptos propios de la ejecución sobre GPU.
Intel ya tenía vISA, pero PISA plantea una nueva capa portable
El concepto tampoco es completamente nuevo para Intel. La compañía utiliza desde hace años vISA, una ISA virtual que actúa como representación intermedia, y que posteriormente se traduce mediante un finalizador JIT hacia instrucciones nativas de sus GPU.
La diferencia es que PISA aparece como una nueva ISA portable acompañada de su propio modelo de programación y especificación pública, actualmente en la versión 0.1. Su modelo de ejecución y memoria toma como base OpenCL 3.0.
Por tanto, no estamos ante el descubrimiento de una técnica nueva, sino ante una evolución de la infraestructura con la que Intel pretende desacoplar compiladores y arquitecturas físicas.
Una interfaz estable puede simplificar el soporte de futuras GPU
El Compute Runtime de Intel ya cubre arquitecturas que van desde Alchemist y Battlemage hasta Panther Lake, Wildcat Lake, Crescent Island y Nova Lake, lo que obliga a mantener compatibilidad con una gama cada vez mayor de hardware.
Ahí aparece una de las implicaciones más interesantes de PISA. Si los compiladores pueden trabajar sobre una ISA común mientras una capa posterior resuelve las diferencias de cada GPU, introducir nuevas arquitecturas puede requerir menos cambios en las partes superiores de la pila de software.
Eso no elimina el trabajo necesario para habilitar nuevo hardware. El finalizador, los controladores y las propias definiciones de PISA tendrán que evolucionar con cada arquitectura, pero las particularidades no tendrían que propagarse necesariamente por todo el ecosistema.
PISA está todavía en una fase muy temprana
La especificación publicada actualmente corresponde a PISA 0.1, por lo que todavía resulta prematuro valorar su impacto real sobre herramientas, bibliotecas o aplicaciones. Intel define ya mecanismos de versionado y compatibilidad precisamente para poder ampliar la ISA sin romper automáticamente el software anterior.
Su importancia potencial está en otro punto: Intel está construyendo una capa estable entre compiladores y futuras GPU mientras intenta conservar acceso de bajo nivel al hardware. Si consigue madurar ese modelo, puede reducir parte del coste de mantener software optimizado durante varias generaciones.
La comparación con PTX sirve para entender el objetivo, pero todavía no para equiparar ambos ecosistemas. PISA acaba de comenzar, mientras PTX acumula años de desarrollo e integración dentro de CUDA. Lo relevante por ahora es que Intel está reforzando precisamente una de las piezas necesarias para sostener a largo plazo su plataforma de computación sobre GPU.
Vía: TechPowerUp











