Nvidia: CUDA 8 bringt Optimierungen fĂĽr die Pascal-Architektur
Zur Unterstützung für die neue Pascal-GP100-GPU bringt Nvidias Plattform für parallele Programmabläufe unter anderem ein vereinheitlichtes Speichermodell.
Nvidia hat in einem Blog-Beitrag einige Funktionen der kommenden Version 8 ihrer Plattform fĂĽr parallele Berechnungen CUDA (Compute Unified Device Architecture) vorgestellt. Ein zentraler Punkt ist die UnterstĂĽtzung der Pascal-Architektur, die nichts mit der Programmiersprache zu tun hat, sondern der Name von Nvidas jĂĽngster GPU-Generation ist. Nvidia hatte auf der GTC 2016 unter anderem den auf HPC ausgerichteten Tesla P100 gezeigt, der auf der Pascal-GP100-GPU basiert.
Mehr gemeinsamer Speicher
Die GP100 erweitert die Möglichkeiten der Speicheradressierung im Vergleich zur Maxwell-Architektur und kann daher nicht nur den GPU-, sondern auch den CPU-Speicher ansprechen. Daher ist der von CPU und GPU gemeinsam genutzte Unified Memory, der seit Version 6 Bestandteil von CUDA ist, in Version 8 nicht mehr auf den GPU-Speicher beschränkt.
Eine weitere Neuerung ist nvGRAPH, eine Bibliothek für die Graphen-Analyse. Als Anwendungsbeispiele nennt der Blog-Beitrag die Analyse von sozialen Netzen, Genomen und Cyber-Security im Netzwerk. Die Bibliothek enthält in CUDA 8 einige Algorithmen, deren Berechnung die GPU-Beschleunigung nutzt, und soll in der Zukunft weiter ausgebaut werden. Zum Start gibt es unter anderem nvRank mit Algorithmen wie Single-Source Shortest Path zur Optimierung von Strecken, die beispielsweise für autonome Autos genutzt werden kann. Analog sucht Single-Source Widest Path in Netzwerken nach den Wegen mit der besten Bandbreite.
Optimierungen und C++11
Der NVCC-Compiler in CUDA 8 soll in günstigen Fällen gut doppelt so schnell übersetzen wie bisher. Das gilt wohl vor allem beim Einsatz von C++-Templates wie Thrust. Die Lambda-Ausdrücke aus C++11 haben bereits in CUDA 7 Einzug in die Syntax gehalten. In CUDA 8 dürfen Entwickler erstmals mit __host__ __device__ heterogene Lambdas definieren, die entweder auf der GPU oder der CPU ausgeführt werden.
Mehr Details zu den Neuerungen finden sich im Blog-Beitrag, der die Veröffentlichung von CUDA 8 für den August ankündigt. (rme)