SPIR-V
VersioniSPIR è stato introdotto originariamente nel 2011, mentre la versione corrente, SPIR-V, è stata presentata nel 2015. • SPIR 1.2 (Maggio 2013), basato su LLVM IR versione 3.2; è parte delle estensioni per OpenCL 1.2. • SPIR 2.0 (Giugno 2014), basato su LLVM IR versione 3.4; è parte delle estensioni per OpenCL 2.0. • SPIR-V 1.0 (Novembre 2015) non è più basato su LLVM IR; è parte integrante di OpenCL 2.1 come di Vulkan e OpenGL. • SPIR-V 1.1 (Aprile 2016), migliorato il supporto a Python, introdotto il supporto a OpenCL 2.2 e risolti molti bug. • SPIR-V 1.2 (Maggio 2017), introdotto il supporto a HLSL, migliorato il supporto a OpenCL 2.2. • SPIR-V 1.3 (Marzo 2018), viene integrato il pieno supporto a Vulkan 1.1 ed è un consistente passo in avanti nell'unione tra Vulkan e OpenCl • SPIR-V 1.4 (Maggio 2019), risolti molti bug, introdotta una migliore gestione della memoria e altre funzionalità. • SPIR-V 1.5 Revision 3 (Aprile 2020) • SPIR-V 1.6 (Dicembre 2021), supporto ai sorgenti di C++ per OpenCl, uso di ascidoctor e molte altre estensioni. Spir-VLe versioni precedenti alla Spir-V erano basate su LLVM. La prima specifica provvisoria per SPIR 1.0 è stata annunciata nel 2012, mentre la versione stabile 1.2 è stata annunciata al SIGGRAPH 2013, con la versione 2.0 presente alla stessa conferenza l’anno successivo. SPIR è poi evoluto in uno standard aperto definito dal KronosGroup, realmente cross-API: SPIR-V è nativamente incorporato nelle specifiche di OpenCL 2.1 e 2.2 (mentre SPIR ne era una estensione esterna), nelle specifiche di Vulkan e anche nelle specifiche della versione 4.6 di OpenGL. SPIR-V supera molte limitazioni del modello LLVM, supportando anche i kernel OpenCL C e OpenCL C++, con tutte le possibilità legate a questi due linguaggi standard. Hardware e Linguaggi supportatiPur essendo nato in coppia con OpenCL, SPIR-V è stato pensato per supportare il più vasto campo possibile dei linguaggi di programmazione, come Python, Vulkan, C#, Rust, LINQ e molti altri. A livello hardware SPIR-V è supportato da tutti i maggiori vendor che supportano OpenCL (come AMD, Intel, Xilinx, Nvidia e altri) ed è in grado di funzionare anche su dispositivi mobile attraverso il layer per Android. FunzionalitàSPIR-V rappresenta una grossa novità sia dal lato dei vendor hardware sia dal lato dei programmatori: i primi possono evitare la necessità di costruire un compilatore di alto livello del linguaggio sorgente all’interno dei driver delle periferiche, riducendone in maniera significativa la complessità e permettendo l’utilizzo di una vasta gamma di linguaggi e di framework front-end su diverse architetture hardware. Per gli sviluppatori, utilizzare SPIR-V significa che il codice sorgente del kernel non deve più essere esposto direttamente, che i tempi di caricamento del kernel possono essere accelerati e che essi possono scegliere l'utilizzo di una lingua di front-end comune, migliorando l'affidabilità del kernel e la portabilità in più configurazioni hardware. Con il progetto di unificazione dei linguaggi Vulkan e OpenCL, SPIR-V diventerà ancor più fondamentale per gestire insieme la programmazione sia di effetti grafici che di applicativi GPGPU. NoteCollegamenti esterni
|
Portal di Ensiklopedia Dunia