当前位置: 首页 > news >正文

CUDA 编程相关的开源库

        CUDA 编程相关的开源库非常丰富,涵盖了高性能计算、深度学习、图像处理、线性代数、优化算法等多个领域。

1. 通用 GPU 计算库

  • CUDA Toolkit (NVIDIA官方):
    包含 CUDA 运行时库、编译器(nvcc)、调试工具(cuda-gdbNsight)、数学库(如 cuBLAScuFFT)等。
    🔗 CUDA Toolkit - Free Tools and Training | NVIDIA Developer

  • Thrust:
    CUDA 的 C++ STL 风格模板库,提供高性能的并行算法(如排序、归约、扫描)。
    🔗 https://github.com/NVIDIA/thrust

  • Kokkos:
    跨平台的并行编程模型,支持 CUDA、HIP、OpenMP 等,适合科学计算。
    🔗 https://github.com/kokkos/kokkos

  • ArrayFire:
    高性能通用 GPU 计算库,支持 CUDA/OpenCL,提供易用的数组操作接口。
    🔗 https://arrayfire.com

2. 线性代数与数学运算

  • cuBLAS/cuSOLVER/cuSPARSE:
    NVIDIA 官方库,提供 BLAS、LAPACK、稀疏矩阵运算等。
    🔗 cuBLAS | NVIDIA Developer

  • MAGMA:
    混合 CPU-GPU 的线性代数库,支持密集矩阵运算。
    🔗 MAGMA

  • CUTLASS:
    NVIDIA 的高性能 CUDA 矩阵乘法库,用于自定义深度学习内核优化。
    🔗 https://github.com/NVIDIA/cutlass

  • cuTensor (用于张量计算):
    针对量子计算和科学计算的张量操作库。
    🔗 cuTENSOR | NVIDIA Developer

3. 深度学习与神经网络

  • cuDNN:
    NVIDIA 的深度学习加速库(闭源但免费)。
    🔗 CUDA Deep Neural Network (cuDNN) | NVIDIA Developer

  • TensorRT:
    NVIDIA 的高性能深度学习推理库(部分开源)。
    🔗 https://github.com/NVIDIA/TensorRT

  • OpenAI Triton:
    用于编写高效 GPU 内核的 Python DSL,支持 CUDA 后端。
    🔗 https://github.com/openai/triton

4. 图像与信号处理

  • NPP (NVIDIA Performance Primitives):
    提供图像和信号处理的 CUDA 加速函数。
    🔗 NVIDIA Performance Primitives (NPP) | NVIDIA Developer

  • OpenCV with CUDA:
    OpenCV 的 CUDA 模块(cv::cuda),支持图像处理加速。
    🔗 https://opencv.org

  • cuFFT:
    NVIDIA 的快速傅里叶变换库。
    🔗 cuFFT | NVIDIA Developer

5. 并行算法与数据结构

  • CUB:
    CUDA 的底层并行原语库(如块级排序、归约)。
    🔗 https://github.com/NVIDIA/cub

  • Gunrock:
    面向图的 GPU 计算框架。
    🔗 https://github.com/gunrock/gunrock

  • moderngpu:
    高性能 GPU 排序、搜索等算法的模板库。
    🔗 https://github.com/moderngpu/moderngpu

6. 调试与性能分析

  • Nsight Tools:
    NVIDIA 的性能分析工具(集成在 CUDA Toolkit 中)。
    🔗 Nsight Systems | NVIDIA Developer

  • CUDA-MEMCHECK:
    内存错误检测工具。
    🔗 https://docs.nvidia.com/cuda/cuda-memcheck

  • nvprof/nv-nsight-cu:
    命令行和图形化性能分析工具。

7. 其他工具与框架

  • RAJA:
    类似 Kokkos 的并行编程抽象层,支持 CUDA。
    🔗 https://github.com/LLNL/RAJA

  • SYCL (通过 DPC++ 或 hipSYCL):
    跨平台异构编程框架,部分实现支持 CUDA 后端。
    🔗 https://github.com/illuhad/hipSYCL

  • Alpaka:
    跨平台的并行内核抽象库。
    🔗 https://github.com/alpaka-group/alpaka

8. 社区与学习资源

  • CUDA Samples:
    NVIDIA 官方示例代码(GitHub 或 CUDA Toolkit 自带)。
    🔗 https://github.com/NVIDIA/cuda-samples

  • Awesome CUDA:
    整理的 CUDA 资源列表。
    🔗 https://github.com/Erkaman/awesome-cuda

选择建议

  • 科学计算:MAGMA + Thrust + cuBLAS

  • 深度学习:cuDNN + TensorRT + Triton

  • 图像处理:OpenCV + NPP

  • 快速开发:ArrayFire 或 Thrust

相关文章:

  • 单片机-89C51部分:6、数码管
  • 基于卷积神经网络的蔬菜水果识别系统,resnet50,mobilenet模型【pytorch框架+python源码】
  • 【LINUX操作系统】线程操作
  • USB3.0 、 PCIE、RFSoC、NVMe 新课程课程直播发布公告
  • AutoGen 框架深度解析:构建多智能体协作的事件驱动架构
  • PCIe-8634四口千兆PoE以太网卡的性能与应用分析
  • 【Java面试题04】MySQL 篇
  • 喷泉码技术在现代物联网中的应用 设计
  • Java学习手册: IoC 容器与依赖注入
  • 设备数据采集软件takebishi和kepware的区别是什么?
  • Android常见仓库与国内仓库对应关系
  • 【android bluetooth 协议分析 06】【l2cap详解 10】【通过avdtp连接流程,感受l2cap通道的生命周期变化】
  • 浅谈PCB传输线(一)
  • SpringBoot应用原生或docker镜像容器集成Skywalking
  • 软件工程(二):开发模型
  • 基于亚博K210开发板——看门狗实验
  • print用法讲解(Python)
  • js day8
  • JAVA实现将富文本内容插入已有word文档并下载(dock4j+jsoup)
  • rabbitmq-集群部署
  • 长三角铁路“五一”假期运输今启动:预计发送旅客量增6%,5月1日当天有望创新高
  • “杭州六小龙”的招聘迷局
  • 物业也能成为居家养老“服务员”,上海多区将开展“物业+养老”试点
  • 旧衣服旧纸箱不舍得扔?可能是因为“囤物障碍”
  • 哈工大赵杰:人形机器人要拓展人的能力而非一味复制,未来产业要做成至少10年
  • 光线传媒:正与部分重点地区洽谈主题乐园合作,首款3A游戏预计三年左右推出