NVIDIA AI 软件生态完整学习笔记

NVIDIA AI 软件生态完整学习笔记

一、先建立整体认识

NVIDIA 不只是做 GPU。

围绕 GPU,NVIDIA 已经建立了一套比较完整的 AI 软件生态,覆盖:

  • GPU 底层计算
  • 深度学习算子
  • 模型训练
  • 模型转换
  • 推理优化
  • 推理服务
  • 视频流分析
  • 大模型推理
  • Jetson 边缘部署
  • 性能分析
  • 多 GPU 通信
  • 机器人、语音、医疗等行业应用

因此,学习 NVIDIA 技术时,不能把:

  • TensorRT
  • DeepStream
  • TAO
  • CUDA
  • Triton

看成几个互不相关的软件。

它们实际上处于不同层级。

可以先记住下面这条主线:

text 复制代码
AI 应用
   ↓
DeepStream / Triton / NIM / Isaac / Riva
   ↓
TensorRT / TensorRT-LLM
   ↓
cuDNN / cuBLAS / CUDA Libraries
   ↓
CUDA
   ↓
NVIDIA Driver
   ↓
NVIDIA GPU

训练侧则是:

text 复制代码
数据
 ↓
PyTorch / TensorFlow / TAO / NeMo
 ↓
训练得到模型
 ↓
ONNX 等中间格式
 ↓
TensorRT / TensorRT-LLM
 ↓
Triton / DeepStream / 自己的应用
 ↓
GPU

所以 NVIDIA 软件生态本质上可以理解成:

从"怎么使用 GPU",一直解决到"怎么把 AI 模型部署成完整生产系统"。


二、NVIDIA AI 技术栈分层

可以把整个体系大致分为 9 层。

text 复制代码
第 9 层:行业应用
DeepStream / Isaac / Riva / Holoscan / NIM

第 8 层:推理服务
Triton Inference Server

第 7 层:推理优化
TensorRT / TensorRT-LLM

第 6 层:模型开发
PyTorch / TensorFlow / TAO / NeMo

第 5 层:模型交换
ONNX

第 4 层:GPU 加速库
cuDNN / cuBLAS / NCCL / CV-CUDA / DALI

第 3 层:GPU 编程平台
CUDA

第 2 层:驱动与系统环境
NVIDIA Driver / JetPack / Container Toolkit

第 1 层:硬件
RTX / Jetson / L4 / A100 / H100 / B 系列等

另外还有两套横向工具:

text 复制代码
性能分析:
Nsight Systems
Nsight Compute

软件和模型分发:
NGC

三、CUDA:整个 NVIDIA 软件生态的地基

1. CUDA 是什么

CUDA 全称:

text 复制代码
Compute Unified Device Architecture

CUDA 是 NVIDIA 提供的一套:

GPU 通用并行计算平台和编程模型。

没有 CUDA,大多数 NVIDIA GPU 上的 AI 加速都无法实现。


四、为什么需要 CUDA

普通程序主要运行在:

text 复制代码
CPU

但是深度学习里面存在大量并行计算:

text 复制代码
矩阵乘法
卷积
Attention
向量计算
图像处理

GPU 非常擅长这种大量、规则、重复的并行运算。

于是:

text 复制代码
程序
 ↓
CUDA
 ↓
GPU

CUDA 提供了程序控制 GPU 的能力。


五、CUDA 中需要掌握的核心概念

如果以后做 AI 推理优化,建议至少理解:

text 复制代码
CPU / Host

GPU / Device

CUDA Context

CUDA Kernel

Thread

Block

Grid

Warp

CUDA Stream

CUDA Event

Global Memory

Shared Memory

Register

Host Memory

Device Memory

Pinned Memory

Unified Memory

以及常见过程:

text 复制代码
CPU Memory
 ↓
H2D
 ↓
GPU Memory
 ↓
CUDA Kernel
 ↓
GPU Memory
 ↓
D2H
 ↓
CPU Memory

其中:

text 复制代码
H2D = Host To Device
D2H = Device To Host

以后优化 TensorRT 性能时,经常会看到:

text 复制代码
cudaMalloc

cudaMemcpy

cudaMemcpyAsync

cudaStreamCreate

