部署OpenCL应用程序?

Coo*_*der 4 c++ opencl

我目前正在学习OpencL,并且发现它有点难以理解它是如何工作的.我正在使用MinGW编译器和ATI APP SDK.当我运行目标时,我收到错误消息

在此输入图像描述

我没有将任何OpenCL.dll放在与我的应用程序相同的文件夹中.现在在Windows上搜索一下我可以找到这个dll

C:/Windows/SysWOW64
C:/Windows/System32/DriverStore/...
C:/Windows/System32
C:/Program Files(x86)/AMD APP SDK /...
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我应该如何部署我的应用程序?我应该在我的应用程序中分发OpenCL.dll吗?

Dit*_*ter 5

反对意见:您永远不应该在您的应用程序中重新分发OpenCL.dll!它属于系统文件夹,只能由来自平台提供商(Apple,NVIDIA,AMD,Intel等)的OpenCL驱动程序安装.如果您的系统没有安装它,那么运行您自己的应用程序并不会使它运行得更好,因为您没有OpenCL平台可供查找.

  • 直接调用1.1 API并对1.2 API使用动态方法,然后就不会出现"未找到入口点"错误.在Windows上,这将是LoadLibrary/GetProcAddress. (2认同)
  • @Cool_Coder ICD ==可安装的客户端驱动程序。在OpenCL成立之初,每个供应商都有自己的OpenCL.dll,这使得在一台PC上同时拥有多个供应商变得很困难,但是我们已经过去了很长时间。位于system32中的OpenCL.dll应该是ICD加载器。每个供应商都注册自己的ICD,而ICD加载程序仅查找并报告所有这些信息。看看扩展规范以了解更多信息:[https://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt](https://www.khronos.org/registry/cl/extensions /khr/cl_khr_icd.txt) (2认同)