OpenCL: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
versioni come sezioni |
fix nd |
||
(Una versione intermedia di un altro utente non mostrate) | |||
Riga 1:
{{nota disambigua|la libreria crittografica, nota fino al 2002 come OpenCL|Botan}}
{{Software
|Nome = OpenCL
Riga 22:
'''OpenCL''' ('''Open''' '''C'''omputing '''L'''anguage, tradotto in italiano "linguaggio di calcolo aperto") è un [[framework]] basato sul linguaggio ANSI [[C (linguaggio)|C]] e [[C++]] con una struttura host-devices che può esser eseguito su una molteplicità di piattaforme, [[CPU]], [[Graphics Processing Unit|GPU]], e altri tipi di processori. In particolare, le potenzialità di OpenCL sono meglio espresse con architetture altamente parallelizzabili e potenti come le GPU, e in questo caso si parla dell'ambito [[GPGPU]]. Sui vari dispositivi viene eseguito il codice del kernel basato sul ''[[Linguaggio di programmazione]]'' [https://www.khronos.org/registry/cl/specs/opencl-2.0-openclc.pdf OpenCL C] o la versione [https://web.archive.org/web/20160304055607/https://www.khronos.org/registry/cl/specs/opencl-2.1-openclc++.pdf OpenCL C++] (basati sugli standard [[C99 (linguaggio di programmazione)|C99]] e [[C++14]]).
== Storia ==
Lo standard è stato originariamente proposto da [[Apple Inc.|Apple]], successivamente ratificato dalla stessa assieme alle principali aziende del settore ([[Intel]], [[NVIDIA]], [[Advanced Micro Devices|AMD]]), e infine portato a compimento dal consorzio no-profit [[Khronos Group]].
Riga 79:
=== OpenCL 2.2 ===
La versione 2.2, pubblicata nel maggio 2017, introduce importanti novità:
* Supporto completo a C++14, includendo template, classi, espressioni lambda, ecc
Riga 85 ⟶ 84:
* Nuova versione di [[SYCL]]
=== OpenCL 3.0
La versione 3.0, pubblicata nel settembre 2020, è una profonda revisione di tutto il "progetto" OpenCl, in quanto gli sviluppatori di Kronos Group hanno ritenuto che si stesse perdendo il nucleo delle potenzialità del linguaggio, ovvero la flessibilità e la potenza. Per questo motivo hanno deciso di "tornare", come base, alla versione 1.2, rendendo tutte le funzionalità delle versioni 2.x come opzionali. Hanno inoltre introdotto un nuovo layer per il linguaggio C++ (OpenCl for C++ al posto di OpenCl C++) e una nuova versione di SPIR-V per permettere agli sviluppatori un accesso facilitato, ma non per questo meno performante, al linguaggio.
Con questa versione, inoltre, il gruppo Kronos ha stabilito di programmare una roadmap più consistente e veloce nell'introduzione di nuove funzionalità e/o versioni del linguaggio.
== Note ==
<references/>
|