cudaStreamSynchronize

cudaEvent

CUDA Graph

六、CUDA Stream

CUDA Stream 是非常重要的概念。

默认情况下可以理解为:

text 复制代码
任务1
 ↓
任务2
 ↓
任务3

串行执行。

而多个 Stream 可以实现:

text 复制代码
Stream 0:
H2D → Inference → D2H

Stream 1:
     H2D → Inference → D2H

从而产生并发和流水线。

因此在高性能推理中经常会出现:

text 复制代码
异步推理
多 Stream
双 Buffer
Pipeline

这些本质上都与 CUDA Stream 有关系。


七、cuBLAS:GPU 矩阵计算库

cuBLAS:

text 复制代码
CUDA Basic Linear Algebra Subprograms

它主要负责:

text 复制代码
矩阵乘法
矩阵运算
向量运算
GEMM

最经典的是:

text 复制代码
C = A × B

深度学习里面大量计算最后都可以转化成矩阵乘法。

例如:

text 复制代码
Linear
MLP
Transformer
Attention
Fully Connected

因此:

text 复制代码
Transformer
 ↓
矩阵乘法
 ↓
cuBLAS
 ↓
CUDA
 ↓
GPU

八、cuBLASLt

cuBLASLt 是更加灵活、高性能的矩阵乘法接口。

它支持:

text 复制代码
不同数据类型

不同 Layout

Bias

Activation

Fusion

Tensor Core

多种 GEMM Algorithm

很多现代深度学习框架、TensorRT 等会利用这类底层库选择更优计算方案。


九、cuDNN:深度学习算子库

cuDNN 全称:

text 复制代码
CUDA Deep Neural Network Library

它是 NVIDIA 专门针对深度学习开发的 GPU 算子库。

里面包含大量优化后的:

text 复制代码
Convolution

Pooling

Activation

Normalization

Softmax

Attention

RNN

Tensor Operation

因此 PyTorch 执行:

python 复制代码
y = conv(x)

实际可能是:

text 复制代码
PyTorch
 ↓
cuDNN
 ↓
CUDA Kernel
 ↓
GPU

十、CUDA 和 cuDNN 的关系

注意:

text 复制代码
CUDA ≠ cuDNN

CUDA 是底层 GPU 计算平台。

cuDNN 是建立在 CUDA 之上的深度学习高性能库。

关系:

text 复制代码
PyTorch

   ↓

cuDNN / cuBLAS

   ↓

CUDA

   ↓

GPU

十一、TensorRT:NVIDIA 推理优化核心

TensorRT 是 NVIDIA AI 部署生态中最重要的工具之一。

它解决的问题是:

怎么让训练好的神经网络模型,在 NVIDIA GPU 上进行更快、更省显存、更高吞吐的推理。


十二、TensorRT 不负责训练

TensorRT 一般不是用来训练模型的。

典型流程:

text 复制代码
PyTorch
 ↓
训练
 ↓
.pt
 ↓
ONNX
 ↓
TensorRT Builder
 ↓
TensorRT Engine
 ↓
TensorRT Runtime
 ↓
GPU

因此:

text 复制代码
PyTorch = 模型开发和训练

ONNX = 模型表达 / 交换

TensorRT = 模型推理优化

CUDA = GPU 计算平台

十三、TensorRT 的两个核心阶段

可以简单分为:

Build 阶段

text 复制代码
模型
 ↓
解析
 ↓
构建计算图
 ↓
图优化
 ↓
Tactic Selection
 ↓
精度选择
 ↓
生成 Engine

最终得到:

text 复制代码
TensorRT Engine

Runtime 阶段

运行时主要是:

text 复制代码
加载 Engine
 ↓
创建 Execution Context
 ↓
准备 Input / Output Buffer
 ↓
H2D
 ↓
enqueue
 ↓
GPU 推理
 ↓
D2H

十四、TensorRT 为什么快

TensorRT 并不是简单地"调用 GPU"。

它会进行大量优化。

主要包括:

1. Layer Fusion

例如:

text 复制代码
Conv
 ↓
BatchNorm
 ↓
ReLU

可能融合成:

text 复制代码
Conv + BN + ReLU

减少:

