# 常用 ## 1. **CUDA**(Compute Unified Device Architecture) * **开发者**:NVIDIA * **用途**:专门用于 NVIDIA GPU 的并行计算编程框架 * **特点**: * 只能用在 NVIDIA GPU 上 * 支持强大的 GPU 加速计算,广泛用于深度学习、科学计算、图形渲染等 * 丰富的软件生态(cuDNN、TensorRT 等) * 编程语言基于 C/C++ 扩展,易用性较好 --- ## 2. **OpenCL**(Open Computing Language) * **开发者**:Khronos Group * **用途**:跨平台、跨厂商的通用并行计算框架 * **特点**: * 支持 CPU、GPU、FPGA 等多种设备 * 跨平台,支持多种厂商(Intel、AMD、NVIDIA、ARM) * 编程语言基于 C99 风格的 C 语言扩展 * 适合异构计算,缺点是编程复杂度较高,性能调优较难 --- ## 3. **Vulkan** * **开发者**:Khronos Group * **用途**:跨平台的低开销高性能图形和计算 API * **特点**: * 主要用于高性能图形渲染,替代 OpenGL * 支持 GPU 计算(Compute Shaders) * 设计强调低 CPU 开销和多线程支持 * 跨平台支持 Windows、Linux、Android 等 * 编程复杂度较高,适合需要高性能渲染和计算的应用 --- ## 4. **Metal** * **开发者**:Apple * **用途**:Apple 生态系统(iOS、macOS)上的图形渲染和 GPU 计算框架 * **特点**: * 专为 Apple 设备设计和优化 * 支持图形渲染和通用计算 * 低开销、性能优异 * 编程语言多用 Objective-C / Swift,支持 Metal Shading Language * 只能用于 Apple 硬件平台 --- ## 简单对比表 | 技术 | 开发者 | 平台支持 | 主要用途 | 语言与接口 | 优点 | 缺点 | | ------ | ------- | ------------ | --------- | ----------------- | ------------- | -------------- | | CUDA | NVIDIA | 仅 NVIDIA GPU | 高性能并行计算 | CUDA C/C++ | 生态丰富,性能优异 | 只支持 NVIDIA GPU | | OpenCL | Khronos | 多厂商、多平台 | 通用异构并行计算 | C99 C-like | 跨平台,支持多种硬件 | 编程复杂,性能调优难 | | Vulkan | Khronos | 跨平台 | 图形渲染 + 计算 | C API | 低开销,多线程支持 | 学习曲线陡峭 | | Metal | Apple | Apple 设备 | 图形渲染 + 计算 | Objective-C/Swift | 性能优异,深度集成苹果生态 | 仅限 Apple 平台 |