Praxis

oneAPI in der Praxis

Gekonntes Zusammenspiel von HPC und AI im Alltag der Software-Entwickler

von Harald Odendahl
 

 
Aus Parallel Studio XE wird oneAPI Toolkit: Software-Entwickler können ab Dezember 2020 auf die neue Generation der Programmier-Tools von Intel zugreifen. Die klassischen Intel-Tools sowie der professionelle Kunden-Support bleiben erhalten. Der Praxiseinsatz wird jedoch mächtig erweitert.

Mit oneAPI bekräftigt Intel seinen Umschwung zu einer „Software First“-Strategie, um die Herausforderungen und Bedürfnisse der Programmierer bei der Entwicklung hochperformanter wissenschaftlicher und technischer Applikationen sowie KI-Anwendungen zu priorisieren. Das Design neuer Architekturen und Komponenten wie CPUs oder GPUs soll nun gleichzeitig und im Einklang mit den Innovationen bei Programmiermodellen und Entwicklertools erfolgen.

So kündigte Intel auf der (virtuellen) Konferenz SuperComputing 2020 an, dass das von Native-Code-Entwicklern geschätzte und intensiv genutzte Intel Parallel Studio XE Toolkit ab Anfang 2021 von den neuen Toolkits der Produktfamilie oneAPI abgelöst werden wird. Intel will auf diesem Weg auch seinen Entwicklerkreis erweitern und bietet deshalb eine Reihe separater Toolkits für verschiedene Anwendungsgebiete.

Historisch gesehen sind die klassischen Intel-Entwicklertools die Compiler für C/C++ sowie Fortran, die Analyse-Tools für Code-Optimierung sowie die bestbewährten Bibliotheken, wie zum Beispiel MKL oder IPP. Alle Komponenten werden in den neuen Toolkits vollständig übernommen. Die Leistungen für professionelle Nutzer, wie direkter Support von Intel-Ingenieuren und die Softwarewartung, bleiben bei weitgehend gleicher Preisstruktur erhalten.

Erweiterte Tool-Palette für neue Nutzerkreise

Im Packaging wird es jedoch eine Reihe von Änderungen geben. Zunächst führt Intel ein sogenanntes „oneAPI Base Toolkit“ ein, das einerseits die wesentlichen Komponenten für die architekturübergreifende Entwicklung zur Verfügung stellt und andererseits als Grundlage für weitere Toolkits dient.

So enthält das Base Toolkit den neuen Compiler für DPC++ (Data Parallel C++), Intels Python-Distribution inklusive optimierter Bibliotheken für Machine Learning (scikit-learn, NumPy und SciPy), die Analyse-Tools VTune und Advisor sowie eine Reihe optimierter APIs (Bibliotheken) für diverse Anwendungsgebiete: Mathematik, Datenanalytik, Deep Learning, Multimedia und Parallelisierung.

Weitere fünf anwendungsorientierte Toolkits reihen sich dem Base Toolkit nach:

  1. HPC Toolkit für technisch-wissenschaftliche Anwendungen (High-Performance-Computing).
  2. IoT Toolkit für Anwendungen des „Internet of Things“, die auf Netzwerk-Geräten laufen.
  3. Rendering Toolkit für die Visualisierung, z. B. fotorealistisches Rendering oder Raytracing. Hierfür verwendet Intel die eigenen Bibliotheken Embree und OSPRay.
  4. AI Analytics Toolkit für Modellentwicklung und Training.
  5. OpenVINO für Inferencing.

Toolkits für AI-Entwickler

Für Programmierer im AI-Umfeld und Data Scientists, die Anwendungen in den Bereichen Deep Learning, klassisches Machine Learning oder Data Analytics entwickeln, bringt Intel zwei spezielle Toolkits, jeweils „powered by oneAPI“. 

Für die reine Modellentwicklung, das Zusammenstellen von Data-Science-Pipelines und das Trainieren von Modellen steht das AI Analytics Toolkit zur Verfügung. Anders als bei den übrigen Toolkits dient hier Python als Standard-Programmiersprache – und zwar im Zusammenspiel mit diversen Modellen, die jeweils für Intel-CPUs und zukünftige Intel-GPUs optimiert wurden.

OpenVINO für AI-Inferencing

