开源 GPU 加速与并行计算库全量梳理 按底层通用并行框架、厂商专属 GPU 计算库、按编程语言绑定、专项场景加速(AI / 图像 / 科学计算 / 渲染 / 数据库)、异构 CPU+GPU 混合并行、分布式多 GPU 集群并行分层整理,全部为开源项目,标注适用显卡(NVIDIA/AMD/Intel)、语言、核心用途、典型场景、关键特点

  1. 一些开源的 GPU 加速和并行计算库,涵盖了不同的编程语言和用途:

    通用 GPU 编程库

    1. CUDA (Compute Unified Device Architecture)

      • 尽管 CUDA 本身不是开源的,但它有很多开源项目和库基于CUDA开发,用于并行计算。
      • 示例项目: cuDNN(NVIDIA深度学习加速库)
    2. OpenCL (Open Computing Language)

      • OpenCL 是一个开放标准,支持多种平台(包括GPU、CPU等)上的并行计算。
      • 官网链接: Khronos OpenCL
    3. HIP (Heterogeneous-compute Interface for Portability)

      • HIP 是 AMD 开发的一个 API,允许代码在 AMD 和 NVIDIA 的GPU上运行。
      • GitHub 项目: HIP

    深度学习库

    1. TensorFlow

      • TensorFlow 是一个流行的机器学习框架,支持 GPU 加速。
      • GitHub 项目: TensorFlow
    2. PyTorch

      • PyTorch 是另一个流行的深度学习框架,也支持 GPU 加速。
      • GitHub 项目: PyTorch
    3. MXNet

      • MXNet 是一个高效、灵活的深度学习框架,支持 GPU 加速。
      • GitHub 项目: MXNet

    数值和科学计算库

    1. CuPy

      • CuPy 是一个 NumPy 的实现,为 NVIDIA GPU 提供数组计算支持。
      • GitHub 项目: CuPy
    2. ArrayFire

      • ArrayFire 是一个高性能的科学计算库,支持 CUDA、OpenCL 和 CPU 后端。
      • GitHub 项目: ArrayFire
    3. Thrust

      • Thrust 是一个并行算法库,类似于 C++ 标准模板库(STL),但支持 GPU 加速。
      • GitHub 项目: Thrust

    图形和信号处理

    1. Vulkan

      • Vulkan 是一个低开销、高性能的图形和计算 API,支持 GPU 加速。
      • 官网链接: Vulkan
    2. OpenCV

      • OpenCV 是一个开源的计算机视觉和机器学习软件库,支持 GPU 加速(使用 CUDA)。
      • GitHub 项目: OpenCV

    并行计算框架

    1. MPI (Message Passing Interface)

      • 虽然 MPI 本身更多用于分布式计算,但结合 GPU 可以实现大规模并行计算。
      • 示例项目: Open MPI
    2. Dask

      • Dask 是一个灵活的并行计算库,可以扩展 Python 生态系统,并支持对大数据进行 GPU 加速计算。
      • GitHub 项目: Dask

    这些库和框架提供了强大的 GPU 加速和并行计算能力,适用于从科学研究到商业应用的各种场景。选择合适的工具取决于你的具体需求、硬件环境以及编程语言偏好。

一些更多的开源 GPU 加速和并行计算库,涵盖了不同的领域和应用:

图神经网络 (GNN) 和大规模图处理

  1. DGL (Deep Graph Library)

    • DGL 是一个专门用于图神经网络的深度学习框架,支持 GPU 加速,并与 PyTorch、TensorFlow 等框架兼容。
    • GitHub 项目: DGL
  2. PyG (PyTorch Geometric)

    • PyG 是一个基于 PyTorch 的图神经网络库,提供了一组简洁易用的 API 来处理图数据,并支持 GPU 加速。
    • GitHub 项目: PyG
  3. Gunrock

    • Gunrock 是一个高效的 GPU 图处理库,适用于大规模图计算任务。
    • GitHub 项目: Gunrock

