服务器相关:什么是 alios. centos. cuda. cuda tookit. gcc. cudann. pytorch.
1. AliOS
- 全称:AliOS(原名 YunOS)
- 开发者:阿里巴巴集团
- 类型:基于 Linux 的操作系统
- 用途:
- 最初是为智能手机开发的操作系统(对标 Android)。
- 后来转型为面向物联网(IoT) 和 智能汽车 的操作系统,例如 AliOS Things(用于嵌入式设备)。
- 特点:轻量、安全、支持云服务集成。
- 注意:不是主流服务器或桌面操作系统,和 CentOS、Ubuntu 等用途不同。
2. CentOS
- 全称:Community ENTerprise Operating System
- 类型:基于 Linux 的免费开源操作系统
- 背景:
- 原本是 Red Hat Enterprise Linux(RHEL)的社区克隆版,完全兼容 RHEL。
- 2020 年后,Red Hat 宣布 CentOS 停止传统版本更新,转向 CentOS Stream(一个滚动预览版,介于 Fedora 和 RHEL 之间)。
- 用途:
- 广泛用于服务器、云计算、Web 服务、数据库等企业级场景。
- 因其稳定性和免费特性,曾是很多开发者和公司的首选 Linux 发行版。
3. CUDA
- 全称:Compute Unified Device Architecture
- 开发者:NVIDIA
- 本质:一个并行计算平台和编程模型
- 用途:
- 允许开发者使用 NVIDIA GPU 进行通用计算(GPGPU),而不仅仅是图形渲染。
- 广泛应用于深度学习、科学计算、高性能计算(HPC)等领域。
- 关键点:
- 需要 NVIDIA 显卡支持(如 Tesla、A100、RTX 系列等)。
- 提供 C/C++ 扩展语法(如
__global__
函数)来编写 GPU 代码。
4. CUDA Toolkit
- 是什么:NVIDIA 提供的一套开发工具包
- 包含内容:
nvcc
:CUDA C/C++ 编译器- CUDA 运行时库(Runtime API)和驱动 API
- 调试和性能分析工具(如
nsight
,nvprof
) - 数学库(如 cuBLAS, cuFFT, cuSPARSE)
- 示例代码和文档
- 用途:用于开发和编译 CUDA 程序。
- 安装后:你的系统就可以编译和运行使用 GPU 加速的程序了。
5. GCC
- 全称:GNU Compiler Collection
- 开发者:GNU 项目(自由软件基金会)
- 用途:
- 是 Linux 系统中最常用的编译器套件。
- 支持多种编程语言:C、C++、Fortran、Go、Ada 等。
- 在 CUDA 中的作用:
- CUDA 编译器
nvcc
在编译主机(CPU)代码时,会调用 GCC 作为后端编译器。 - 因此,安装 CUDA Toolkit 时,需要确保系统中有兼容版本的 GCC(NVIDIA 对 GCC 版本有要求,比如 CUDA 12.x 通常支持 GCC ≤ 12)。
- CUDA 编译器
6. cuDNN
- 全称:CUDA Deep Neural Network library
- 开发者:NVIDIA
- 用途:
- 专为深度学习优化的 GPU 加速库。
- 提供高度优化的实现:卷积、池化、归一化、激活函数(如 ReLU)等。
- 重要性:
- 几乎所有主流深度学习框架(如 PyTorch、TensorFlow)都依赖 cuDNN 来加速训练和推理。
- 安装 PyTorch/TensorFlow 的 GPU 版本时,通常需要先安装 CUDA Toolkit 和 cuDNN。
💡 注意:cuDNN 不是开源的,需要在 NVIDIA 官网注册开发者账号后免费下载。
7. PyTorch
- 开发者:Meta(原 Facebook)AI 团队
- 类型:开源的深度学习框架
- 特点:
- 动态计算图(eager execution),调试友好。
- 支持 GPU 加速(通过 CUDA + cuDNN)。
- 广泛用于研究、教学和工业部署。
- 与 CUDA 的关系:
- PyTorch 的 GPU 版本会自动调用 CUDA 和 cuDNN 来加速张量运算。
- 安装时需选择匹配 CUDA 版本的 PyTorch(如
torch==2.3.0+cu121
表示支持 CUDA 12.1)。
它们之间的关系(简化流程):
CentOS(操作系统)
↓
安装 GCC(编译器)
↓
安装 NVIDIA 驱动 + CUDA Toolkit(GPU 计算平台)
↓
安装 cuDNN(深度学习加速库)
↓
安装 PyTorch(深度学习框架,自动调用 CUDA/cuDNN)
AliOS 则属于另一个生态(嵌入式/IoT),通常不用于深度学习开发。