c# - 使用 Magick.NET 启用 OpenCL

标签 c# .net imagemagick opencl magick.net

我正在使用 Magick.NET 对图像进行去斑处理。相对较小的图像(1000*1500 像素)需要大约 1-2 秒。我读到 ImageMagick 使用 OpenCL 来加速某些操作,去斑就是其中之一。所以,我想知道为什么最近的显卡 (GTX 960) 速度这么慢。

是否有启用 OpenCL 的 Magick.NET 设置?

最佳答案

您可以通过设置 OpenCL.IsEnabled 来启用或禁用 OpenCL。第一次使用 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。

关于c# - 使用 Magick.NET 启用 OpenCL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42050790/

相关文章:

c# - MVVM 模式中的去抖动事件/命令

c# - 使用 GhostScript 将 pdf 转换为图像 - 如何引用 gsdll32.dll?

php - 如何在 PHP 中优化图像?

python - Popen Windows 中的“^' is ignored by Python - how to escape ' ^”字符?

c# - 如果 MVVM 模型继承扩展到所有选项卡,为什么 Treeview 会扩展?

c# - datagrid鼠标双击事件wpf

c# - 在 WinPhone 中使用 PCL 中的 System.ComponentModel.DataAnnotations 就像 "microsoft bcl portability pack"一样?

.net - 是否可以使用 Monodevelop 构建可移植类库?

c# - 哪个更适合多核硬件?多线程或异步方法

php - 在 PHP 中创建基于边缘检测的图像