我正在使用 Magick.NET 对图像进行去斑处理。相对较小的图像(1000*1500 像素)大约需要 1-2 秒。我读到 ImageMagick 使用 OpenCL 来加速一些操作,去斑就是其中之一。所以,我想知道为什么最近的显卡(GTX 960)会这么慢。
是否有启用 OpenCL 的 Magick.NET 设置?
我正在使用 Magick.NET 对图像进行去斑处理。相对较小的图像(1000*1500 像素)大约需要 1-2 秒。我读到 ImageMagick 使用 OpenCL 来加速一些操作,去斑就是其中之一。所以,我想知道为什么最近的显卡(GTX 960)会这么慢。
是否有启用 OpenCL 的 Magick.NET 设置?
您可以通过设置启用或禁用 OpenCL OpenCL.IsEnabled
。第一次使用 OpenCL 操作时,将运行基准测试以确定使用 GPU 还是 CPU 更好。基准写在以下文件中:%LOCALAPPDATA%\ImageMagick\ImagemagickOpenCLDeviceProfile.xml
. 这个基准的一个例子是:
<devices>
<device name="CPU" score="4.914"/>
<device platform="AMD Accelerated Parallel Processing" score="0.165" vendor="Advanced Micro Devices, Inc." name="Ellesmere" version="2117.14 (VM)" maxClockFrequency="1266" maxComputeUnits="36" />
<device platform="AMD Accelerated Parallel Processing" score="1.326" vendor="Advanced Micro Devices, Inc." name="Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz" version="2117.14 (sse2,avx)" maxClockFrequency="3998" maxComputeUnits="8" />
</devices>
得分最低的设备获胜,当可以在算法中使用 OpenCL 时将使用该设备。
基准测试可能已经在您的机器上运行并确定 CPU 速度更快。这意味着即使启用了 OpenCL,也会使用 CPU。