SDB:GPGPU
GPGPU = 图形处理器通用计算,指的是使用GPU进行通用计算。
前言
使用GPU进行计算可以带来巨大的速度提升 – 3倍、10倍、100倍,甚至更多。我们可以将现代GPU描述为许多(100 – 10000)相当简单的CPU集合,连接到非常快速的专用RAM。要使用这种能力,您需要支持某些计算标准的驱动程序 – OpenCL、CUDA、Vulkan,或其他标准。
您不需要OpenCL来进行桌面加速、Web浏览器和其他普通任务,您只需要3D驱动程序即可:OpenGL,有时是Vulkan。对于硬件加速,Firefox Webrender需要OpenGL 3.0,KDE需要OpenGL 3.1。
在安装了必要的驱动程序后,您可以在某些应用程序中获得GPU加速。例如,在更改了适当的设置后,您可以使用GPU加速Darktable或Blender。 此外,在安装中间件驱动程序后,您可以使用GPU加速归档程序(例如KDE Ark)。对于某些应用程序,您需要进行额外的调整,对于AMD,请阅读章节 SDB:AMD_GPGPU#Special_Cases 以获取详细信息。
可用显存的容量至关重要:通常1-2 GiB是一个最低要求,对于复杂的任务,您可能需要6 GiB或更多。您可以通过BIOS设置调整内置显卡的可用显存。
厂商
GPGPU有三个主要的厂商:Nvidia、AMD、Intel。
Nvidia
Nvidia占据了大约90%的GPGPU市场份额。虽然它支持OpenCL,但主要的工具是CUDA。要使用它,请卸载nouveau驱动程序,禁止它,安装Nvidia的专有驱动程序。您可以添加CUDA运行时以获得完全支持。有关Nvidia产品的通用信息 在这里。
对于驱动程序,Nvidia提供10年的主要支持和2年的维护支持。
AMD
AMD使用开放驱动程序并支持OpenCL、HIP、通过HIP翻译器CUDA、Vulkan和其他标准。有关AMD GPU产品的通用信息 在这里。有关AMD APU产品的通用信息 在那里。
阅读 SDB:AMD_GPGPU 页面以获取详细信息。
Intel
Intel使用开放驱动程序并支持OpenCL、oneAPI、SYCL、Vulkan和其他标准。它提供不错的支持级别。但Intel消费级显卡缺乏FP64支持 (链接1, 链接2)。有关Intel GPU产品的通用信息 在这里。
Biren
Huawei
Huawei Ascend 910B。来自中国的未知奇迹。
Moore Threads
Moore Threads MTT S4000。来自中国的未知奇迹。
为GPGPU专门分配GPU
这部分已移动 这里。
测试GPGPU
这里列出了一些有用的测试和实用程序,用于检查GPGPU(主要是OpenCL)功能。
- 您可以使用clinfo实用程序(来自Main仓库的clinfo包)检查支持的OpenCL扩展,使用clpeak实用程序(clpeak包)测量速度。
- 对于AMD,使用包 radeontop 监视GPU利用率。
- Luxmark, 下载页面。
- FAHBench。它在Leap 15.4及更早版本中运行良好,对于Leap 15.5要运行FAHBench-gui,请通过重命名为libstdc++.so.6-disabled来禁用tar归档文件中包含的库FAHBench_folder/lib/libstdc++.so.6。
- Indigo Bench.
- Blender 支持CPU、CUDA、OptiX(最适合Nvidia RTX)、AMD HIP(仅限Windows的HIP RT since 3.6,对于Linux使用Blender 4.0及更高版本)、Intel oneAPI(since 3.6的oneAPI RT)。测试文件和 比较 在 这里 (新闻),较新的版本 - 那里。检查运行Blender的 要求 这里。GPGPU有额外的要求:GPU渲染。要测试OpenCL,请使用版本2.x(在 旧版本 中选择)。Blender不支持Terascale芯片since 2.91,只需要GCN 1及更新版本才能运行(但是,可以使用软件模拟 - LLVMpipe)。对于Terascale 2 & 3,请尝试使用Blender 2.90(尽管不受支持,但它可能仍然有效)。
将CUDA和HIP转换为OpenCL和Level Zero - chipStar
ChipStar是一个用于将HIP/CUDA编译和运行在 SPIR-V 上,通过OpenCL或 Level Zero API的工具。ChipStar能够将HIP和CUDA应用程序移植到支持SPIR-V作为设备中间表示形式的平台。它支持OpenCL和Level Zero作为低级运行时替代方案。更多信息请访问 https://github.com/CHIP-SPV/chipStar。