【发布时间】:2014-04-24 17:21:40
【问题描述】:
我在我的应用程序中加载的 dll 中创建了我的 OpenCL 代码。 现在对于我的 64 位应用程序,调用 getPlatformIds() 会崩溃。 但是 Dependency Walker 显示所有内容都是 64 位且没有错误。 但同样的 32 位应用程序运行良好。 我的 GPU 是否有可能无法执行 64 位任务? 但是 C:/Windows/System32/OpenCL.dll 也是 64 位的,所以可能我的硬件没问题?
如何确定可能导致崩溃的原因?
【问题讨论】:
-
它是如何崩溃的?是否抛出异常,或者从 OpenCL 函数返回错误代码?我们需要先了解这些,然后才能提供帮助。
-
这是一个分段错误,所以我没有收到任何错误代码。
-
您的 GPU 'bitness' 与此无关。出于某种原因,您可能正在调用 32 位代码,或者您使用的任何 OpenCL 实现都被破坏了。
-
虽然我使用的是 OpenCL 1.1 标头,因为我的 GPU 仅具有 1.1 版本的驱动程序,但崩溃可能是因为我使用的是 OpenCL 1.2 的 APP SDK v2.9 吗?但是为什么它只会在 64 位时崩溃呢?
-
我找到了解决这个通用问题的方法... :)
标签: opencl