AMD veröffentlicht Windows- und Linux-Compiler für C++ AMP Version 1.2

2011 kündigte Herb Sutter, Microsoft Principal Architect, auf AMDs Entwicklerkonferenz AFDS (AMD Fusion Developer Summit, inzwischen in APU umbenannt) an, dass über die Programmiersprache C++ künftig auch GPUs programmiert werden können sollen (damalige News). Bisher standen hierfür nur C++-ähnliche Lösungen wie beispielsweise OpenCL C oder CUDA C++ zur Verfügung. Durch die Bereitstellung der Bibliothek C++ Accelerated Massive Parallelism (C++ AMP) in Visual Studio hofft Microsoft die Programmierung von parallelen Anwendungen, die auf GPUs ausgeführt werden sollen, stark zu vereinfachen und einer wesentlich größeren Entwicklergruppe zugänglich zu machen. Schon damals versprach Herb Sutter, dass die Spezifikation von C++ AMP offengelegt werde, sodass andere Unternehmen ihre eigene Implementierung realisieren können. Zwei Jahre später verkündete AMD auf der APU13, an einem Linux-Compiler für C++ AMP zu arbeiten.
Die Veröffentlichung einer ersten Version sowohl für Windows als auch Linux, die sich zunächst speziell an interessierte Entwickler richtet, hat AMD heute bekanntgegeben. Mit dem Open-Source-Compiler wird die Version 1.2 des C++-AMP-Standards umgesetzt. Als Basis dienen das Compiler-Frontend für die diversen C‑Programmiersprachen Clang und die Compilerinfrastruktur von LLVM. In C++ AMP geschriebene Programme können darüber in drei verschiedene Ausgabeformate übersetzt werden. Hierzu gehören die von der Khronos Group verwalteten Standards OpenCL und der herstellerunabhängige Zwischencode SPIR, was beides nicht nur von AMD, sondern auch von Apple, Intel und NVIDIA unterstützt wird. Zusätzlich kann als drittes Ausgabeformat der Zwischencode HSAIL verwendet werden, welcher von der HSA Foundation spezifiziert wird. Letzteres kann aktuell nur von AMDs “Kaveri”-APUs verwendet werden, welche über die notwendigen Hardwarevoraussetzungen verfügen. Allerdings ist der ebenfalls notwendige HSA-Softwarestack noch nicht verfügbar.
“AMD has a consistent track record of enriching the developer experience, and we’re proud to make the first open source implementation of C++ AMP available to enable greater performance and more power-efficient applications. The cross-platform release is another step in strengthening AMD’s developer solutions, allowing for increased productivity and accelerated applications through shared physical memory across the CPU and GPU on both Linux and Windows.” — Manju Hegde, Corporate Vice President, Heterogeneous Applications and Solutions, AMD
Auch Microsoft zeigt sich erfreut über die Veröffentlichung des ersten Linux-Compilers für C++ AMP. In welcher Form die ebenfalls aufgeführte Zusammenarbeit mit AMD bei der Umsetzung stattgefunden hat, ist jedoch unklar.
“AMD continues to deliver excellent developer tools for heterogeneous programming. Partnering with AMD to deliver C++ AMP to the Linux and Open Source communities was a natural step for Microsoft as we work to improve the performance and developer experience on modern computing platforms.” — S. Somasegar, Corporate Vice President of the Developer Division at Microsoft.
Der Source Code des C++-AMP-Compilers kann hier eingesehen werden.
Quelle: Pressemitteilung
Links zum Thema:
- AMD kündigt neue FirePro-Grafikkarten der W‑Serie für Profimarkt an ()
- Kaveris HSA-Features: AMD nennt Zeitplan für Unterstützung in Treibern und Tools ()
- PGI-Compiler-Sammlung mit Unterstützung für OpenACC 2.0 und AMD GPUs veröffentlicht ()
- LibreOffice 4.2 mit OpenCL-Unterstützung wurde veröffentlicht ()
- AMD präsentiert mit Kaveri die erste APU mit den HSA-Merkmalen hQ und hUMA ()
- APU13: HSA-Software-Stack frühestens ab zweitem Quartal 2014 für AMDs Kaveri APU verfügbar ()
- APU13: AMD baut Software-Ökosystem für Opteron-Zukunft mit APUs auf ()