Definition

Was ist CUDA?

| Autor / Redakteur: Stefan Luber / Nico Litzel

(Bild: © aga7ta - stock.adobe.com)

CUDA ist eine von NVIDIA entwickelte Technologie und Programmierschnittstelle, mit der sich die Rechenleistung von Grafikprozessoren (GPUs) für Anwendungen nutzen lässt. Aufgrund der hohen Rechenleistung und parallelen Arbeitsweise der GPUs sind bei bestimmten Anwendungen enorme Performancegewinne erzielbar.

Die Abkürzung CUDA steht für Compute Unified Device Architecture. Es handelt sich um eine Schnittstellentechnologie und Computing-Plattform, mit der sich Grafikprozessoren ansprechen und auch für nicht grafikspezifische Berechnungen nutzen lassen. CUDA wurde von NVIDIA entwickelt und beschleunigt Programme, indem neben der CPU bestimmte Programmteile von einer oder mehreren GPUs parallelisiert bearbeitet werden.

Im Vergleich zu einer CPU besteht eine GPU aus einer größeren Anzahl parallel nutzbarer Cores, die eine Vielzahl von Berechnungen gleichzeitig ausführen können. Die Compute Unified Device Architecture ist mit Programmiersprachen wie Python, Fortran, C, C++ oder mit Software wie MATLAB nutzbar. CUDA besteht aus Bibliotheken, Entwicklungstools, Runtime-Umgebung und Compiler. Unterstützt wird die CUDA-Technologie von NVIDIA-GPUs aus verschiedenen Serien wie Tesla, GeForce, Quadro und anderen.

Im Gegensatz zu APIs wie DirectX und OpenGL ist CUDA nicht auf reine Multimediaanwendungen spezialisiert, sondern lässt sich für Applikationen unterschiedlichster Art verwenden. Veröffentlicht wurde CUDA erstmals im Jahr 2007. Die aktuelle Version ist 10.1 (Stand 2019) und ist für Betriebssysteme wie Linux, Windows oder macOS erhältlich. Das komplette CUDA-Toolkit kann direkt von den NVIDIA-Seiten heruntergeladen werden.

CUDA, Grafikprozessoren und die parallele Bearbeitung von Rechenaufgaben

Die Architektur einer CPU ist auf generelle Programmanforderungen ausgelegt und muss eine Vielzahl Befehle und Datentypen unterstützen. Neben einer geringen Anzahl von Kernen (Cores) nehmen Cache und Controller größere Teile der Architektur der CPU in Anspruch. Eine GPU hingegen ist auf Grafikberechnungen spezialisiert und arbeitet mit relativ wenigen Befehlen und vielen Cores. Dies ist darauf zurückzuführen, dass GPUs hauptsächlich für Pixelberechnungen konzipiert wurden. Die Architektur erlaubt es, viele einfache Befehle gleichzeitig an die Cores zu übertragen und parallel abzuarbeiten. Cache und Controller sind wesentlich einfacher aufgebaut und kleiner.

Liegt die Anzahl an Cores einer CPU im Bereich zwischen zwei und acht, haben moderne Grafikprozessoren teilweise bis zu mehrere tausend Cores. Eine GPU lässt sich mit CUDA nicht nur für Grafikberechnungen verwenden. Sie eignet sich für alle Anwendungen, die mit vielen parallelen Prozessen und gleichzeitigen Berechnungen arbeiten. CUDA und GPUs sind daher überall dort effizient einsetzbar, wo in Programmen viele Berechnungen parallel ablaufen müssen. Dies ist beispielsweise bei wissenschaftlichen Anwendungen oder bei Berechnungen im Umfeld der Künstlichen Intelligenz (KI) der Fall.

CUDA, OpenGL und DirectX

Auch OpenGL (Open Graphics Library) oder DirectX von Microsoft ermöglichen die Interaktion von Anwendungscode mit einer GPU. Allerdings sind OpenGL oder DirectX speziell auf die von Multimediaanwendungen benötigten Prozesse und Berechnungen ausgelegt. Will man die Rechenleistung eines Grafikprozessors für nicht grafikspezifischen Programmcode nutzen, ist eine Umsetzung der Berechnungen auf grafische Operatoren notwendig. Diese Umsetzung sorgt für eine zusätzliche Komplexität und schränkt die Funktionalität ein.

CUDA bietet ein vollständiges Programmiermodell, das die Unzulänglichkeiten von OpenGL und DirectX in diesem Bereich überwindet. Anwendungen, die nicht auf grafische Operationen spezialisiert sind, können dank des Programmiermodells CUDA GPUs einfach und effizient ansprechen. Der Entwickler erhält einen direkten, standardisierten Zugriff auf den Befehlssatz und den Speicher einer GPU.

Vorteile durch den Einsatz von CUDA

Der Einsatz von CUDA bietet unter anderem folgende Vorteile:

  • optimale Ausnutzung der Ressourcen eines Rechners durch die Verwendung der GPU und CPU für den Programmcode
  • hoher Performancegewinn bei parallelisierten Berechnungen aufgrund der besonderen Architektur der GPUs mit ihren vielen Cores
  • keine Notwendigkeit der Entwicklung und Bereitstellung spezieller Hardware für mehr Rechenleistung, sondern Nutzung der vorhandenen GPU
  • definierte Schnittstelle zur Nutzung der GPU-Rechenleistung
  • einsetzbar mit vielen NVIDIA-GPUs
  • kompatibel mit zahlreichen Programmiersprachen und Betriebssystemen