Integraler Bestandteil der neuen oneAPI-Toolkits ist auch das altbekannte Toolkit OpenVINO, das jetzt ebenfalls den Zusatz „powered by oneAPI“ erhalten hat. OpenVINO, kurz für „Open Visual Inference and Neural network Optimization“, vereinfacht die Optimierung von AI-Modellen und die Implementierung von AI-Inferenz-Anwendungen auf Intel-Prozessoren und GPUs, insbesondere für Bildverarbeitung, Spracherkennung, Natural Language Processing und Empfehlungssysteme. Mit dem sogenannten „Modell-Zoo“ liegen bereits jetzt im Paket knapp 100 vortrainierte Neuronale Netzwerke gebrauchsfertig für die Anwendung bereit.

Neben einer Open-Source-Version, offen für Erweiterungen von Dritten, bietet Intel auch das hauseigene Toolkit für OpenVINO mit zusätzlicher Unterstützung spezieller Hardware-Komponenten (z. B. FPGAs oder  der Movidius Neural Compute Stick) sowie mit optimierten Bibliotheken wie OpenCV und OpenVX an.

HPC Toolkit – Kronjuwel unter den Entwickler-Tools

Entwickler anspruchsvoller Anwendungen in Wissenschaft und Technik werden seit über zwanzig Jahren mit den Intel-Compilern und den dazugehörigen, teilweise in Assembler optimierten Bibliotheken verwöhnt. Neben C und C++ wird auch Fortran wegen der großen Verbreitung auf dem Markt weiter im Angebot bleiben. Die Tools haben sich als Komponenten des Toolkits „Parallel Studio XE“ für die maximale „Ausbeutung“ der Performance von Hochleistungsrechnern, Rechnerclustern und Workstations auf CPU-Basis bewährt – und zwar sowohl für Linux als auch für Windows und OS-X.

Außer den klassischen Tools für x86-Server-CPUs will Intel jetzt für die immer heterogener werdende Prozessor-Landschaft auch die neue Programmiersprache DPC++ durchsetzen, die auf C++ und SYCL basiert und mit entsprechend optimierten Multi-Plattform-APIs im HPC-Bereich arbeitet.

Daher wird das HPC Toolkit nur zusammen mit dem Base Toolkit ausgeliefert. Offiziell heißt das Paket „Intel oneAPI Base & HPC Toolkit“, ein langer Name, der wahrscheinlich die Fülle an Komponenten versinnbildlichen soll: Über 20 verschiedene Tools und APIs sind im Paket integriert.

Für detailliertere Informationen zu DPC++ sei auf das neue Buch „Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL“ verwiesen. Einer der Autoren ist übrigens James Reinders, eine etablierte Größe im Bereich des parallelen Programmierens und Autor in diesem Trendletter (siehe [Link]). Das Buch ist übrigens frei zum Download.

Für HPC-Programmierer und Wissenschaftler, die bereits das Parallel Studio XE zur parallelen Programmierung von HPC-Systemen und -Clustern nutzen, ändert sich zunächst mal nichts: Die klassischen Compiler sowie OpenMP und MPI bleiben im vollen Umfang erhalten. Ein einziger Unterschied wird bei der Nutzung von Cluster-Systemen eingeführt, die nun „Multi-Node“ heißen.

Nutzer von Parallel Studio XE mit kommerzieller Lizenz und gültigem Wartungsvertrag können ab Dezember 2020 sofort auf oneAPI Toolkits umsteigen. Für „neue“ professionelle Entwickler werden dann auch die entsprechenden Toolkits mit Support zur Verfügung stehen. Dass nun Linux und Windows nicht mehr separat, sondern zum unveränderten Preis im Paket angeboten werden, ist sicherlich ein weiterer Bonus.

Literatur & Links

Data Parallel C++, Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL, Authors: Reinders, J., Ashbaugh, B., Brodman, J., Kinsner, M., Pennycook, J., Tian, X.

https://www.apress.com/gp/book/9781484255735

http://oneapi.hocomputer.de


Harald Odendahl

ist Geschäftsführer der Kölner h.o.-Computer Software GmbH. Als Gründer eines der größten Intel Software Elite Resellers in Europa beschäftigt er sich seit über 20 Jahren mit den Compilern & Tools von Intel – und weiß, wie man die Vorteile aktueller und zukünftiger Intel-Prozessoren am besten ausnutzen kann.

Bildnachweise

Intel