CUDA
编辑CUDA,是Nvidia开发的一种编程接口(API),通过它程序部分可以由图形处理器(GPU)处理。 额外的计算能力以 GPU 的形式提供,在高度可并行化的程序流(高数据并行性)的情况下,GPU 通常比 CPU 的工作速度快得多。 CUDA主要用于科学技术计算。
技术细节
编辑图形处理器,仅用于图形计算,也可作为使用 CUDA API 的协处理器使用。 应用实例包括地震或地质问题的解决、电磁场的模拟或机器学习领域中神经网络的训练。 CUDA 在 SETI@home 项目中被用作伯克利网络计算开放基础设施 (BOINC) 的一部分。 通常,它只能在(除其他条件外)计算可以高度并行化的情况下有效使用。
CUDA 技术可用于“GeForce 8”系列的显卡和 Quadro FX 5600 的 Quadro 卡。Nvidia 的 Tesla 卡已针对高性能计算进行了优化,主要通过 CUDA 支持解决而且还有像 OpenCL 这样的开放标准。 有些甚至缺少显示器连接。
自从收购了Ageia的PhysX技术后,Nvidia就不断开发这项技术,并在CUDA上进行了重写。
Nvidia 于 2015 年 3 月发布了 CUDA 7.0 版。
Nvidia 于 2015 年 9 月发布了 CUDA 7.5 版本。
CUDA 8.0 版本从 2016 年 9 月开始可用,全面支持新的 Pascal 系列。
CUDA 9.0 版本从 12 月更新到 9.1,从 3 月更新到 9.2,从 2017 年 9 月开始可用,它完全支持新的 Volta 系列。 不再支持 FERMI。
CUDA 10 从 2018 年秋季开始支持图灵架构。
CUDA 11 完全支持当前的 Ampere 架构。 最小计算能力 3.5 仅支持部分 Kepler 卡。
程序
编辑程序员目前将 C 用于 CUDA。 还有编程语言 Perl、Python、Ruby、Java、Fortran 和 .NET 的包装器,以及与 MATLAB、Mathematica 和 R 的连接。Nvidia 使用优化的 C 编译器 Open64 创建了 CUDA。C++ 也可以使用,因为费米架构。
CUVID是一个用于解码视频的编程接口。
备选方案
编辑其他 GPGPU 解决方案示例:
- OpenCL 是由 Khronos Group 发起的开放标准,适用于所有显卡,并且适用于大多数操作系统。
- 同样由 Khronos Group 开发的开放式 Vulkan 标准也支持类似 OpenCL 的计算着色器。
- DirectCompute:Microsoft 的 GPGPU 接口,集成到 DirectX API 中
软件
编辑最早支持 CUDA 的程序之一是 folding@home 客户端,它成倍增加了生化计算的速度。 SETI@home 客户端于 2008 年 12 月 17 日紧随其后,将寻找外星生命的速度提高了 10 倍。 Nvidia 发布了 Badaboom 软件,这是一种视频转换器,转换视频的速度比 CPU 计算快 20 倍。 其他使用 CUDA 的程序是 TMPGEnc、Sorenson Squeeze 7、来自 CS4 的 Adobe Photoshop(此处加速了滤镜的使用)、来自 CS5.5 的 Adobe Premiere Pro 和 Mathematica 8+ 以及 Nvidia 软件 StyleGAN。
MSC/Nastran 2013+ 等仿真软件有时使用 CUDA 会xxx加速; 在大型模型上,GPU 内存太少可能会成为一个障碍。 OpenFoam 和 ANSYS 等其他xxx的 CFD 和 FEM 软件使用 CUDA 来加速计算。 由于在这些特殊的计算操作中 GPU 的效率比 CPU 更高,计算的功耗有时会降低。
处理器
编辑图形处理器 (GPU) 是具有特定于应用程序设计的处理器,因此 GPU 知道相当奇特的数据类型,例如具有定点的 9 位或 12 位,但通常没有 32、48、64 或 80 的寄存器宽度通用 CPU 和 FPU(等)通用的位。 因此,GPU 的指令集中通常不提供计算,例如根据 IEEE 754(64 位双精度)的精度,必须使用软件以相对复杂的方式进行模拟。 因此,GPU 特别适合计算位宽相对较小的数据类型。
Z截至目前(2010 年),xxx批制造商已经在生产扩展 GPU,除了 GPU 所需的数据类型外,还支持通用数据类型和操作,例如 B. 用于直接计算符合 IEEE 754 标准的结果。 作为目前xxx的制造商之一,Nvidia 提供了原生提供 32 位整数以及单精度和双精度浮点数据格式的 Fermi 代 GPU。
另一个缺点是与计算机架构的连接。对于当前的 GPU,这通常是通过 PCIe 进行的,与处理器的直接连接相比,会导致更糟糕(更高)的延迟时间和更低的 I/O 吞吐率。 因此,外包只对具有一定计算能力的功能才有价值——特别是如果 GPU 在指令集方面更适合这些任务(例如,对于大型矩阵)。
支持的 GPU
编辑GPU 和卡支持的 CUDA 版本层级。
CUDA-SDK 6.5 版最后一次支持 Tesla 微架构。CUDA-SDK 8.0 版最后一次支持 Fermi 微架构。 CUDA-SDK 10.2 版最后一次支持部分 Kepler 微架构。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/376463/