数据库和大数据处理

  1. RAPIDS

    • RAPIDS 是一个开源的 GPU 加速数据科学和分析生态系统,包括数据帧操作(cuDF)、机器学习(cuML)以及图分析(cuGraph)。
    • GitHub 项目: RAPIDS
  2. BlazingSQL

    • BlazingSQL 是一个 GPU 加速的 SQL 引擎,可以与 RAPIDS 生态系统无缝集成,实现快速的大数据查询和分析。
    • GitHub 项目: BlazingSQL

高性能计算 (HPC)

  1. Kokkos

    • Kokkos 是一个跨平台的并行编程模型,支持 CUDA、OpenMP 等多种后端,适合高性能计算应用程序。
    • GitHub 项目: Kokkos
  2. GPUDirect RDMA

    • GPUDirect RDMA 是 NVIDIA 提供的技术,允许 GPU 直接访问远程内存,通过 RDMA 网络进行高效的数据传输。
    • 示例项目: GPUDirect

神经网络加速器

  1. TensorRT

    • TensorRT 是 NVIDIA 提供的一个高性能深度学习推理优化器和运行时库,虽然其核心不是完全开源的,但其部分组件和使用示例是开源的。
    • GitHub 项目: TensorRT
  2. ONNX Runtime

    • ONNX Runtime 是一个高性能的跨平台推理引擎,支持多个硬件加速器,包括 GPU。
    • GitHub 项目: ONNX Runtime

科学计算和模拟

  1. GROMACS

    • GROMACS 是一个用于分子动力学模拟的高性能软件,广泛应用于研究化学、生物学和药物设计,支持 GPU 加速。
    • GitHub 项目: GROMACS
  2. LAMMPS

    • LAMMPS 是一个经典的分子动力学模拟包,广泛用于材料科学研究,支持 GPU 加速。
    • GitHub 项目: LAMMPS

可视化和图形渲染

  1. VisPy

    • VisPy 是一个高性能的交互式数据可视化库,基于 OpenGL 实现,支持 GPU 加速。
    • GitHub 项目: VisPy
  2. Blender

    • Blender 是一个开源的3D建模、动画和渲染软件,支持通过 Cycles 渲染引擎的 GPU 加速渲染。
    • 官网链接: Blender

以上这些库和工具可以帮助你在不同的计算领域中利用 GPU 的强大计算能力,加速你的工作流程和研究。选择合适的工具需要考虑到具体的应用场景、硬件配置以及编程语言和框架的兼容性。

更多一些领域和相关的开源 GPU 加速和并行计算库:

深度学习框架

  1. TensorFlow

    • TensorFlow 是一个开源的深度学习框架,广泛用于研究和生产环境。它支持 GPU 加速并提供了丰富的工具和库来构建和训练各种类型的神经网络。
    • GitHub 项目: TensorFlow
  2. PyTorch

    • PyTorch 是另一个流行的深度学习框架,以其动态计算图和易用性而著称,广泛用于学术研究和工业应用,支持 GPU 加速。
    • GitHub 项目: PyTorch
  3. JAX

    • JAX 是一个高性能数值计算库,允许用户使用 Python 编写代码并自动获得 GPU 加速和自动微分功能。
    • GitHub 项目: JAX

机器学习和数据处理

  1. CuML

    • CuML 是 RAPIDS 的机器学习库,提供了一组与 scikit-learn 兼容的 API,用于 GPU 加速的机器学习算法。
    • GitHub 项目: CuML
  2. XGBoost

    • XGBoost 是一个高效的梯度提升决策树算法,实现了 GPU 加速,可以大幅提高训练速度。
    • GitHub 项目: XGBoost
  3. LightGBM

    • LightGBM 是微软开发的一个高性能梯度提升框架,也支持 GPU 加速。
    • GitHub 项目: LightGBM

