我在基于 NVidia 的 OpenCL 架构上开发了一个 C++ 应用程序,并希望将其分发给最终用户。
不幸的是,使用 ATI 卡的用户似乎无法运行我的游戏,因为包含我的 OpenCL 代码的 dll 甚至无法加载(动态),而使用 NVidia 驱动程序的用户似乎能够加载我的 dll。
发布“可在任何地方运行”的基于 OpenCL 的应用程序时,推荐的“最佳实践”是什么?应用程序提供商是否可以插入所有 dll 以使所有用户都能使用该应用程序,或者来自不同 OpenCL 架构的用户是否被迫下载该架构的 OpenCL SDK?
非常感谢!
编辑:奇怪的是,通过将 NVCuda.dll 添加到我的构建中解决了丢失的 dll 依赖项。(想删除它!)然而,这里提供的答案对于构建可以在大多数平台上运行的 OpenCL 应用程序的“最佳实践”非常有用......