Standard Portable Intermediate Representation

Un article de Wikipédia, l'encyclopédie libre.
SPIR
Description de l'image SPIR Logo.svg.

Informations
Créateur Khronos GroupVoir et modifier les données sur Wikidata
Développé par Khronos Group
Première version Voir et modifier les données sur Wikidata
Dernière version 5
Environnement Cross-platform
Type langage intermédiaire
Licence Format Ouvert Libre de Droits
Site web https://www.khronos.org/spir

Standard Portable Intermediate Representation ou SPIR est un langage intermédiaire, créé par le Khronos Group, à l'origine pour le calcul parallèle intensif et faciliter l'interprétation d'OpenCL, et dans son API Vulkan, avec SPIR-V pour la transmission des shaders aux pilotes des processeurs graphiques. Initialement basée sur LLVM, la version SPIR-V utilise sa propre représentation.

Étant donné la proximité de SPIR-V avec SPIR (et donc la représentation intermédiaire de LLVM), ce dernier pourra être utilisé pour son interprétation[1].

Version basée sur LLVM[modifier | modifier le code]

SPIR est basé sur LLVM, il est utilisé notamment pour OpenCL. Des spécifications provisoires de SPIR 1.0 sont annoncées en 2012[2]. La version 1.2 est annoncée au SIGGRAPH 2013[3] et la version 2.0 est annoncée à la même conférence en 2014[4].

SPIR-V présenté en 2015 n'est plus compatible avec la représentation d'LLVM, une évolution a donc été nécessaire pour la première version expérimentale de SPIR-V avec LLVM en [5].

Notes et références[modifier | modifier le code]

  1. (en) « Learning More About The Intel Vulkan Driver, Linux Vulkan Plans », phoronix,
  2. (en) Michael Larabel, « Khronos SPIR For OpenCL Brings Binary Compatibility », Phoronix, (consulté le )
  3. (en) Ryan Smith, « Khronos @ SIGGRAPH 2013: OpenGL 4.4, OpenCL 2.0, & OpenCL 1.2 SPIR Announced », Anandtech, (consulté le )
  4. (en) Ryan Smith, « Khronos Announces OpenCL SPIR 2.0 », (consulté le )
  5. (en) Michael Larabel, « hLunarGLASS Adds Experimental SPIR-V Front-End », Phoronix,

Annexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]