text 复制代码
Kernel Launch
Memory Read
Memory Write

2. Precision Calibration

支持不同精度:

text 复制代码
FP32
FP16
BF16
FP8
INT8
INT4

例如:

text 复制代码
FP32

↓

FP16

可以:

text 复制代码
减少显存

提高吞吐

使用 Tensor Core

3. Tactic Selection

同一个操作可能有很多种实现。

例如:

text 复制代码
Conv

可能有:

text 复制代码
Algorithm A
Algorithm B
Algorithm C
Algorithm D

TensorRT Build 阶段会测试或者选择更适合当前:

text 复制代码
GPU

Tensor Shape

Precision

的实现。

这种实现策略通常被称为:

text 复制代码
Tactic

4. Kernel Auto-Tuning

根据:

text 复制代码
GPU 架构
Tensor Shape
Batch Size
数据类型

选择合适 Kernel。


5. Memory Optimization

TensorRT 会尝试:

text 复制代码
复用内存

减少中间 Tensor

优化 Workspace

减少数据搬运

十五、TensorRT Plugin

如果模型里面存在 TensorRT 不支持的算子:

text 复制代码
Custom Op

可以自己实现:

text 复制代码
TensorRT Plugin

例如:

text 复制代码
特殊 Decode

特殊 NMS

自定义 Attention

特殊采样算子

因此高级 TensorRT 工程师经常需要:

text 复制代码
C++

CUDA

TensorRT Plugin

一起掌握。


十六、ONNX:模型交换格式

ONNX 不属于 NVIDIA。

但它和 NVIDIA 推理生态关系非常密切。

ONNX 可以理解为:

一种通用的神经网络计算图表示。

例如:

text 复制代码
PyTorch
 ↓
ONNX
 ↓
TensorRT

也可以:

text 复制代码
PyTorch
 ↓
ONNX
 ↓
ONNX Runtime

所以 ONNX 是:

text 复制代码
模型训练框架
      ↓
统一中间模型表示
      ↓
推理框架

中间的桥梁。


十七、DeepStream:视频 AI Pipeline 框架

TensorRT 主要解决:

一个模型怎么跑快。

DeepStream 主要解决:

摄像头、视频解码、模型推理、跟踪、业务输出怎么组成完整实时视频系统。

这是两者最重要的区别。


十八、DeepStream 的典型应用

例如高速公路:

text 复制代码
RTSP Camera × 16
 ↓
视频解码
 ↓
Batch
 ↓
YOLO
 ↓
车辆检测
 ↓
目标跟踪
 ↓
车型识别
 ↓
车牌识别
 ↓
业务规则
 ↓
Kafka / MQTT
 ↓
后端服务器

如果所有东西自己写,需要处理:

text 复制代码
RTSP

FFmpeg / GStreamer

NVDEC

视频 Buffer

GPU Memory

Batch

TensorRT

Tracker

Multi Stream

线程同步

消息队列

DeepStream 帮你封装了大量能力。


十九、DeepStream 建立在 GStreamer 之上

GStreamer 是一个多媒体 Pipeline 框架。

它的核心思想:

text 复制代码
Source
 ↓
Plugin
 ↓
Plugin
 ↓
Plugin
 ↓
Sink

例如:

text 复制代码
RTSP

↓

Decoder

↓

Resize

↓

Inference

↓

Tracker

↓

OSD

↓

Display

DeepStream 本质上:

在 GStreamer 上增加大量 NVIDIA AI 和 GPU 加速插件。


二十、DeepStream 常见组件

需要慢慢认识这些:

text 复制代码
nvurisrcbin

nvv4l2decoder

nvstreammux

nvinfer

nvinferserver

nvtracker

nvdsosd

nvmsgconv

nvmsgbroker

二十一、nvinfer

这是 DeepStream 中非常重要的插件。

主要负责:

text 复制代码
模型加载
 ↓
TensorRT
 ↓
Inference

因此:

text 复制代码
DeepStream
 ↓
nvinfer
 ↓
TensorRT
 ↓
CUDA
 ↓
GPU

二十二、DeepStream 与 TensorRT 的本质区别

记住:

text 复制代码
TensorRT

解决:

模型怎么跑快

而:

