Nvidia stellt seine C++-Standard-Bibliothek unter Open-Source-Lizenz

Der bislang nur in Nvidias CUDA-Plattform zu findende Fork der C++-Standardbibliothek des LLVM-Projekts ist nun auf GitHub zu finden.

In Pocket speichern vorlesen Druckansicht 14 Kommentare lesen
Nvidia stellt seine C++-Standard-Bibliothek unter Open-Source-Lizenz

(Bild: Connect world/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Alexander Neumann

Nvidia hat seine bislang nur in CUDA enthaltene C++-Standard-Bibliothek als Open Source freigegeben. libcu++ war im vergangenen Jahr mit Version 10.2 von CUDA vorgestellt worden. Letzteres ist sowohl Programmiermodell und als auch Softwareplattform für die Parallelprogrammierung und hier insbesondere für die Grafikkarten von Nvida.

Bei libcu++ handelt es sich um einen Fork der libc++-Standard-Bibliothek des LLVM-Projekts. Es mag sein, dass es sich durch die Open-Source-Legung um einen ersten Schritt handelt, die libc++-Implementierung an das LLVM-Projekt zurückzugeben. libcu++ bietet eine heterogene Implementierung der C++-Standardbibliothek, die sich in und zwischen CPU- und GPU-Code verwenden lässt. Die Library ist nun auf GitHub unter der Apache License 2.0 mit LLVM Exceptions verfügbar, aber auch weiterhin in Nvidias HPC SDK und CUDA Toolkit enthalten. Es werden offenbar keine zusätzlichen Installations- oder Compiler-Flags benötigt, CUDA-Entwickler sollten mit der Arbeitsweise der Bibliothek vertraut sein.

Die Entwickler der neuen Open-Source-Bibliothek gewährleisten offenbar keine langfristige ABI-Stabilität (Application Binary Interface). Bei jeder größeren Veröffentlichung des CUDA Toolkit wird die ABI wohl gebrochen werden. Der Lebenszyklus einer ABI-Version beträgt etwa ein Jahr, ein langfristiger Support für eine ABI-Version endet nach etwa zwei Jahren. Deswegen empfehlen die Entwickler, Code und Abhängigkeiten immer mit den neuesten SDKs von Nvdia neu zu kompilieren und die neueste ABI der C++ Standard Library zu verwenden.

Weitere Informationen finden sich auf der GitHub-Seite des Projekts.

(ane)