图像处理和计算机视觉

  1. OpenCV

    • OpenCV 是一个开源的计算机视觉和机器学习软件库,提供了丰富的图像处理和分析工具,并支持 GPU 加速。
    • GitHub 项目: OpenCV
  2. NVIDIA DALI

    • NVIDIA DALI 是一个用于深度学习训练的高性能数据加载和增强库,支持 GPU 加速。
    • GitHub 项目: NVIDIA DALI

自然语言处理 (NLP)

  1. Hugging Face Transformers

    • Hugging Face 的 Transformers 库提供了大量预训练的 NLP 模型(如 BERT、GPT 等),并支持 GPU 加速。
    • GitHub 项目: Transformers
  2. Fairseq

    • Fairseq 是 Facebook AI Research 开发的一个用于序列到序列模型的开源库,支持 NLP 和语音识别任务,并提供 GPU 加速。
    • GitHub 项目: Fairseq

数值线性代数

  1. cuBLAS

    • cuBLAS 是 NVIDIA 提供的一个优化的线性代数库,专为 GPU 加速的矩阵操作而设计。
    • 文档链接: cuBLAS
  2. cuSolver

    • cuSolver 是一个用于求解线性系统、特征值问题和奇异值分解的高性能 GPU 加速库。
    • 文档链接: cuSolver

并行编程模型

  1. Thrust

    • Thrust 是一个 C++ 标准模板库(STL)风格的并行算法库,支持 GPU 和多核 CPU 后端。
    • GitHub 项目: Thrust
  2. HPX

    • HPX 是一个高性能并行执行库,提供异步并行算法和数据结构,适用于大规模并行计算。
    • GitHub 项目: HPX

以上这些库涵盖了从基础深度学习框架到各类专门的加速器和工具,可以帮助你在不同应用场景中充分利用 GPU 的计算能力。选择合适的工具时,需要根据你的具体需求、目标应用领域以及现有的软硬件环境进行评估。


开源 GPU 加速与并行计算库全量梳理

按底层通用并行框架、厂商专属 GPU 计算库、按编程语言绑定、专项场景加速(AI / 图像 / 科学计算 / 渲染 / 数据库)、异构 CPU+GPU 混合并行、分布式多 GPU 集群并行分层整理,全部为开源项目,标注适用显卡(NVIDIA/AMD/Intel)、语言、核心用途、典型场景、关键特点。

一、底层通用 GPU 并行计算框架(跨厂商、通用 GPGPU,无厂商绑定)

1. OpenCL(Open Computing Language)

  • 开源标准规范,运行时实现开源(clBLAS、POCL纯 CPU/OpenCL 开源实现)
  • 支持:NVIDIA、AMD、Intel、ARM Mali、FPGA、嵌入式 GPU 全平台兼容
  • 语言:C/C++ 内核,C/C++/Python/Java 绑定
  • 核心用途:通用 GPGPU 并行、图像算法、异构计算、老旧显卡加速
  • 优势:一次编写到处运行,跨显卡架构
  • 开源实现:
    • POCL:纯开源 CPU/OpenCL 运行时,无闭源驱动依赖
    • clFFT、clBLAS、clSparse:OpenCL 基础数学算子库

2. SYCL(基于 C++17 的异构并行,Khronos 开源)

  • 定位:C++ 现代化替代 OpenCL,可无缝切换 CUDA/HIP/CPU 后端
  • 开源项目:DPC++/OneAPI(Intel 官方开源 SYCL)、ComputeCpp
  • 支持:NVIDIA CUDA、AMD ROCm、Intel Arc/Xe、CPU
  • 用途:高性能科学计算、机器学习推理、异构跨平台工程
  • 亮点:代码可直接编译为 CUDA 二进制,无需改写核心逻辑

3. Vulkan Compute(Vulkan 通用计算管线)

  • 开源图形 + 计算 API,Vulkan SDK 完全开源
  • 适用:GPU 通用计算 + 实时渲染合一,移动端 GPU(Adreno/Mali)并行加速
  • 典型:Vulkan-based 光线追踪、移动端 AI 推理、边缘并行计算

