Mathematica Ausführlich – Mathematica und Cuda

Mathematica und Cuda

Über das integrierte CUDALink Paket liefert Mathematica Unterstützung für die Grafikprozessorprogrammierung für grafikprozessorbeschleunigte lineare Algebra, diskrete Fourier-Transformationen und Bildverarbeitungsalgorithmen. Bei Bedarf können Sie CUDALink Module auch ganz einfach selbst schreiben.

Das CUDALink Paket von Mathematica liefert folgende Funktionen ganz ohne zusätzliche Kosten:

  • Zugriff auf die automatischen Interface-Builder, Import/Export-Funktionen und Visualisierungsfunktionen von Mathematica
  • Zugriff auf die betreuten Mathematica Datenbanken
  • Unterstützung für Arithmetik mit einfacher und doppelter Genauigkeit
  • Möglichkeit, benutzerdefinierte CUDA Programme in Mathematica zu laden
  • Skalierbarkeit für mehrere Geräte
  • Integration mit existierenden Mathematica Technologien wie Remote Sessions

Mehr Infos zu High Performance Computing mit Wolfram Mathematica.

Weitere Ressourcen:

Einleitung

Die "Common Unified Device Architecture" (CUDA) wurde im Jahre 2007 von NVIDIA entwickelt. Auch wenn es die Programmierung der GPU schon seit Jahren gibt, haben Hardwarerestriktionen das Schreiben von Software für die Grafikkarte nicht leicht gemacht. Eine Aufgabe von CUDALink von Mathematica ist es, das Programmieren und die Portierung der eigenen Software zu vereinfachen. Wenn man Mathematica benutzt, muss man sich keine Gedanken über die vielen Hürden machen. Somit bleibt das Hauptaugenmerk auf dem Schreiben der CUDA Kernel. Das wird durch durch Nutzen aller NVIDIA Architektur Stacks bewerkstelligt.

Architektur

Hier der schematische Aufbau der CUDA Architektur.

Grid und Blocks

CUDA-Programmierung basiert auf dem Daten-Parallelisierungs-Modell. Berechnungen werden auf viele hundert - wenn nicht gar tausend Threads geteilt. Wenn Folgendes Ihre Berechnung wäre:

OutputData = Table[fun[InputData[[i, j]]],

Der erste Kernel

CUDA Kernel sind atomare Funktionen, die die Berechnung auf jedes Element einer Eingabeliste durchführen. Unser erster Kernel wird 2 Elemente miteinander addieren.

__global__ void addTwo_kernel(int * arry, int len)

Kernel in Mathematica laden

Sollten Sie den CUDALink noch nicht geladen haben, holen Sie dies bitte jetzt nach.

Needs["CUDALink`"]

Nun speichern wir den erstellten Code in einen string.

secondKernelCode = "
__device__ float f(float x)

Systemanforderung

Zur Verwendung von Mathematica's CUDALink ist erforderlich:
  • Betriebssystem: Windows, Linux oder Mac OS X, 32-Bit oder 64-Bit Architektur
  • NVIDIA CUDA-fähige Produkte
  • Mathematica 8.0 oder besser

Die leistungsfähigen GPU Computing Funktionen von Mathematica wurden auf Tesla und Quadro GPU Computing Produkten entwickelt und erfordern aktuelle CUDA-fähige NVIDIA Grafikprozessoren.

Tesla und Quadro GPU Computing Produkte werden speziell für maximale Rechenleistung und höchste numerische Präzision entwickelt und werden von führenden Herstellern professioneller Systeme angeboten und unterstützt.

Empfohlene Konfigurationen

Highend Workstation

  • Zwei Tesla C2050 oder C2070 Grafikprozessoren
  • Quadro NVS 295
  • zwei Quad-Core CPUs
  • 12 GB Systemspeicher
tesla-badge
Mid-Range Workstation
  • Tesla C2050 oder C2070 Grafikprozessor
  • Quad-core CPU
  • 8 GB Systemspeicher
tesla-badge
Einstiegs-Workstation
  • Quadro 4000 Grafikprozessor
  • Quad-Core CPU
  • 4 GB Systemspeicher
quadro-badge

© ADDITIVE GmbH. Alle Rechte, Irrtümer und Änderungen vorbehalten.

Impressum  /  Datenschutz  /  AGB