惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

蔡不菜和他的uU们

code snippets vLLM实践之个人AI基建——云端vLLM+SSH Tunnel+本地Cherry Studio 使用acme.sh进行阿里云域名SSL证书申请与部署自动化 OCR实践—PaddleOCR-VL-1.5 OCR实践—PaddlOCR-VL OCR新范式 2025年终总结-选择,未知的路 CUDA TensorRT Python智能提示补全解决方案 阿里云实例迁移、IP换绑 VS大型CPP项目调试,Debug模式,Release模式,附加到进程模式 2024已结算,万象新始,远虑近忧 OCR实践-Table-Transformer
NVIDIA相关库简介
()x · 2025-01-31 · via 蔡不菜和他的uU们

在这个AI时代,NVIDIA是无法绕开的一个公司(国内外大公司也都在追赶构建自己的软硬件生态,毫无疑问还需要时间,可以拭目以待),我们使用它们的硬件GPU,使用他们的SDK,让我们在这个AI时代得以构建更加强大的模型和应用。NVIDIA 提供了广泛的开发库,以下是我们收集整理的一些主要和常用的 NVIDIA 开发库(陆续更新中):

CUDA (Compute Unified Device Architecture)

  • CUDA 是 NVIDIA 推出的并行计算平台和编程模型,它允许开发者使用 C、C++ 等语言编写程序,并在 NVIDIA GPU 上运行。
  • CUDA 提供了一系列库和工具,包括编译器、调试器和性能分析器,方便开发者进行 GPU 加速开发。
  • 许多 NVIDIA 的开发库都是基于 CUDA 构建的。

cuBLAS (CUDA Basic Linear Algebra Subprograms)

  • cuBLAS 库是 CUDA 平台上的基本线性代数子程序库,提供了高效的矩阵和向量运算函数。
  • 它针对 NVIDIA GPU 进行了优化,可以显著加速线性代数计算,广泛应用于科学计算、机器学习等领域。

cuDNN (CUDA Deep Neural Network library)

  • cuDNN 库是 CUDA 平台上的深度神经网络库,提供了各种深度学习算法的实现,包括卷积神经网络 (CNN)、循环神经网络 (RNN) 等。
  • cuDNN 库可以加速深度学习模型的训练和推理过程,是深度学习开发者必备的工具。

cuSPARSE (CUDA Sparse Matrix Library)

  • 用途: cuSPARSE 库专门用于处理稀疏矩阵运算。稀疏矩阵是指矩阵中绝大多数元素为零的矩阵。由于存储和计算所有元素会浪费大量资源,因此稀疏矩阵通常采用特殊的数据结构进行存储和计算。
  • 特点: cuSPARSE 库提供了针对 NVIDIA GPU 优化的稀疏矩阵运算函数,例如稀疏矩阵向量乘法、稀疏矩阵分解等。它可以显著加速涉及稀疏矩阵的计算,广泛应用于科学计算、机器学习等领域。

cuFFT (CUDA Fast Fourier Transform library)

  • cuFFT 库是 CUDA 平台上的快速傅里叶变换库,提供了高效的傅里叶变换算法实现。
  • 它广泛应用于信号处理、图像处理等领域。

cuTLASS (CUDA Templates for Linear Algebra Subroutines)

CUTLASS是 NVIDIA 开发的一个开源 CUDA C++ 模板库,用于在 NVIDIA GPU 上实现高性能的矩阵乘法 (GEMM) 和相关计算。它提供了一系列高度优化的模板化函数,可以帮助开发者轻松地构建定制化的线性代数运算,从而充分利用 GPU 的性能。

特点

高性能: CUTLASS 库经过精心设计和优化,可以充分利用 NVIDIA GPU 的硬件特性,例如 Tensor Cores 和 Warp-Level Matrix Multiply-Accumulate (WMMA) 指令,从而实现卓越的性能。

灵活性: CUTLASS 库提供了丰富的模板化参数,可以根据不同的需求定制各种线性代数运算,例如矩阵乘法、卷积、归约等。

可扩展性: CUTLASS 库的设计具有良好的可扩展性,可以方便地添加新的运算和优化策略。
易用性: CUTLASS 库提供了清晰的文档和示例代码,方便开发者学习和使用。

TensorRT

  • TensorRT 是 NVIDIA 推出的高性能深度学习推理引擎,可以优化深度学习模型,并在 NVIDIA GPU 上高效部署。
  • 它可以提高深度学习推理速度,降低延迟,适用于生产环境。