二、厂商原生开源 GPU 计算框架

(1)NVIDIA 生态(CUDA 为主,上层封装大量开源库)

CUDA Toolkit(核心底层,驱动层闭源,上层 SDK 全部开源)

  • 内核语言:CUDA C/C++、PTX 汇编
  • 基础开源算子库(CUDA 生态核心)
  1. cuBLAS:GPU 矩阵乘法
  2. cuFFT:GPU 快速傅里叶变换
  3. cuSPARSE:稀疏矩阵运算
  4. cuSOLVER:GPU 线性方程组求解
  5. NPP:NVIDIA 图像 / 视频处理加速库
     
    全部头文件、示例、上层封装开源。

开源 CUDA 上层封装

  1. Thrust:C++ STL 风格 GPU 并行算法库(排序、规约、变换,CUDA 原生开源)
  2. CUB:CUDA 底层原语优化库(归约、扫描、前缀和,NVIDIA 开源)

(2)AMD ROCm(全栈开源 GPU 计算平台,完全开源)

ROCm 是 AMD 对标 CUDA 的完整开源 GPGPU 栈,无闭源组件
  1. HIP(Heterogeneous-Compute Interface for Portability)
    • 核心:CUDA 代码一键迁移至 AMD GPU,hipcc编译器直接编译 CUDA 源码
    • 开源,跨 AMD/NVIDIA 双 GPU 编译
  2. 配套算子库(对标 CUDA 库):
    • rocBLAS、rocFFT、rocSPARSE、rocSOLVER、rocALUTION
  3. MIOpen:AMD 开源深度学习算子库(对标 cuDNN)
     
    适配:AMD Radeon、MI 系列计算卡

(3)Intel oneAPI Base Toolkit(开源异构计算)

  • DPC++(SYCL):C++ 异构并行编译器
  • oneAPI 数学库:oneMKL(矩阵 / FFT)、oneDNN(深度神经网络算子,原 MKL-DNN)
     
    支持 Intel Arc 独显、Iris 核显、至强 CPU,可同时调度 CPU+GPU 并行

三、C/C++ 高性能 GPU 并行开源库

  1. Kokkos
    • 开源 C++ 异构并行框架,后端支持 CUDA/HIP/SYCL/OpenMP/CPU
    • 用途:超算流体力学、有限元、粒子仿真、气候模型(美国能源部主力库)
    • 特点:一套代码适配 CPU/GPU 多硬件,可动态切换执行后端
  2. RAJA
    • LLNL 开源并行抽象库,并行算法解耦硬件,CUDA/ROCm/OpenMP 兼容
  3. ArrayFire
    • 开源 GPU 数组计算库,C/C++/Python/Java,封装矩阵、信号、图像并行运算
    • 后端:CUDA/OpenCL/CPU,快速搭建 GPU 加速原型
  4. Boost.Compute
    • Boost 开源组件,基于 OpenCL 的 C++GPU 容器与算法,STL 风格并行编程

四、Python 生态 GPU 加速开源库(最常用,科研 / AI 主力)

1. 数值计算加速

  1. CuPy
    • 开源,NumPy/SciPy 完全兼容的 GPU 数组库,基于 CUDA
    • 一行替换import numpy as np→import cupy as np实现 GPU 加速
    • 支持稀疏矩阵、FFT、线性代数,ROCm 下可通过 CuPy-HIP 适配 AMD
  2. PyTorch Tensor(CUDA/HIP/SYCL 后端)
     
    自动 GPU 张量并行,动态图并行计算
  3. TensorFlow XLA
     
    算子编译 GPU 加速

2. 并行多 GPU 通信(Python 分布式)

  1. NCCL(NVIDIA Collective Communications Library,开源):多卡集合通信(AllReduce、AllGather),深度学习多卡训练标配
  2. rccl:AMD ROCm 版 NCCL,开源多 GPU 通信库
  3. Horovod:Uber 开源分布式训练框架,封装 NCCL/RCCL,简化多机多 GPU 并行

