写 kernel 的语言
- CUDA C++:最底层、最原生,控制力最强,但代码也最繁琐
- Triton:Python 风格写 GPU kernel
- TileLang:强调 tile-based 编程,底层建立在 TVM 上
- CuTe DSL:NVIDIA CUTLASS 体系里的 Python DSL
- cuTile:NVIDIA 的 tile-based 并行编程模型及其 Python DSL
推理框架
- SGLang:偏高性能服务化推理,比较适合复杂生成控制和长上下文场景
- vLLM:偏通用高吞吐推理引擎,最大特点是内存利用率高、吞吐高
- TensorRT-LLM:偏 NVIDIA 生态下的极致性能优化
- llama.cpp:偏轻量、易部署、硬件适配广,既适合本地也能做服务化
- Ollama:本地启动简单、命令行和 API 友好
编译器
- LLVM:通用编译基础设施
- MLIR:LLVM 体系里的多层 IR 框架,适合做领域专用编译器
- TVM:面向机器学习的编译框架。强项是把模型/算子编译到不同硬件
- Triton Compiler:Triton 自带的编译器
- nvcc:NVIDIA 的 CUDA 编译驱动
- CUDA Tile IR:NVIDIA 新的 tile-based IR
- tileiras:对应的 Tile IR 编译器 / optimizing assembler
NVIDIA CUDA 生态
- 开发环境 / SDK:CUDA Toolkit
- 基础库:cuBLAS、cuFFT、cuSPARSE、cuFFT、cuRAND(成品库,直接调)
- 深度学习库:cuDNN
- 多 GPU 通信库:NCCL
- 高性能模板库 / 内核构建库:CUTLASS(模板抽象库,自己配参数就可以用)
- 编译工具:nvcc
- 分析与调试工具:Nsight Systems、Nsight Compute
- 推理框架 / 推理优化:TensorRT、TensorRT-LLM