Anwendungsbereiche von CUDA

Obwohl es sich bei CUDA um eine herstellerspezifische Entwicklung von NVIDIA handelt, hat sich das Computing-Modell in vielen Bereichen etabliert. Die Compute Unified Device Architecture kommt im wissenschaftlichen und kommerziellen Bereich in vielen Anwendungen zum Einsatz. Unter anderem profitieren Anwendungen im Umfeld der Künstlichen Intelligenz, neuronaler Netze und des Machine Learnings von der hohen Rechenleistung der Grafikprozessoren. So nutzen beispielsweise das Finanzwesen, die Energiewirtschaft und die Seismologie oder Geologie CUDA für diverse Anwendungen und Modellrechnungen.

Eine sehr bekannte Anwendung von CUDA ist das Projekt SETI@home der Universität Berkeley, das nach außerirdischem intelligentem Leben sucht. Ein weiterer wichtiger Einsatzbereich von CUDA ist die Video- und Bildbearbeitung. So nutzt die Medizin CUDA beispielsweise für die CT-Bildrekonstruktionen.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Schenker stellt Systeme für lokales KI-Training vor

AI Station und AI Laptop

Schenker stellt Systeme für lokales KI-Training vor

Mit den neuen AI-Station- und AI-Laptop-Produktlinien bietet Hardware-Hersteller Schenker Systeme an, die auf das lokale Training von KIs spezialisiert sind. Sie basieren auf Ubuntu und bringen eine Vielzahl nötiger KI-Programmbibliotheken gleich mit. lesen

Weltweit erster KI-Computer für die Bahnindustrie

KI-Railway-Computer

Weltweit erster KI-Computer für die Bahnindustrie

Der, so Syslogic, „weltweit erste KI Railway Computer“ eignet sich für KI- und Deep-Learning-Anwendungen wie die Unterstützung von teilautonomem Fahren, Predictive Maintenance oder Condition Based Monitoring. lesen

SAS und Nvidia starten Partnerschaft

Für Deep Learning und Computer Vision

SAS und Nvidia starten Partnerschaft

Der Analytics-Anbieter SAS hat eine strategische Zusammenarbeit mit Nvidia gestartet. Die Partner wollen im Zuge der Kooperation Unternehmenskunden bei der Integration von Künstlicher Intelligenz (KI) in Geschäftsprozesse unterstützen. lesen

Das sind die IoT-Highlights auf der Embedded World 2019

Produkt-Bildergalerie

Das sind die IoT-Highlights auf der Embedded World 2019

Produkte und Lösungen rund um das Internet der Dinge stehen im Fokus, wenn sich die Embedded-Branche Ende Februar in Nürnberg trifft. Wir stellen einige Highlights vor. lesen

Das kann das Deep Learning Framework Torch

Deep Learning

Das kann das Deep Learning Framework Torch

Torch ist ein wissenschaftliches Deep Learning Framework mit beachtlichem Support an Algorithmen für das maschinelle Lernen. Auf Grund der einfachen Skriptsprache Lua und der C/CUDA-Implementierung ist das Open-Source-Paket sehr anwenderfreundlich und sorgt für beschleunigte Prozesse. lesen

So schnell ist das Deep Learning Framework Caffe

Künstliche Intelligenz

So schnell ist das Deep Learning Framework Caffe

Das Deep Learning Framework Caffe ist auf Modularität, Skalierbarkeit und Schnelligkeit ausgelegt. Dadurch lassen sich unter anderem Modelle für Künstliche Intelligenz innerhalb nur weniger Stunden anstatt mehrerer Tage trainieren. lesen

Neue Tools für Deep Learning und autonomes Fahren

MathWorks MATLAB und Simulink

Neue Tools für Deep Learning und autonomes Fahren

MathWorks stellt Release 2018a (R2018a) mit einer Reihe neuer Funktionen in MATLAB und Simulink vor. Darunter fallen u.a. die Predictive Maintenance Toolbox zum Entwerfen und Testen von Algorithmen für die Zustandsüberwachung und Predictive Maintenance und das Vehicle Dynamics Blockset für die Modellierung und Simulation von Fahrzeugdynamik in einer virtuellen 3D-Umgebung. lesen

So funktioniert verteiltes Lernen mit TensorFlow

Erste Schritte

So funktioniert verteiltes Lernen mit TensorFlow

Das quelloffene TensorFlow von Google gehört mittlerweile zu den angesagtesten Frameworks für die Programmierung Neuronaler Netze, Deep-Learning-Modelle sowie andere Machine-Learning-Algorithmen. Wie gelingt der Einstieg mit TensorFlow und was leistet die jüngste Version 1.5? lesen

Die Power9-CPU von IBM ist ein weiterer KI- Meilenstein

Vier Mal höhere Deep-Learning-Rechenleistung

Die Power9-CPU von IBM ist ein weiterer KI- Meilenstein

IBM hat den neuen „IBM Power Systems Server“ mit seinem ebenfalls neu designten „Power9“-Prozessor speziell für rechenintensive KI-Workloads entwickelt. Mit ihm können die Trainingszeiten im Bereich Deep Learning um das bis zu Vierfache beschleunigt werden. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 46053380 / Definitionen)