text 复制代码
DeepStream

解决:

视频 AI 系统怎么组成完整 Pipeline

两者关系:

text 复制代码
DeepStream

   ↓

TensorRT

   ↓

CUDA

DeepStream 可以调用 TensorRT,但 TensorRT 并不依赖 DeepStream。


二十三、TAO Toolkit

TAO 是 NVIDIA 提供的模型训练和模型定制工具。

TAO 主要目标:

让用户利用 NVIDIA 提供的模型、预训练模型和训练工具,更快速完成迁移学习、微调和模型定制。


二十四、TAO 主要负责什么

例如:

text 复制代码
数据
 ↓
预训练模型
 ↓
Fine-tuning
 ↓
Evaluation
 ↓
Pruning
 ↓
Quantization
 ↓
Export

适合:

text 复制代码
Detection

Classification

Segmentation

Pose

OCR

Embedding

等任务。


二十五、TAO 与 TensorRT 的关系

TAO:

text 复制代码
训练 / Fine-tuning

TensorRT:

text 复制代码
部署 / 推理优化

例如:

text 复制代码
TAO
 ↓
训练
 ↓
Export
 ↓
ONNX
 ↓
TensorRT
 ↓
Engine

二十六、TAO 与 DeepStream 的关系

完整流程可能是:

text 复制代码
数据
 ↓
TAO
 ↓
训练模型
 ↓
ONNX
 ↓
TensorRT
 ↓
DeepStream
 ↓
摄像头实时分析

因此:

text 复制代码
TAO
 =
模型开发

TensorRT
 =
模型优化

DeepStream
 =
视频系统

二十七、Triton Inference Server

这是服务器模型部署非常重要的 NVIDIA 工具。

Triton 解决的问题:

怎么把 AI 模型作为稳定、高吞吐的推理服务部署出去。

例如:

text 复制代码
Client
 ↓
HTTP / gRPC
 ↓
Triton
 ↓
TensorRT
 ↓
GPU

二十八、Triton 与 FastAPI 的区别

FastAPI 是:

text 复制代码
Web Framework

主要负责:

text 复制代码
HTTP API

业务逻辑

鉴权

数据库

请求解析

Web 服务

Triton 则是:

text 复制代码
Inference Server

主要负责:

text 复制代码
Model Loading

GPU Scheduling

Batching

Concurrency

Model Version

Inference Request

Metrics

因此:

text 复制代码
FastAPI ≠ Triton

二十九、FastAPI + Triton

实际项目完全可以:

text 复制代码
用户
 ↓
FastAPI
 ↓
业务逻辑
 ↓
Triton
 ↓
TensorRT
 ↓
GPU

FastAPI 负责:

text 复制代码
用户

数据库

业务流程

权限

Triton 负责:

text 复制代码
模型推理

Batching

GPU

这种架构在服务器 AI 部署里面很常见。


三十、Triton 的 Dynamic Batching

例如有:

text 复制代码
Request 1
Request 2
Request 3
Request 4

如果直接一个个执行:

text 复制代码
batch = 1

batch = 1

batch = 1

batch = 1

GPU 利用率可能比较低。

Triton 可以等待很短时间,把请求组成:

text 复制代码
Batch = 4

然后一起推理。

这叫:

text 复制代码
Dynamic Batching

可以提高:

text 复制代码
Throughput

三十一、Triton 的 Model Repository

Triton 一般使用:

text 复制代码
Model Repository

管理模型。

例如:

text 复制代码
models/

├── yolo/
│    ├── 1/
│    │   └── model.plan
│    └── config.pbtxt

├── segmentation/
│    └── ...

└── classification/
     └── ...

从而实现:

text 复制代码
多模型

模型版本

模型实例

管理。


三十二、JetPack

JetPack 是 Jetson 平台的软件开发环境。

如果使用:

text 复制代码
Jetson Nano

Jetson Xavier

Jetson Orin Nano

Jetson Orin NX

Jetson AGX Orin

都会经常接触 JetPack。


三十三、JetPack 包含什么

可以简单理解成:

text 复制代码
JetPack
 |
 ├── Jetson Linux
 ├── NVIDIA Driver
 ├── CUDA
 ├── cuDNN
 ├── TensorRT
 ├── Multimedia API
 └── 开发工具

