9 Repos
Libraries for accelerating computation using GPUs and multi-core processors.
Explore 9 awesome GitHub repositories matching part of an awesome list · Parallel and High-Performance Computing. Refine with filters or upvote what's useful.
Dask ist ein Framework für paralleles Rechnen und ein verteilter Task-Scheduler, der darauf ausgelegt ist, Python-Data-Science-Workflows von einzelnen Maschinen auf große Cluster zu skalieren. Es fungiert als Cluster-Ressourcenmanager, der die Berechnungslogik orchestriert, indem Aufgaben und deren Abhängigkeiten als gerichtete azyklische Graphen dargestellt werden. Diese Architektur ermöglicht es dem System, die Verteilung von Workloads auf verfügbare Hardware zu automatisieren und gleichzeitig komplexe Ausführungsanforderungen zu verwalten. Das Projekt zeichnet sich durch eine Lazy-Evaluation-Engine aus, die Datenoperationen verzögert, bis sie explizit angefordert werden, was eine globale Graphoptimierung und effiziente Ressourcenzuweisung ermöglicht. Es integriert speicherbewusstes Data-Spilling, um Systemabstürze bei der Verarbeitung von Datensätzen zu verhindern, die den verfügbaren Speicher überschreiten, und nutzt Task-Graph-Fusion, um Sequenzen von Operationen in einzelne Ausführungsschritte zu kombinieren, wodurch Scheduling-Overhead und Inter-Node-Kommunikation minimiert werden. Die Plattform bietet eine umfassende Oberfläche für die Datenanalyse im großen Maßstab, einschließlich Unterstützung für verteiltes maschinelles Lernen, Integration in das Hochleistungsrechnen und parallele Datenverarbeitung. Sie bietet umfangreiche Werkzeuge für das Cluster-Lebenszyklusmanagement, Performance-Profiling und die Echtzeitüberwachung der Aufgabenausführung. Benutzer können diese Umgebungen über verschiedene Infrastrukturen hinweg bereitstellen, einschließlich lokaler Hardware, Cloud-Anbietern, containerisierten Systemen und Hochleistungsrechner-Clustern.
Parallel computing and task scheduling for Python.
TensorRT ist eine Deep-Learning-Inferenz-Engine und ein Software Development Kit zur Optimierung und Bereitstellung neuronaler Netze für die Hochleistungsausführung auf NVIDIA GPUs. Es fungiert als GPU-Beschleunigungs-Framework, das Latenzzeiten reduziert und den Durchsatz für trainierte Modelle während der Produktion erhöht. Das Toolkit importiert Modelle aus dem Open Neural Network Exchange Format und transformiert diese in optimierte Engines. Es nutzt graphbasierte Modelloptimierung, Layer-Fusion-Kernel-Generierung und präzisionsbasierte Quantisierung, um Fließkomma-Gewichte in Formate mit geringerer Präzision zu konvertieren. Das Framework bietet Funktionen für die hardware-spezifische Engine-Serialisierung und unterstützt die Erweiterung der Inferenzfähigkeiten durch benutzerdefinierte Plugins für spezialisierte Schichten neuronaler Netze.
High-performance inference library for NVIDIA GPUs.
CuPy ist eine CUDA-Array-Computing-Bibliothek, die eine NumPy-kompatible Schnittstelle für die Ausführung von Array-Operationen und numerischen Berechnungen auf NVIDIA GPUs implementiert. Sie dient als GPU-beschleunigte numerische Bibliothek und CUDA-basierte SciPy-Implementierung, die rechenintensive Aufgaben auf Grafikhardware auslagert, um die Verarbeitungsgeschwindigkeit für wissenschaftliche und technische Workloads zu erhöhen. Die Bibliothek ermöglicht den Austausch von Tensoren zwischen verschiedenen Frameworks, wodurch Datenpuffer zwischen verschiedenen Deep-Learning-Frameworks unter Verwendung standardisierter Speicherlayouts geteilt werden können, um Speicherkopien zu vermeiden. Sie unterstützt zudem die Integration benutzerdefinierter GPU-Kernel, wodurch Array-Daten mit Low-Level-APIs verbunden werden können, um eine präzise Kontrolle über die Hardwareausführung zu ermöglichen. Das Projekt deckt im Wesentlichen Workflows für Array-Verarbeitung und wissenschaftliches Rechnen mit hoher Leistung ab. Zu den Fähigkeiten gehören die Beschleunigung von Array-Berechnungen und die Bereitstellung von Werkzeugen für numerische Berechnungen im großen Maßstab.
CUDA-accelerated library with a NumPy-like API.
Numba ist ein Just-in-Time-Compiler, der hochsprachliche Python-Funktionen zur Laufzeit in optimierten Maschinencode übersetzt. Durch die Nutzung der LLVM-Compiler-Infrastruktur bietet es ein Framework zur Beschleunigung numerischer Datenverarbeitung und mathematischer Berechnungen, was Leistungsniveaus ermöglicht, die mit statisch kompilierten Sprachen vergleichbar sind. Das Projekt zeichnet sich durch seine Fähigkeit zur typinferenzbasierten Spezialisierung aus, die Maschinenbefehle generiert, welche auf die während der Ausführung verwendeten Datentypen zugeschnitten sind. Es verwendet eine Lazy-Compilation-Pipeline, die die Übersetzung bis zum Moment des Aufrufs verzögert, wodurch der Start-Overhead minimiert und eine konsistente Leistung über verschiedene Prozessorarchitekturen und Betriebssysteme hinweg beibehalten wird. Über die reine Kompilierung hinaus bietet das Toolkit umfassende Unterstützung für Hardwarebeschleunigung durch die Verteilung iterativer Operationen und Array-Ausdrücke auf mehrere CPU-Kerne und Grafikprozessoren. Es nutzt Vektorisierungs- und Parallelisierungsstrategien, um den Durchsatz für große numerische Datensätze zu maximieren, wodurch Entwickler spezialisierte Hardware direkt aus Standardcode ansprechen können.
JIT compiler for high-performance Python code.
Thrust ist eine Bibliothek für heterogenes Computing und eine C++ Template-Bibliothek, die eine Sammlung hochsprachlicher Templates für die Ausführung datenparalleler Operationen bereitstellt. Sie fungiert als Bibliothek für parallele Algorithmen, die über verschiedene Hardware-Backends hinweg funktioniert, einschließlich Multicore-CPUs und NVIDIA GPU-Hardware. Das Framework nutzt eine Header-only-Implementierung und eine generische Programmier-Schnittstelle, um die Unterschiede zwischen CPU- und GPU-Speicher- sowie Ausführungsmodellen zu abstrahieren. Es verwendet eine Iterator-basierte Datenabstraktion, um eine einheitliche Schnittstelle für den Zugriff auf Elemente im Host-RAM und Geräte-VRAM bereitzustellen. Die Bibliothek deckt parallele Verarbeitungsfähigkeiten ab, einschließlich paralleler Datensortierung und aggregierter Reduktionsverarbeitung zur Berechnung von Werten über große Datensätze hinweg. Diese Operationen werden durch eine CUDA-Bibliothek für parallele Programmierung für das Hochleistungsrechnen auf GPU-Hardware verwaltet.
C++ parallel programming library for heterogeneous systems.
ArrayFire ist ein hardware-agnostisches Compute-Framework und eine JIT-kompilierte Tensor-Engine für numerische Hochleistungsberechnungen. Es dient als GPU-Bibliothek für numerische Berechnungen und Toolkit für parallele Signalverarbeitung, das Hardware-Backends abstrahiert und es ermöglicht, denselben Code auf verschiedenen GPU-Architekturen und CPUs auszuführen. Das Projekt zeichnet sich durch eine JIT-Engine aus, die Ausdruckskompilierung verwendet, um Operationen zu verschmelzen und den Speicher-Overhead zu minimieren. Es nutzt einen verzögerten Ausführungsgraphen zur Optimierung von Berechnungsketten und bietet Interoperabilitäts-Primitive, um Daten und Ausführungskontexte mit externen Compute-Plattformen wie CUDA und OpenCL zu teilen. Die Bibliothek deckt ein breites Spektrum an Fähigkeiten ab, einschließlich paralleler linearer Algebra, digitaler Signalverarbeitung und beschleunigter Computer Vision. Sie bietet Werkzeuge für die Implementierung von maschinellem Lernen, Simulationen für Finanzmodelle und die Lösung partieller Differentialgleichungen für physikalische Systemsimulationen. Das Tensor-Managementsystem verwaltet die Zuweisung mehrdimensionaler Arrays, Slicing sowie Datentransfers zwischen Host und Gerät.
General-purpose GPU computing library.
Python-Produktivität für ZYNQ
Embedded system design framework for Zynq SoCs.
ARCHIVIERT Die C++ Standardbibliothek für Ihr gesamtes System. Siehe https://github.com/NVIDIA/cccl
Heterogeneous C++ standard library for CPU and GPU.
VexCL ist eine C++ Vektor-Expression-Template-Bibliothek für OpenCL/CUDA/OpenMP
C++ vector expression library for OpenCL and CUDA.