awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
NVIDIA avatar

NVIDIA/thrustArchived

0
View on GitHub↗
5,003 stars·760 forks·C++·3 views

Thrust

Thrust is a C++ parallel algorithms library that provides a suite of standard-library-inspired interfaces for execution on multi-core and accelerator hardware. It serves as a CUDA-accelerated data library and a generic parallel programming interface designed to enable high-performance data processing across GPUs and CPUs.

The project implements a portable abstraction layer that allows for heterogeneous computing workflows, enabling the same core algorithm logic to run on different hardware accelerators. This is achieved through a generic programming policy design and a backend-agnostic execution model that maps high-level functional calls to parallel hardware.

The library covers a broad range of high-performance computing capabilities, including parallel data manipulation, numerical reductions, and device memory management. It provides specialized tools for transferring data between host system memory and discrete device memory to facilitate large-scale operations like sorting and searching.

Features

  • C++ Parallelism Libraries - Provides a comprehensive library of parallel primitives and data-parallel templates for high-performance GPU programming in C++.
  • Kernel Dispatchers - Maps high-level functional calls to parallel grids of threads on GPU hardware accelerators.
  • Cross-Platform Compute Abstractions - Enables a heterogeneous computing workflow where the same core algorithm logic runs on different hardware accelerators.
  • Host-to-Device Data Transfers - Provides specialized tools for moving data between host system memory and parallel device memory.
  • CPU-GPU Backend Switching Abstractions - Provides abstractions that allow algorithms to switch execution between CPU and GPU backends through a unified interface.
  • Device Memory Abstraction Layers - Offers abstraction layers to manage data transfers between system RAM and GPU memory for fast parallel processing.
  • Iterator-Based Abstractions - Uses specialized iterator classes to provide a unified interface for varying memory layouts across different hardware.
  • Policy-Based Design - Utilizes policy-based design to configure hardware-specific execution and memory models at compile time.
  • Parallel Algorithms - Provides fundamental data-parallel operations such as sorting and reduction for high-performance computing.
  • Standard C++ Parallel Algorithm Offloads - Provides parallel versions of C++ Standard Template Library (STL) algorithms optimized for device-side execution.
  • Parallel Programming Interfaces - Implements a portable abstraction layer for parallel reductions and data transformations across different hardware accelerators.
  • CUDA-Accelerated Libraries - Provides a suite of tools for managing memory transfers and executing computations specifically on NVIDIA CUDA hardware.
  • Accelerator-Based Data Parallelism - Implements large-scale parallel operations like sorting and searching across massive datasets using hardware accelerators.
  • Parallel Reductions - Provides parallel reduction operations to calculate aggregate values like sums and maximums across many processor cores.
  • Device-Specific Memory Allocators - Implements customizable memory allocators to decouple memory management from algorithm logic for different device spaces.
  • Compile-Time Metaprogramming - Employs compile-time metaprogramming to resolve hardware-specific types and dispatching logic without runtime overhead.

Star history

Star history chart for nvidia/thrustStar history chart for nvidia/thrust

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Thrust

Similar open-source projects, ranked by how many features they share with Thrust.
  • thrust/thrustthrust avatar

    thrust/thrust

    5,003View on GitHub↗

    Thrust is a heterogeneous computing library and C++ template library that provides a collection of high-level templates for executing data-parallel operations. It functions as a parallel algorithms library designed to work across different hardware backends, including multicore CPUs and NVIDIA GPU hardware. The framework utilizes a header-only implementation and a generic-programming policy interface to abstract the differences between CPU and GPU memory and execution models. It employs an iterator-based data abstraction to provide a uniform interface for accessing elements across host RAM an

    C++
    View on GitHub↗5,003
  • nvidia/isaac-gr00tNVIDIA avatar

    NVIDIA/Isaac-GR00T

    6,222View on GitHub↗
    Jupyter Notebook
    View on GitHub↗6,222
  • arrayfire/arrayfirearrayfire avatar

    arrayfire/arrayfire

    4,888View on GitHub↗

    ArrayFire is a hardware-agnostic compute framework and JIT-compiled tensor engine designed for high-performance numerical computing. It serves as a GPU numerical computing library and parallel signal processing toolkit that abstracts hardware backends, allowing the same codebase to execute across various GPU architectures and CPUs. The project distinguishes itself through a JIT engine that uses expression compilation to fuse operations and minimize memory overhead. It employs a deferred execution graph to optimize computation chains and provides interoperability primitives to share data and e

    C++arrayfirecc-plus-plus
    View on GitHub↗4,888
  • boostorg/boostboostorg avatar

    boostorg/boost

    8,493View on GitHub↗

    Boost is a collection of portable, high-performance source libraries that extend the C++ standard library. It provides a wide range of reusable components, data structures, and algorithms designed to add capabilities to the base language across different platforms. The project is distinguished by its extensive focus on compile-time template metaprogramming and generic programming. It implements advanced architectural patterns such as policy-based design, concept-based type validation, and the use of SFINAE for conditional template resolution to minimize runtime overhead. The library covers a

    HTML
    View on GitHub↗8,493
See all 30 alternatives to Thrust→

Frequently asked questions

What does nvidia/thrust do?

Thrust is a C++ parallel algorithms library that provides a suite of standard-library-inspired interfaces for execution on multi-core and accelerator hardware. It serves as a CUDA-accelerated data library and a generic parallel programming interface designed to enable high-performance data processing across GPUs and CPUs.

What are the main features of nvidia/thrust?

The main features of nvidia/thrust are: C++ Parallelism Libraries, Kernel Dispatchers, Cross-Platform Compute Abstractions, Host-to-Device Data Transfers, CPU-GPU Backend Switching Abstractions, Device Memory Abstraction Layers, Iterator-Based Abstractions, Policy-Based Design.

What are some open-source alternatives to nvidia/thrust?

Open-source alternatives to nvidia/thrust include: thrust/thrust — Thrust is a heterogeneous computing library and C++ template library that provides a collection of high-level… nvidia/isaac-gr00t. arrayfire/arrayfire — ArrayFire is a hardware-agnostic compute framework and JIT-compiled tensor engine designed for high-performance… boostorg/boost — Boost is a collection of portable, high-performance source libraries that extend the C++ standard library. It provides… taskflow/taskflow — Taskflow is a C++ task-parallel framework designed to build high-performance parallel workflows and complex dependency… juliagpu/cuda.jl — CUDA.jl provides a programming interface for executing custom kernels and performing parallel array computing directly…