3. 通用 Python GPU JIT 即时编译

  1. Numba (CUDA JIT)
    • 开源,Python 函数加装饰器@cuda.jit直接编译 GPU 内核,无需 C/C++
    • 支持自定义 GPU 核函数、并行 for 循环,轻量化 GPU 开发首选
  2. Taichi Lang
    • 开源计算机图形学 / 物理仿真 JIT 编译器,支持 CUDA/OpenGL/Vulkan GPU 后端
    • 适合流体、粒子、有限元、实时渲染快速 GPU 原型

五、深度学习专项 GPU 加速开源库

  1. cuDNN(NVIDIA,接口开源):卷积、BN、激活、RNN 核心深度学习算子
  2. MIOpen(AMD 开源):ROCm 深度学习算子库,对标 cuDNN
  3. oneDNN(Intel 开源):CPU/GPU 统一深度算子优化
  4. FlashAttention:开源 GPU 显存优化注意力算子(大模型刚需)
  5. vLLM / SGLang:开源大模型 GPU 推理加速库(PagedAttention 显存复用)
  6. TensorRT-LLM(NVIDIA 开源):大模型 GPU 推理量化加速

六、图像、视频、渲染 GPU 加速开源库

  1. OpenCV CUDA Module
     
    OpenCV 开源 GPU 版本,图像滤波、特征检测、光流、编解码 GPU 加速,CUDA/OpenCL 双后端
  2. FFmpeg GPU 硬件加速插件
    • NVENC/NVDEC(NVIDIA 硬编解码开源封装)
    • AMF(AMD 硬编码开源 SDK)
    • QSV(Intel QuickSync 开源调用)
  3. OIDN (Open Image Denoise)
     
    Intel 开源 GPU 光线追踪降噪库,CUDA/HIP/SYCL 兼容
  4. Embree
     
    Intel 开源 GPU 光线追踪相交计算内核,用于路径追踪渲染器

七、科学计算 & HPC 超算开源 GPU 库

  1. PETSc:开源偏微分方程求解器,支持 CUDA/ROCm 并行稀疏求解
  2. Hypre:大规模线性求解 GPU 加速
  3. FFTW-GPU:FFTW 开源 CPU FFT 的 GPU 移植版本(cuFFT 封装)
  4. LAMMPS-GPU:分子动力学仿真 GPU 加速版本(经典分子模拟开源软件)

八、数据库、时序计算 GPU 加速开源库

  1. BlazingSQL:GPU 加速 SQL 查询引擎,基于 CuPy、RAPIDS
  2. RAPIDS Suite(NVIDIA 开源全栈 GPU 数据分析)
     
    cuDF(GPU Pandas)、cuML(GPU 机器学习)、cuGraph(GPU 图计算),结构化数据 GPU 并行处理
  3. PG-Strom:PostgreSQL 开源 GPU 加速插件,SQL 算子下推 GPU

九、分布式多 GPU / 多节点并行开源框架

  1. MPI + CUDA-Aware MPI
     
    OpenMPI、MPICH 开源支持 GPU 直接 RDMA 通信,超算多节点 GPU 并行标准
  2. PyCUDA + MPI:Python 多节点 GPU 并行
  3. DeepSpeed(微软开源):大模型多 GPU 张量并行、流水线并行、ZeRO 显存优化
  4. Megatron-LM:英伟达开源大模型 3D 并行范式(张量 / 流水线 / 数据并行)

十、C# / Java / Rust 小众语言 GPU 开源库

Rust

  1. wgpu:跨平台 Vulkan/OpenGL/DX12 GPU 计算 + 渲染(纯 Rust 开源)
  2. rust-cuda:Rust 绑定 CUDA 内核调用
  3. hip-rs:Rust 适配 AMD HIP

C#/.NET

  1. ILGPU:开源.NET GPU JIT 编译器,C# 直接写 GPU 并行代码,CUDA/OpenCL 后端
  2. MathNet.Numerics.GPU:OpenCL 矩阵加速