NPP (NVIDIA Performance Primitives)

  • NPP 库提供了一系列高性能的图像和信号处理函数,包括图像滤波、颜色转换、直方图计算等。
  • 它可以加速图像处理和计算机视觉应用的开发。

DeepStream

  • DeepStream 是 NVIDIA 推出的用于构建 AI 视频分析应用的 SDK。
  • 它集成了各种硬件加速的插件,可以实现高效的视频解码、目标检测、跟踪等功能。

NCCL (NVIDIA Collective Communications Library)

  • 用途: NCCL 库用于多 GPU 通信。在多 GPU 并行计算中,不同的 GPU 之间需要进行数据交换和通信。NCCL 库提供了一系列高效的通信函数,用于在多个 GPU 之间传输数据。
  • 特点: NCCL 库针对 NVIDIA GPU 进行了优化,可以实现快速、高效的多 GPU 通信。它支持各种通信模式,例如点对点通信、广播、归约等。NCCL 库是构建多 GPU 并行应用的重要工具,广泛应用于深度学习、高性能计算等领域。

nvGRAPH (NVIDIA Graph Analytics Library)

  • 用途: nvGRAPH 库用于图分析。图是一种由节点和边组成的数据结构,用于表示各种关系和网络。图分析涉及对图结构进行各种计算和分析,例如最短路径计算、社区发现等。
  • 特点: nvGRAPH 库提供了在 NVIDIA GPU 上执行图分析的函数,包括各种图算法的实现。它可以加速大规模图数据的处理和分析,广泛应用于社交网络分析、推荐系统等领域。

OptiX (NVIDIA OptiX Ray Tracing Engine)

  • 用途: OptiX 库用于光线追踪。光线追踪是一种计算机图形学技术,用于模拟光线在场景中的传播和反射,从而生成逼真的图像。
  • 特点: OptiX 库提供了一个可编程的光线追踪引擎,允许开发者自定义光线追踪算法。它利用 NVIDIA GPU 的并行计算能力,可以实现高性能的光线追踪渲染。OptiX 库广泛应用于电影制作、游戏开发等领域。

PhysX (NVIDIA PhysX Engine)

  • 用途: PhysX 库用于物理模拟。物理模拟是指通过计算机模拟物理世界的运动和相互作用,例如刚体动力学、流体动力学等。
  • 特点: PhysX 库提供了一系列物理模拟算法的实现,可以在 NVIDIA GPU 上进行加速计算。它可以用于创建逼真的物理效果,广泛应用于游戏开发、虚拟现实等领域。

DLSS(Deep Learning Super Sampling / 大力水手)

DLSS 是一种由 NVIDIA 开发的 AI 渲染技术,它利用深度学习神经网络来提高游戏和应用程序的帧率,同时保持图像质量接近原生分辨率。简单来说,DLSS 可以在较低的分辨率下渲染游戏,然后通过 AI 将图像放大到更高的分辨率,从而在不损失太多画质的情况下提高性能。

原理

DLSS 的核心是一个经过大量游戏数据训练的深度学习模型。这个模型可以识别图像中的各种特征,例如边缘、纹理等,然后利用这些特征来预测在高分辨率下应该是什么样的图像。DLSS 首先在较低的分辨率下渲染游戏,然后将渲染结果输入到深度学习模型中。模型会对图像进行处理,将其放大到更高的分辨率,并填充缺失的细节。最后,DLSS 输出的图像会比原生分辨率下的图像更清晰、更流畅。

优势

  • 提高帧率: DLSS 可以在不降低画质的情况下显著提高游戏帧率,让玩家可以更流畅地体验游戏。
  • 提升画质: 在某些情况下,DLSS 甚至可以提供比原生分辨率更好的画质,因为它可以更准确地重建图像细节。
  • 降低 GPU 负载: DLSS 可以在较低的分辨率下渲染游戏,从而降低 GPU 的负载,让 GPU 可以更专注于处理其他任务。

可以看到 NVIDIA基于自己的硬件 实现了各种应用生态的开发库,覆盖了各种应用领域,包括深度学习加速、图像处理、视频处理等,也展示了其深厚的技术积累,为开发者提供了丰富的工具和函数,得以利用 GPU 加速,实现更高性能应用的开发。

参考