我最近买了一台 HP ZBook Firefly 14 G10 A。它是旧款 Thinkpad 的继任者,配备 Intel UHD GPU,但对于我的使用情况来说,速度有点慢。但它可以在 darktable 中顺利运行 OpenCL。两款产品都在 Wayland 上运行 Kubuntu 23.10。
我的系统目前有 16GB DDR5 RAM,时钟速度为 5600 Mhz(很快将升级到 32GB),Ryzen 7 Pro 7840HS,有 8 个 Zen 4 核心。GPU 是内置的 Radeon 780M RDNA3 GPU。在 UEFI 固件设置中,我为 VRAM 选择了“游戏优化”。这款设备真的让我很惊讶。它在较低设置下以 30-40 FPS 的速度在 FHD 中运行 XP12,这令人印象深刻,因为这只是移动 iGPU。
我刚刚在 darktable 中编辑了一些 RAW 文件,对 CPU 占用率过高感到疑惑。因此,我查看了“处理”设置,结果震惊地发现 OpenCL 未启用,并且呈灰色。
通过在互联网上搜索此问题,我找到了命令“darktable-cltest”,它返回以下内容:
0,0179 [dt_get_sysresource_level] switched to 1 as `default'
0,0180 total mem: 13740MB
0,0180 mipmap cache: 1717MB
0,0180 available mem: 6870MB
0,0180 singlebuff: 107MB
0,0180 OpenCL tune mem: OFF
0,0180 OpenCL pinned: OFF
[opencl_init] opencl related configuration options:
[opencl_init] opencl: ON
[opencl_init] opencl_scheduling_profile: 'default'
[opencl_init] opencl_library: 'default path'
[opencl_init] opencl_device_priority: '*/!0,*/*/*/!0,*'
[opencl_init] opencl_mandatory_timeout: 400
[opencl_init] opencl library 'libOpenCL' found on your system and loaded
[opencl_init] found 4 platforms
[opencl_init] platform 2 is not FULL_PROFILE
[opencl_init] no devices found for Mesa/X.org (vendor) - rusticl (name)
[opencl_init] found 2 devices
[dt_opencl_device_init]
DEVICE: 0: 'AMD Radeon Graphics (gfx1103_r1, LLVM 15.0.7, DRM 3.54, 6.5.0-14-generic)'
PLATFORM NAME & VENDOR: Clover, Mesa
CANONICAL NAME: cloveramdradeongraphics
DRIVER VERSION: 23.2.1-1ubuntu3.1
DEVICE VERSION: OpenCL 1.1 Mesa 23.2.1-1ubuntu3.1
DEVICE_TYPE: GPU
*** insufficient device version ***
[dt_opencl_device_init]
DEVICE: 1: 'AMD Ryzen 7 PRO 7840HS w/ Radeon 780M Graphics '
PLATFORM NAME & VENDOR: Intel(R) OpenCL, Intel(R) Corporation
CANONICAL NAME: intelropenclamdryzen7pro7840hswradeon780mgraphics
DRIVER VERSION: 2023.16.12.0.12_195853.xmain-hotfix
DEVICE VERSION: OpenCL 3.0 (Build 0)
DEVICE_TYPE: CPU
GLOBAL MEM SIZE: 13741 MB
MAX MEM ALLOC: 6870 MB
MAX IMAGE SIZE: 16384 x 16384
MAX WORK GROUP SIZE: 8192
MAX WORK ITEM DIMENSIONS: 3
MAX WORK ITEM SIZES: [ 8192 8192 8192 ]
ASYNC PIXELPIPE: NO
PINNED MEMORY TRANSFER: NO
MEMORY TUNING: NO
FORCED HEADROOM: 400
AVOID ATOMICS: NO
MICRO NAP: 1000
ROUNDUP WIDTH: 16
ROUNDUP HEIGHT: 16
CHECK EVENT HANDLES: 128
TILING ADVANTAGE: 0.000
DEFAULT DEVICE: NO
*** marked as disabled ***
[opencl_init] no suitable devices found.
[opencl_init] FINALLY: opencl is NOT AVAILABLE and NOT ENABLED.
好的,它告诉我它确实找到了理论上相关的设备,其中一个是我的 GPU,另一个似乎是 CPU 上的软件渲染器。两者都被评估为不合格,但为什么呢?当然,第二个“设备”并不是真正的设备,也许使用 COU 软件渲染 OpenCL 不会带来明显的性能提升。
但是 GPU 呢?GPU 上打印的信息太稀疏了,这让我很困扰。缺失了太多信息。
我的意思是我既没有新奇的硬件,也没有新奇的操作系统。如果我一个人遇到这个问题,那真是太奇怪了。到目前为止,Ryzen APU 上的 OpenCL 有什么问题?我们需要什么软件包?