因此:

text 复制代码
Jetson Hardware
 ↓
JetPack
 ↓
CUDA / TensorRT
 ↓
你的 AI 程序

三十四、JetPack 和 DeepStream

DeepStream 可以运行:

text 复制代码
数据中心 GPU

RTX GPU

Jetson

Jetson 上:

text 复制代码
JetPack

↓

DeepStream

↓

TensorRT

↓

CUDA

↓

Jetson GPU

三十五、CV-CUDA

CV-CUDA 是一个 GPU 图像处理库。

它主要解决:

模型虽然很快,但前处理和后处理太慢的问题。

例如:

text 复制代码
OpenCV

Resize

Normalize

Color Conversion

Crop

如果都放 CPU:

text 复制代码
CPU
 ↓
预处理
 ↓
H2D
 ↓
TensorRT

可能 CPU 成为瓶颈。


三十六、CV-CUDA 优化思路

可以:

text 复制代码
Image
 ↓
GPU
 ↓
CV-CUDA
 ↓
TensorRT
 ↓
GPU Postprocess

实现:

text 复制代码
GPU preprocessing
+
GPU inference
+
GPU postprocessing

尽量减少:

text 复制代码
CPU ↔ GPU

拷贝。


三十七、为什么 CV-CUDA 对部署工程师重要

推理系统优化最终看的不是:

text 复制代码
模型 inference time

而是:

text 复制代码
End-to-End Latency

例如:

text 复制代码
Decode       4ms

Preprocess   3ms

Inference    4ms

Postprocess  3ms

总耗时:

text 复制代码
14ms

你把 TensorRT:

text 复制代码
4ms

优化成:

text 复制代码
3ms

只提升了 1ms。

反而 GPU 化前后处理,可能收益更大。

所以高级部署一定要看:

text 复制代码
整个 Pipeline

而不是只看 TensorRT。


三十八、DALI

DALI:

text 复制代码
Data Loading Library

主要用于训练阶段。

解决:

text 复制代码
GPU 等 CPU 数据

的问题。

传统训练:

text 复制代码
Disk
 ↓
CPU Decode
 ↓
CPU Resize
 ↓
Augmentation
 ↓
GPU Training

如果 CPU 太慢:

text 复制代码
GPU 等待

DALI 可以把很多数据 Pipeline 进行高性能优化。


三十九、DALI 与 CV-CUDA 的区别

粗略理解:

text 复制代码
DALI
 ↓
训练数据 Pipeline

而:

text 复制代码
CV-CUDA
 ↓
CV 推理/图像处理 Pipeline

两者会存在功能交叉,但主要应用场景不同。


四十、NGC

NGC 可以理解为 NVIDIA 的:

text 复制代码
AI 软件仓库

里面包含:

text 复制代码
Docker Image

Model

SDK

Pretrained Model

Helm Chart

AI Framework

例如:

text 复制代码
TensorRT Container

PyTorch Container

Triton Container

DeepStream Container

经常会看到:

text 复制代码
nvcr.io

这就是 NVIDIA Container Registry。


四十一、NGC 的价值

假如自己搭:

text 复制代码
Ubuntu

CUDA

cuDNN

TensorRT

Python

PyTorch

版本很容易冲突。

NVIDIA 会在 NGC 提供:

text 复制代码
预配置 Docker

例如:

text 复制代码
PyTorch
+
CUDA
+
cuDNN
+
NCCL

已经匹配好版本。


四十二、NVIDIA Container Toolkit

如果 Docker 需要访问 NVIDIA GPU:

text 复制代码
Docker
 ↓
GPU

一般需要:

text 复制代码
NVIDIA Container Toolkit

然后:

bash 复制代码
docker run --gpus all ...

才能让容器访问 GPU。

因此服务器部署常见架构:

text 复制代码
Linux

↓

NVIDIA Driver

↓

Docker

↓

NVIDIA Container Toolkit

↓

PyTorch / TensorRT / Triton Container

↓

GPU

四十三、Nsight Systems

Nsight Systems 是:

系统级性能分析工具。

主要看:

text 复制代码
CPU

Thread

CUDA

Kernel

