CUDA Supercomputing

CUDA steht für Compute Unified Device Architecture und beschreibt sowohl eine bestimmte GPU-Architektur, als auch die dazu passende Entwicklungsumgebung für Softwareentwickler, um Programmcode für NVIDIA GPUs zu generieren.
Hierzu gehören drei wichtige Komponenten:
  • die CUDA-Driver-API (auch „Low-Level-API“ genannt)
  • das CUDA-Toolkit (die eigentliche Entwicklungsumgebung inklusive der Runtime-Libraries)
  • ein CUDA SDK mit Codebeispielen.

Das CUDA-Toolkit ist im wesentlichen eine Entwicklungsumgebung und umfasst neben dem eigentlichen Compiler (nvcc), einer Anpassung des PathScale C-Compilers, und hochoptimierten FFT- und BLAS-Bibliotheken auch einen Profiler, einen Debugger (gdb), Shared Libraries für die Laufzeitumgebung für CUDA Programme (die „Runtime-API“) und eine umfangreiche Dokumentation samt Entwicklerhandbuch. Das CUDA SDK umfasst Beispiele mit Quellcode zur Matrizenberechnung, Pseudozufallszahlengeneratoren, Bildfaltung, Wavelet-Berechnungen und vieles mehr.

CUDA läuft auf allen NVIDIA GPUs ab der G8Xserie aufwärts, inklusive der GeForce, Quadro und der Tesla-Reihe und ermöglicht Programmierern den Zugang zu der Leistungsfähigkeit der massiv-parallelen Berechnungselemente in den GPUs. GPUs haben, im Unterschied zu CPUs sprich Prozessoren, eine „Many-Core-Architektur“, was zum zu Ausdruck bringen soll, dass der Grad der Parallelisierung um bis zu 2 Größenordnungen über dem bei herkömmlichen CPUs liegt. Darüberhinaus besitzt eine GPU einen eigenen Speicher, der mit sehr hoher Bandbreite von den Ausführungseinheiten der einzelnen Cores angesprochen werden kann.

Wird die komplette GPU-Architektur in ein externes System ausgelagert, ist hierfür ein Gateway-System als Hauptrechner vonnöten, an das über extern geführte PCIExpress- Verbindungen die GPU-Systeme angeschlossen werden.
NVIDIA Tesla Table

  Thread Processor

Downloads

www.transtec.at » Lösungen » High Performance Computing » NVIDIA GPU Computing » CUDA