OpenCL: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.2
correzioni varie
Riga 20:
}}
 
'''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 bene 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] {{Webarchive|url=https://web.archive.org/web/20161015234217/https://www.khronos.org/registry/cl/specs/opencl-2.0-openclc.pdf |date=15 ottobre 2016 }} 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==
Riga 29:
OpenCL è supportato su [[schede video]] [[Advanced Micro Devices|AMD]] e [[NVIDIA Corporation|NVIDIA]]<ref>[https://www.khronos.org/conformance/adopters/conformant-products#topencl Khronos Products<!-- Titolo generato automaticamente -->]</ref> (sia gpu consumer che professionali), su [[Field Programmable Gate Array|FPGA]] [[Xilinx]] e [[Altera]], e su processori [[Architettura ARM|ARM]]. Per quanto riguarda i sistemi operativi, è certificato su [[OS X Snow Leopard]]<ref>https://www.apple.com/it/macosx/technology/#opencl {{webarchive|url=https://web.archive.org/web/20110322164141/http://www.apple.com/it/macosx/technology/ |data=22 marzo 2011 }} Apple OpenCL sezione ufficiale</ref> mentre è disponibile sui sistemi [[Linux]] e [[Windows]].
 
Molti programmi offrono supporto nativo alle librerie OpenCl: [http://arrayfire.com/ ArrayFire], [[Adobe Photoshop]], [[GIMP|Gimp]], [[Autodesk Maya]], [[FFmpeg]], [[x264]], [[LibreOffice Calc|Libreoffice Calc]], Microsoft Excel e molti altri.
 
Il [[Khronos Group]] ha annunciato l'intenzione di unire le librerie OpenCl con le API [[Vulkan (API)|Vulkan]], trasformandole in un'unica piattaforma di sviluppo sia per il settore videoludico che per quello gpgpu.
Riga 55:
* Kernel built-in: dispositivi personalizzati che contengono specifiche funzionalità uniche sono ora integrati più strettamente nel quadro OpenCL. Kernel possono essere chiamati ad utilizzare gli aspetti specialistici o non programmabili di hardware sottostante. Gli esempi includono il video encoding / decoding e processori di segnali digitali.
* Funzionalità DirectX: condivisione dei mezzi di superficie DX9 permette un'efficiente condivisione tra OpenCL e le superfici di media DX9 o DXVA. Allo stesso modo, per DX11, senza soluzione di continuità la condivisione tra superfici OpenCL e DX11 è abilitato.
* La possibilità di forzare la conformità [[IEEE 754 conformità]] per singola precisione in virgola mobile per la matematica: OpenCL di default permette le versioni singole di precisione della divisione, reciproca, e il funzionamento radice quadrata di meno precisi rispetto ai valori correttamente arrotondati rispetto alle richieste IEEE 754. Se il programmatore passa il "-cl-fp32-corretto-arrotondato-divide-sqrt" argomento della riga di comando per il compilatore, queste tre operazioni saranno calcolati a IEEE 754 requisiti se l'attuazione OpenCL supporta questa, e non riuscirà a compilare se l'OpenCL implementazione non supporta queste operazioni di calcolo ai valori correttamente arrotondati come definito dalle specifiche IEEE 754. Questa capacità è completata dalla possibilità di interrogare l'attuazione OpenCL per determinare se è possibile eseguire queste operazioni secondo la precisione IEEE 754.
 
;2.0
Riga 68:
 
;2.1
La ratifica e il rilascio delle specifiche OpenCL 2.1 provvisorie è stato annunciato il 3 marzo 2015 Game Developer Conference di San Francisco. OpenCL 2.1 aggiunge il supporto ufficiale, seppur limitato, per un sottoinsieme statico di C ++ 14 come lingua kernel. SPIR-V viene usato come un linguaggio intermedio che consente linguaggio di alto livello front-end di condividere una compilazione di un obiettivo comune. Gli aggiornamenti del API OpenCL includono:
* Funzionalità aggiuntive sottogruppo
* Copia di oggetti del kernel e stati
Riga 84:
* Nuova versione [[Spir-v|SPIR-V]]
* Nuova versione di [[SYCL]]
 
 
 
Riga 91 ⟶ 92:
 
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.
 
<br />
==Note==
<references/>