Java

  1. JavaCL:Java OpenCL 绑定
  2. Aparapi:Java 字节码直接编译为 GPU OpenCL 内核

十一、嵌入式 / 移动端 GPU 开源并行库

  1. Mali OpenCL SDK:ARM Mali GPU 嵌入式并行计算开源库
  2. Android GPU Compute (Vulkan Compute):移动端 GPU 推理加速
  3. Jetson CUDA SDK:NVIDIA Jetson 嵌入式 GPU 开源算子库

十二、核心选型对照表

开发场景 首选开源库 硬件适配 核心优势
C++ 高性能超算异构开发 Kokkos / RAJA CUDA/ROCm/Intel/CPU 一次代码多硬件部署
Python 快速 GPU 原型、Numpy 加速 CuPy / Numba CUDA NVIDIA 为主,CuPy 支持 AMD 零学习成本替换 numpy
CUDA 代码移植 AMD 显卡 HIP(ROCm) AMD/NVIDIA 直接复用 CUDA 源码
Python 不改动代码实现 GPU 并行 Taichi CUDA/Vulkan/CPU 领域特定语法,仿真高效
深度学习多卡训练通信 NCCL/RCCL + Horovod NVIDIA/AMD 带宽最优集合通信
跨厂商通用 GPGPU 开发 SYCL(DPC++) / OpenCL 全品牌 GPU 硬件无绑定
移动端 / 嵌入式 GPU 计算 Vulkan Compute / Mali OpenCL ARM / 边缘 GPU 低功耗并行
.NET 平台 GPU 加速 ILGPU CUDA/OpenCL C# 原生 GPU 内核
GPU 大数据分析 RAPIDS cuDF NVIDIA Pandas 级接口 GPU 加速

补充关键说明

  1. CUDA 核心运行时为闭源二进制,但所有上层数学库、算法库、封装接口、示例代码全部开源,可自由二次开发;
  2. ROCm 是目前唯一完整开源的全栈工业级 GPU 计算平台,无厂商锁定,适合国产化算力部署;
  3. SYCL/DPC++ 是长期异构并行技术路线,解决 CUDA 厂商锁定问题,适配国产 GPU(如壁仞、沐曦均支持 SYCL);
  4. JIT 类库(Numba、Taichi、ILGPU)适合快速迭代算法,底层 CUDA/HIP 适合极致性能调优。

常用 GPU 加速 & 并行计算开源库(附带 GitHub 开源地址 + 官网)

按场景分类,全部标注开源仓库地址、官方主页、适配硬件、核心定位,方便直接拉取源码、部署使用。

一、Python 快速 GPU 开发库(科研原型、算法加速首选)

1. CuPy(GPU 版 NumPy/SciPy)

2. Numba(Python JIT GPU 编译器)

3. Taichi(物理仿真 / 图形专用 GPU JIT)

4. RAPIDS cuDF(GPU Pandas 大数据分析)

5. PyTorch(深度学习张量 GPU 并行)

6. TensorFlow

二、C++ 高性能底层 GPU 并行库(生产部署、HPC 超算)

1. Thrust(NVIDIA STL 风格 GPU 并行算法)

2. Kokkos(异构跨平台并行框架)

  • GitHub:https://github.com/kokkos/kokkos
  • 适配:CUDA / HIP / SYCL / OpenMP / CPU
  • 作用:超算流体、有限元、粒子仿真一套代码多硬件部署

3. ArrayFire(通用 GPU 数值计算库)

4. Boost.Compute(OpenCL C++ 并行容器)

三、跨厂商异构 GPU 开源栈(AMD/Intel/ 国产 GPU 兼容,摆脱 CUDA 绑定)

1. AMD ROCm + HIP(全开源 CUDA 兼容栈)

2. Intel DPC++ / SYCL oneAPI

3. POCL(纯开源 OpenCL 运行时,无闭源驱动)

