Solo cinque anni fa, Intel era orgogliosa di poter offrire un modello di programmazione unico e tradizionale basato su istruzioni compatibili con x86. Questo modello copriva sistemi mobili su SoC Atom, acceleratori di calcolo Xeon Phi (un'architettura grafica condizionale — in origine Larrabee) e processori. Oggi, l'affermazione "x86 è tutto ciò che abbiamo" per l'azienda non è più attuale. Intel sta per introdurre architetture grafiche discrete uniche e ha già sviluppato processori destinati all'elaborazione di reti neurali. Per programmazione su nuove piattaforme e framework, Intel ha bisogno di un nuovo modello di programmazione, che deve essere anch'esso unificato.

Recentemente a Londra, durante un evento Intel Software Technology, l'azienda un modello del genere. Il nuovo modello di programmazione unificato si sviluppa nel progetto "One API". Con questo progetto, la programmazione per l'intera gamma di soluzioni e piattaforme Intel diventerà più semplice, indipendentemente dalla scelta della piattaforma. Come ha dichiarato Bill Savage, vicepresidente di Intel e general manager della divisione Compute Performance Developer Products: "L'obiettivo del progetto "One API" è fornire agli sviluppatori un insieme di strumenti che offrono un modello di programmazione unificato e semplificano la creazione di carichi di lavoro per diverse architetture. Man mano che le nostre capacità computazionali si evolvono, ora includendo acceleratori specializzati, Intel fornirà soluzioni software che consentiranno agli sviluppatori di ottenere le massime prestazioni dall'hardware."
Un esempio recente delle possibilità di operare con diverse architetture è rappresentato dagli strumenti di sviluppo Intel Distribution of OpenVINO Toolkit. Abbiamo ripetutamente su questo strumento che offre capacità ottimizzate per l'apprendimento profondo su tutte le architetture Intel SVMS (scalar, vector, matrix, spatial). Questo significa che OpenVINO consente di creare programmi per processori generali, grafici, neurali e FPGA. Il progetto One API permetterà di fare lo stesso mediante programmazione diretta e attraverso API, ma in un volume più ampio e con una certa semplicità, come ad esempio l'eliminazione della necessità di mantenere basi di codice sorgente separate, diversi linguaggi di programmazione e vari strumenti e flussi di lavoro.
«Programmazione diretta: Il progetto One API include un nuovo linguaggio di programmazione diretta Data Parallel C++ (DPC++), che offre un'alternativa aperta e di settore ai linguaggi di programmazione proprietari per architetture specifiche. Alla base di DPC++ c'è C++, utilizzando il modello SYCL* di The Khronos Group. Inoltre, supporta estensioni linguistiche sviluppate nell'ambito della comunità open source.»
La programmazione tramite API offre librerie uniche per diversi tipi di carichi di lavoro con supporto per l'accelerazione hardware. Le funzioni delle librerie sono sviluppate per ogni architettura di destinazione. Versioni avanzate degli strumenti con supporto DPC++ e architetture SVMS vengono create per l'analisi e il debug. Inoltre, si prevede che la versione beta degli strumenti per sviluppatori e ulteriori dettagli sul progetto One API siano disponibili nel quarto trimestre del 2019.
Fonte: 3dnews.ru