Memcpy

CUDA Stream

GPU Utilization

时间线。

例如:

text 复制代码
CPU preprocess

       H2D

          TensorRT

                 D2H

                    CPU postprocess

可以发现:

text 复制代码
GPU 是否空闲

CPU 是否成为瓶颈

Memcpy 是否过多

Stream 有没有并发

四十四、Nsight Compute

Nsight Compute 更底层。

它主要分析:

text 复制代码
CUDA Kernel

可以看到:

text 复制代码
SM Utilization

Occupancy

Warp

Tensor Core

Memory Throughput

Cache

Warp Stall

因此:

text 复制代码
Nsight Systems
 ↓
找出哪段慢
 ↓
Nsight Compute
 ↓
分析为什么慢

四十五、Nsight Systems 和 Nsight Compute 的区别

记住:

text 复制代码
Nsight Systems

看森林

而:

text 复制代码
Nsight Compute

看一棵树

例如:

Nsight Systems 发现:

text 复制代码
某 CUDA Kernel 占 20ms

然后 Nsight Compute 分析:

text 复制代码
为什么这个 Kernel 20ms

四十六、NCCL

NCCL:

text 复制代码
NVIDIA Collective Communications Library

主要解决:

text 复制代码
GPU ↔ GPU

通信。

特别是:

text 复制代码
多 GPU

分布式训练

大模型训练

大模型推理

四十七、NCCL 常见通信操作

包括:

text 复制代码
AllReduce

AllGather

ReduceScatter

Broadcast

Reduce

例如 PyTorch:

text 复制代码
DistributedDataParallel

底层 GPU 通信很多时候会调用 NCCL。


四十八、TensorRT-LLM

TensorRT 主要是通用深度学习推理优化。

随着 LLM 出现,NVIDIA 又提供:

text 复制代码
TensorRT-LLM

专门优化大模型推理。


四十九、为什么 LLM 需要专门推理框架

LLM 和传统 CNN 不太一样。

需要处理:

text 复制代码
KV Cache

Attention

Continuous Batching

Paged KV Cache

Tensor Parallel

Pipeline Parallel

Quantization

所以形成:

text 复制代码
LLM

 ↓

TensorRT-LLM

 ↓

CUDA / NCCL

 ↓

GPU

五十、普通 TensorRT 和 TensorRT-LLM

简单记:

text 复制代码
TensorRT

更偏通用模型 / CV / 通用 DL
text 复制代码
TensorRT-LLM

专门针对 LLM

不过两者底层技术存在大量联系。


五十一、NeMo

NeMo 是 NVIDIA 的生成式 AI / 大模型模型开发生态。

主要涉及:

text 复制代码
LLM

VLM

Speech

ASR

TTS

等模型的:

text 复制代码
Training

Fine-tuning

Post-training

Evaluation

可以粗略理解:

text 复制代码
视觉:

TAO
 ↓
TensorRT
text 复制代码
生成式 AI:

NeMo
 ↓
TensorRT-LLM

这只是帮助理解,不是绝对的技术边界。


五十二、NIM

NIM:

text 复制代码
NVIDIA Inference Microservices

它进一步把:

text 复制代码
模型

Runtime

TensorRT / TensorRT-LLM

Container

API

封装起来。

最终用户看到:

text 复制代码
HTTP API

因此 NIM 的定位可以理解为:

NVIDIA 提供的生产级 AI 推理微服务封装。


五十三、NIM 与 Triton 的区别

粗略理解:

text 复制代码
Triton

=
通用模型推理服务器

而:

text 复制代码
NIM

=
已经围绕特定模型封装好的 AI 微服务

NIM 更高层。

其内部可能使用:

text 复制代码
TensorRT

TensorRT-LLM

Triton

CUDA

等技术。


五十四、Riva

Riva 是 NVIDIA 的语音 AI SDK。

主要用于:

text 复制代码
ASR

TTS

Speech AI

例如:

text 复制代码
Microphone
 ↓
Riva
 ↓
ASR
 ↓
文字

或者:

text 复制代码
文本
 ↓
Riva
 ↓
TTS
 ↓
语音

五十五、Isaac

Isaac 是 NVIDIA 机器人生态。