四、深度学习底层 GPU 算子 & 推理加速开源库

1. MIOpen(AMD 开源深度学习算子,对标 cuDNN)

2. FlashAttention(大模型显存优化 Attention 算子)

3. vLLM(LLM 高吞吐 GPU 推理)

4. NCCL(NVIDIA 多 GPU 集合通信)

5. RCCL(AMD 版 NCCL)

五、分布式多 GPU / 多节点并行框架(集群训练、超算)

1. Horovod(简化多机多卡分布式训练)

2. DeepSpeed(微软大模型显存优化分布式)

3. OpenMPI(CUDA-Aware MPI,超算节点通信)

六、图像、视频、渲染 GPU 加速开源库

1. OpenCV CUDA 模块

2. OIDN(Intel 光线追踪 GPU 降噪)

3. Embree(GPU 光线追踪相交计算)

4. FFmpeg(GPU 硬编解码)

七、现代编程语言 GPU 库(Rust / C# .NET)

1. ILGPU(C#/.NET GPU JIT 编译器)

2. wgpu(Rust 跨平台 Vulkan 计算 / 渲染)

八、嵌入式边缘 GPU 计算

Jetson-Stats(NVIDIA Jetson 嵌入式监控 + 开发配套)

Rockchip Mali GPU 驱动(瑞芯微 RK3588 嵌入式 GPU)

补充说明

  1. cuDNN:NVIDIA 核心深度学习算子库,运行时二进制闭源,上层开发头文件与示例开源,无独立 GitHub 主仓库,从 NVIDIA 开发者官网获取;
  2. 所有 ROCm 生态组件(rocBLAS、rocFFT、rocSPARSE)统一托管在 GitHub 组织:ROCm;
  3. 以上仓库均可直接git clone拉取源码编译部署,适配 Linux/Windows 开发环境。

一、C++ 高性能底层 GPU 加速 & 并行计算库(开源 + 源码地址、适配、核心用途)

1. NVIDIA CUDA 生态原生 C++ 库

Thrust

  • 开源地址:https://github.com/NVIDIA/thrust
  • 适配:NVIDIA CUDA
  • 定位:STL 风格 GPU 高层并行算法库,内置sort、reduce、scan、transform、复制、置换等并行原语,避免手写 CUDA 线程网格逻辑,C++ 直接调用。
  • 适用:通用数值并行、数组处理、前置求和、大规模排序。

CUB

  • 开源地址:https://github.com/NVIDIA/cub
  • 适配:NVIDIA CUDA
  • 定位:CUDA 底层高性能原语库(Block/Thread/Warp 级规约、扫描、Shuffle、原子操作),Thrust 底层依赖,极致性能调优必备。

cuBLAS / cuFFT / cuSPARSE / cuSOLVER

  • 开源示例 & 头文件:NVIDIA CUDA Toolkit 自带开源 Sample
  • 定位:GPU 基础线性代数、傅里叶变换、稀疏矩阵、方程求解底层算子,科学计算、CFD、仿真底层基石。

2. 跨厂商异构 C++ 并行框架(CUDA/ROCm/Intel/CPU 通用)

Kokkos

  • 开源地址:https://github.com/kokkos/kokkos
  • 后端:CUDA、HIP (AMD)、SYCL、OpenMP、Serial CPU
  • 特点:一套 C++ 代码编译部署到 NVIDIA/AMD/Intel GPU、多核 CPU,HPC 超算主力,流体力学、有限元、粒子仿真、气候模拟。

RAJA

  • 开源地址:https://github.com/LLNL/RAJA
  • 适配:CUDA、HIP、OpenMP
  • 定位:并行执行策略解耦,算法逻辑与硬件执行层分离,便于多硬件迁移、性能调优。

HIP (AMD ROCm)

  • 开源地址:https://github.com/ROCm/HIP
  • 定位:C++ 兼容层,直接编译 CUDA C++ 代码在 AMD GPU 运行,配套rocBLAS/rocFFT算子库,实现 CUDA 代码低成本迁移 A 卡。

SYCL(Intel DPC++)

  • 开源编译器:https://github.com/intel/llvm
  • 定位:C++17 异构并行标准,单代码支持 CUDA/HIP/CPU/Intel Arc / 国产 GPU,无厂商锁定。

3. OpenCL 通用 C++ 计算库

Boost.Compute

ArrayFire

  • 开源地址:https://github.com/arrayfire/arrayfire
  • 后端:CUDA / OpenCL / CPU,C++ 核心 API,同时提供 Python 绑定,开箱即用矩阵、信号、图像并行算子,适合快速工程落地。

4. 光线追踪 / 图形计算底层 C++ 库

Embree

OIDN (OpenImageDenoise)

二、深度学习专用 GPU 加速并行库(算子、推理、训练底层)

1. 卷积 / 深度学习基础算子库

MIOpen(AMD 开源,对标 cuDNN)

  • 开源地址:https://github.com/ROCm/MIOpen
  • 功能:卷积、BN、激活、池化、RNN、Transformer 底层算子,ROCm 深度学习底层依赖。

oneDNN (MKL-DNN,Intel 开源)

FlashAttention

Cutlass

  • 开源地址:https://github.com/NVIDIA/cutlass
  • NVIDIA 开源矩阵乘法模板库,自定义 FP16/FP8/INT8 混合精度 GEMM,大模型、卷积算子自定义开发。

2. 推理加速库(C++ 部署为主)

TensorRT

  • 开源组件:TensorRT 开源示例、Plugin 仓库:https://github.com/NVIDIA/TensorRT
  • 定位:NVIDIA 模型量化、算子融合、推理编译加速,工业部署标配。

TensorRT-LLM

vLLM

ONNX Runtime

OpenVINO

3. 训练框架底层 GPU 模块

PyTorch C++ Frontend (LibTorch)

TVM / Apache TVM

  • 开源地址:https://github.com/apache/tvm
  • 深度学习算子编译优化器,自动生成 CUDA/HIP/OpenCL 高性能内核,模型跨硬件编译部署。

三、分布式多 GPU 并行计算库(多卡集合通信、多节点并行、分布式训练)

1. GPU 集合通信底层(多卡 AllReduce/AllGather 核心)

NCCL (NVIDIA Collective Communications Library)

RCCL (ROCm Collective Communications Library)

2. 分布式训练封装框架

Horovod

Microsoft DeepSpeed

Megatron-LM

3. HPC 超算多节点 GPU 并行(MPI+GPU)

OpenMPI (CUDA-Aware MPI)

MPICH

4. K8s 云原生 GPU 调度 + 监控配套

NVIDIA K8s Device Plugin

四、补充专项 GPU 加速库(图像、视频、大数据)

  1. OpenCV CUDA
     
    仓库:https://github.com/opencv/opencv
     
    C++ GPU 图像滤波、特征检测、光流、立体匹配加速
  2. RAPIDS(GPU 大数据 C++ 底层)
     
    仓库:https://github.com/rapidsai
     
    cuDF/cuML C++ 底层,GPU 结构化数据并行计算
  3. FFmpeg GPU 硬编解码
     
    仓库:https://github.com/FFmpeg/FFmpeg
     
    NVENC/NVDEC/AMF/QSV 硬件编解码 C++ 调用

选型精简总结

  1. C++ 底层跨硬件开发:Kokkos(首选)> HIP(AMD 迁移 CUDA)> Thrust(N 卡快速并行)
  2. 深度学习算子开发:Cutlass、FlashAttention、MIOpen
  3. 模型部署推理:TensorRT、ONNX Runtime、TVM
  4. 多 GPU 训练通信:NCCL + Horovod、DeepSpeed
  5. 超算分布式并行:CUDA-Aware OpenMPI + Kokkos

 

posted @ 2024-06-22 05:31  suv789  阅读(1952)  评论(0)    收藏  举报