Contents
Mijn eerste blog in deze driedelige serie onderzocht de kansen die samenhangen met de groeiende diversiteit aan werklasten en de onvermijdelijke groei van heterogene computers in het exascale-tijdperk. In deze blog ga ik in op de barrières die ontwikkelaars tegenkomen bij het programmeren naar meerdere architecturen en hun diverse softwarestacks, en hoe oneAPI het coderingsproces eenvoudiger maakt.
Op SC'19 lanceerde Intel oneAPI, een uniform en schaalbaar programmeermodel om de kracht van diverse computerarchitecturen in het tijdperk van HPC/AI-convergentie te benutten. Het oneAPI-initiatief wordt ondersteund door meer dan 30 grote bedrijven en onderzoeksorganisaties en groeit. Het zal de programmering definiëren voor een steeds meer door AI doordrenkte wereld met meerdere architectuur. oneAPI levert een uniforme en open programmeerervaring aan ontwikkelaars, op de architectuur van hun keuze, zonder afbreuk te doen aan de prestaties. Het minimaliseert ook de complexiteit van afzonderlijke codebases, meerdere programmeertalen en verschillende tools en workflows. Ons doel is om deze barrières die ontwikkelaars tegenkomen te verminderen. We willen er ook voor zorgen dat bestaande software-investeringen behouden blijven met ondersteuning voor bestaande talen, terwijl we ontwikkelaars flexibiliteit bieden om veelzijdige applicaties te maken.
Rick Stevens, associate laboratoriumdirecteur, Computing, Environment, and Life Sciences, Argonne National Laboratory, leidt de inspanningen om in 2021 een supercomputer met exaflop-mogelijkheden, Aurora genaamd, in te zetten. computing vereist heterogene hardware om de rekenkracht te maximaliseren die nodig is voor workloads van exascale-klasse. Het oneAPI-industrie-initiatief dat Intel voorop loopt, zal ervoor zorgen dat programmeren over verschillende computerarchitecturen aanzienlijk wordt vereenvoudigd.”
“We hebben nauw samengewerkt met Intel bij het definiëren van oneAPI en het gebruiken van oneAPI voor onze eigen interne ontwikkeling en testen”, legt Hal Finkel uit, hoofd Compiler Technology and Programming Languages bij de Leadership Computing Facility van Argonne National Laboratory. “oneAPI biedt uitgebreide mogelijkheden, zoals ondersteuning van uniform geheugen en reducties, boven wat beschikbaar is in de huidige SYCL 1.2.1-specificatie, en deze mogelijkheden zijn essentieel voor ons. Onze ontwikkeling van een Kokkos-backend voor bijvoorbeeld DPC++/oneAPI is gebaseerd op deze extra functies. We kijken uit naar updates van de SYCL-specificatie, waarvan we vertrouwen dat deze belangrijke nieuwe functies van DPC++ zal bevatten die inspelen op specifieke behoeften die tijdens deze ontwikkelingsactiviteiten zijn vastgesteld.”
oneAPI: Industry Initiative en Intel Beta Product
oneAPI omvat zowel een industrie-initiatief op basis van open specificaties als een bètaproduct van Intel. De oneAPI-specificatie omvat een directe programmeertaal en domeinspecifieke bibliotheken. Het bevat ook tools voor migratie, analyse en foutopsporing die nodig zijn om de programmeerbaarheid in het XPU-tijdperk opnieuw te definiëren. Het biedt ook krachtige API's, een hardware-interface op laag niveau en meer, om te helpen bij het coderen voor een verscheidenheid aan gebruikersworkloads:
- Taal voor meerdere architectuur: oneAPI's Data Parallel C++ (DPC++) is een op standaarden gebaseerde, architectuuroverschrijdende taal die een evolutie is van ISO C++ voor productiviteit. Het bevat Khronos SYCL om gegevensparallellisme en heterogene programmering te ondersteunen. DPC++ ondersteunt ook OpenMP- en Python-extensies voor HPC-ontwikkelaars. Programmeurs kunnen vandaag ook de DPC++ open source compiler van Codeplay voor Nvidia GPU's gebruiken.
- Domeinspecifieke bibliotheken: Intel heeft een geschiedenis in het bouwen van toonaangevende bibliotheken met geoptimaliseerde CPU-prestaties. Met oneAPI verbreden we onze domeinspecifieke bibliotheken, nu in bèta, met ondersteuning voor meerdere architectuur en andere nieuwe mogelijkheden. Om er slechts een paar uit te werken: de oneAPI Math Kernel Library (oneMKL) biedt ontwikkelaars wiskundige routines om applicaties voor Intel CPU's en GPU's te optimaliseren. De oneAPI Deep Neural Network Library (oneDNN) biedt prestatie-geoptimaliseerde bouwstenen die helpen om deep learning-frameworks sneller te laten werken.
- Niveau nul (hardware-abstractie op laag niveau): Deze lage De laag voor latentieplanning en -beheer wordt door toolontwikkelaars en andere hardwareleveranciers gebruikt als een consistente cross-architecture runtime-laag. Intel heeft ook open source-projecten opgezet voor de meeste oneAPI-elementen om het voor anderen in de branche gemakkelijk te maken om oneAPI voor hun projecten te gebruiken.
Tools en compilers vereenvoudigen het overdrachtsproces
Daarnaast heeft Intel zijn referentie-implementatie van oneAPI gemaakt in een set toolkits, die algemene tools bieden die werken voor DPC++ (en andere talen).
- Code Migration-tool: Om het porteringsproces voor de CUDA-code van ontwikkelaars te vergemakkelijken, bieden we de Intel® DPC++ Compatibility Tool aan als onderdeel van de Intel® oneAPI Base Toolkit. De tool vereenvoudigt de migratie van bestaande code geschreven in CUDA naar DPC++. Gebruiksscenario's tot nu toe geven aan dat de tool ongeveer 80%-90% van de bestaande CUDA-code automatisch kan migreren. Zodra die migratie is voltooid, kan code worden uitgevoerd op door oneAPI ondersteunde hardware.
- Compilers: we wilden een compiler aanbieden om de code voor verschillende hardware-architecturen te optimaliseren en het voor ontwikkelaars gemakkelijker te maken om de code voor de Intel-portfolio te optimaliseren. De Intel® oneAPI DPC++ Compiler helpt bij het optimaliseren van code voor CPU-, GPU- en FPGA-architecturen.
- Geavanceerde analyse- en foutopsporingstools: Intel biedt ook tools zoals Intel® Advisor voor het modelleren van vectorisatie, threading, offload berekenen en daklijnanalyses uitvoeren; Intel® VTune™ Profiler voor systeem-, prestatie- en geheugenanalyse. Een voor Intel geoptimaliseerde GDB-debugger, HPC-clustertools en meer om ontwikkelaars te helpen applicaties te optimaliseren.
Je kunt meer lezen over de volledige breedte van de oneAPI-bètatoolset op de website van Intel.
Deze oneAPI-componenten illustreren Intels toewijding aan een “software first”-strategie voor heterogeen computergebruik. Door al deze complementaire elementen van oneAPI hebben ontwikkelaars extra middelen om hen te helpen innoveren, terwijl ze de tijd verkorten die nodig is om applicaties te coderen die zijn geoptimaliseerd voor meerdere architecturen.
Intel's oneAPI beta-toolkits zijn beschikbaar om te downloaden. Of we nodigen ontwikkelaars die hun applicaties en workloads willen testen uit om de Intel® DevCloud for oneAPI te bezoeken om gratis te experimenteren met verschillende Intel-architecturen, waaronder Intel®Xeon® Scalable-processors, Intel® Xeon-processors met Intel® Processor Graphics (GPU's) en FPGA's. Na een aanmeldingsproces van één minuut maakt Intel DevCloud voor oneAPI één regelcodewijziging mogelijk voor alle XPU-architecturen. DevCloud vereist geen installatie, configuratie of configuratie, extra hardware of downloads.
We waarderen alle feedback die we van ontwikkelaars hebben ontvangen sinds de aankondiging van oneAPI afgelopen november. We kijken uit naar meer input dit jaar en zullen doorgaan met het verfijnen van oneAPI-elementen om te voldoen aan de behoeften van ons ontwikkelaarsecosysteem.
In de komende weken zal ik de derde blog in deze serie plaatsen, waarin ik details bespreek van onze onlangs aangekondigde op Xe-architectuur gebaseerde GPU's. Ik zal ook ingaan op het brede scala aan Intel-technologieën die samenkomen om het eerste exaschaalsysteem van de VS mogelijk te maken in het Argonne National Laboratory.
Kennisgevingen en disclaimers
Software en workloads die worden gebruikt voor prestaties tests zijn mogelijk alleen geoptimaliseerd voor prestaties op Intel-microprocessors.
Prestatietests, zoals SYSmark en MobileMark, worden gemeten met behulp van specifieke computersystemen, componenten, software, bewerkingen en functies. Elke wijziging in een van deze factoren kan ertoe leiden dat de resultaten variëren. U dient andere informatie en prestatietests te raadplegen om u te helpen bij het volledig evalueren van uw overwogen aankopen, inclusief de prestaties van dat product in combinatie met andere producten. Ga voor meer volledige informatie naar www.intel.com/benchmarks.
Geen enkel product of onderdeel kan absoluut veilig zijn.
Uw kosten en resultaten kunnen variëren.
Intel-technologieën vereisen mogelijk ingeschakelde hardware, software of service-activering.
Intel's compilers kunnen al dan niet in dezelfde mate optimaliseren voor niet -Intel-microprocessors voor optimalisaties die niet uniek zijn voor Intel-microprocessors. Deze optimalisaties omvatten SSE2-, SSE3- en SSSE3-instructiesets en andere optimalisaties. Intel garandeert niet de beschikbaarheid, functionaliteit of effectiviteit van enige optimalisatie op microprocessors die niet door Intel zijn vervaardigd. Microprocessorafhankelijke optimalisaties in dit product zijn bedoeld voor gebruik met Intel-microprocessors. Bepaalde optimalisaties die niet specifiek zijn voor Intel-microarchitectuur, zijn gereserveerd voor Intel-microprocessors. Raadpleeg de toepasselijke gebruikers- en referentiehandleidingen van het product voor meer informatie over de specifieke instructiesets die onder deze kennisgeving vallen.
Patricia (Trish) A. Damkroger
Vice-president en algemeen directeur, High Performance Computing Organisatie, Data Platforms Group, Intel