涉及:

text 复制代码
机器人

视觉

导航

感知

仿真

强化学习

ROS

常见:

text 复制代码
Isaac Sim

Isaac ROS

其底层同样大量依赖:

text 复制代码
CUDA

TensorRT

GPU

五十六、Holoscan

Holoscan 更偏:

text 复制代码
传感器 AI

实时计算

医疗

工业

机器人

边缘 AI

例如:

text 复制代码
Camera / Sensor

↓

GPU Processing

↓

AI

↓

Real-Time Result

强调:

text 复制代码
Low Latency

Streaming

Sensor Processing

五十七、整个 NVIDIA AI 软件生态关系

最终建议记住下面这张图:

text 复制代码
                         应用层
┌────────────────────────────────────────────┐
│ DeepStream │ Riva │ Isaac │ Holoscan │ NIM│
└──────────────────────┬─────────────────────┘
                       │

                    服务层
┌────────────────────────────────────────────┐
│            Triton Inference Server         │
└──────────────────────┬─────────────────────┘
                       │

                   推理优化层
┌────────────────────────────────────────────┐
│ TensorRT                  TensorRT-LLM      │
└──────────────────────┬─────────────────────┘
                       │

                    模型层
┌────────────────────────────────────────────┐
│ PyTorch │ TensorFlow │ TAO │ NeMo         │
└──────────────────────┬─────────────────────┘
                       │

                  模型交换层
┌────────────────────────────────────────────┐
│                  ONNX                      │
└──────────────────────┬─────────────────────┘
                       │

                  GPU 加速库
┌────────────────────────────────────────────┐
│cuDNN│cuBLAS│NCCL│CV-CUDA│DALI│其他 CUDA 库│
└──────────────────────┬─────────────────────┘
                       │

                     CUDA
┌────────────────────────────────────────────┐
│ Kernel │ Stream │ Runtime │ Memory │ Graph │
└──────────────────────┬─────────────────────┘
                       │

                   Driver
                       │

                 NVIDIA GPU

注意:

ONNX 在实际软件层次中不一定严格位于训练层和 CUDA 库之间。

这里主要是帮助理解模型部署流程。


五十八、几个核心组件一句话区分

技术 一句话理解
CUDA NVIDIA GPU 编程和计算平台
cuBLAS GPU 矩阵计算库
cuDNN GPU 深度学习算子库
ONNX 模型交换格式
TensorRT NVIDIA GPU 推理优化框架
DeepStream 实时视频 AI Pipeline
TAO NVIDIA 模型训练和微调工具
Triton AI 模型推理服务器
JetPack Jetson 软件开发环境
CV-CUDA GPU 图像处理库
DALI 高性能训练数据 Pipeline
NGC NVIDIA AI 软件/容器/模型仓库
Nsight Systems 系统级性能分析
Nsight Compute CUDA Kernel 性能分析
NCCL 多 GPU 通信
TensorRT-LLM LLM 推理优化
NeMo LLM/VLM/Speech 模型开发
NIM AI 推理微服务
Riva Speech AI
Isaac Robotics AI
Holoscan Sensor / Real-Time AI

五十九、TensorRT、DeepStream、TAO、Triton 最核心区别

这是最需要熟练掌握的一组。

TAO

回答:

text 复制代码
模型怎么训练出来?

TensorRT

回答:

text 复制代码
模型怎么在 NVIDIA GPU 上跑得快?

Triton

回答:

text 复制代码
模型怎么稳定地提供服务器推理服务?

DeepStream

回答:

text 复制代码
模型怎么进入实时多路视频系统?

因此:

text 复制代码
TAO
 ↓
模型训练
 ↓
ONNX
 ↓
TensorRT
 ↓
高性能推理
 ↓
      ┌─────────────┐
      ↓             ↓
   Triton        DeepStream
      ↓             ↓
   API 服务       视频 AI

六十、真实项目 1:普通 YOLO 部署

text 复制代码
PyTorch

↓

YOLO.pt

↓

ONNX

↓

TensorRT

↓

Engine

↓

C++ / Python

↓

CUDA

↓

NVIDIA GPU

这是最基本 AI 部署流程。


六十一、真实项目 2:Jetson YOLO

text 复制代码
Jetson

↓

JetPack

↓

CUDA

↓

TensorRT

↓

YOLO Engine

↓

C++ Application

如果加摄像头:

text 复制代码
Camera

↓

GStreamer

↓

NVDEC

↓

TensorRT

↓

Result

六十二、真实项目 3:DeepStream 视频系统

例如 16 路高速公路摄像头:

text 复制代码
RTSP × 16

↓

NVDEC

↓

nvstreammux

↓

TensorRT YOLO

↓

nvtracker

↓

Vehicle Classification

↓

License Plate Recognition

↓

nvmsgbroker

↓

Kafka / MQTT

↓

Server

这里 DeepStream 价值巨大。


六十三、真实项目 4:服务器 AI API

传统:

text 复制代码
Client

↓

FastAPI

↓

Python

↓

PyTorch

↓

GPU

进阶:

text 复制代码
Client

↓

FastAPI

↓

Triton

↓

TensorRT

↓

CUDA

↓

GPU

其中:

text 复制代码
FastAPI

负责业务
text 复制代码
Triton

负责模型服务
text 复制代码
TensorRT

负责模型加速
text 复制代码
CUDA

负责 GPU 计算

六十四、真实项目 5:完整 CV 高性能 Pipeline

普通版本:

text 复制代码
Image

↓

OpenCV

↓

Resize

↓

Normalize

↓

H2D

↓

TensorRT

↓

D2H

↓

CPU NMS

高级版本:

text 复制代码
Image

↓

GPU Decode

↓

CV-CUDA

↓

TensorRT

↓

GPU NMS

↓

Result

核心目标:

text 复制代码
减少 CPU/GPU Copy

减少同步

增加并发

增加 GPU Pipeline

六十五、真实项目 6:大模型推理

text 复制代码
Qwen / Llama / DeepSeek

↓

TensorRT-LLM

↓

CUDA

↓

NCCL

↓

GPU × N

服务器:

text 复制代码
Client

↓

API

↓

Triton / NIM

↓

TensorRT-LLM

↓

GPU

六十六、整个 NVIDIA 生态最终解决的几个问题

实际上所有 NVIDIA 工具都围绕几个问题展开。

问题一

text 复制代码
GPU 怎么计算?

答案:

text 复制代码
CUDA

问题二

text 复制代码
矩阵和深度学习算子怎么快速计算?

答案:

text 复制代码
cuBLAS
cuDNN

问题三

text 复制代码
模型怎么跑快?

答案:

text 复制代码
TensorRT

问题四

text 复制代码
多个模型怎么提供服务?

答案:

text 复制代码
Triton

问题五

text 复制代码
几十路视频怎么实时 AI 分析?

答案:

text 复制代码
DeepStream

问题六

text 复制代码
模型怎么训练和 Fine-tune?

答案:

text 复制代码
TAO
NeMo

问题七

text 复制代码
怎么分析程序为什么慢?

答案:

text 复制代码
Nsight Systems
Nsight Compute

相关推荐
Capricorn19881 小时前
知芽 Notebook Skill 引用存在性校验与单元记忆破解幽灵引用危机
大数据·论文阅读·人工智能·论文笔记
有Li1 小时前
AI帮你做CT/MR分割,想分哪里分哪里
人工智能·学习·医学生
redreamSo1 小时前
想给产品加一个 AI 搜索,是上向量数据库还是用 MongoDB 就够了?
数据库·人工智能·mongodb
山铃1 小时前
Agent开发第1步:抽象模型接口 (Model Adapter)
人工智能
桃西西呀1 小时前
换个会话就失忆?拆开 Agent 记忆的 4 层与 4 个流派,附9个坑的自检清单
人工智能·llm·ai编程
山铃1 小时前
Agent开发第2步:定义工具抽象 (Tools)
人工智能
桃西西呀1 小时前
风控模型说自己 80% 准,却漏掉了 76% 该拦的人:一次把模型评估讲透
人工智能·机器学习·llm
山铃1 小时前
Agent开发第4步:定义 RunEvent
人工智能
鲜于言悠9051 小时前
2026 AI Agent完整学习路线:6个阶段,从入门到可接商业项目
人工智能