32位GPU和64位CPU OpenCL?

32位GPU和64位CPU OpenCL?,opencl,Opencl,我已经在一个dll中创建了我的OpenCL代码,我正在加载到我的应用程序中。 现在,对于我的64位应用程序来说,调用getPlatformIds会导致崩溃。 然而,Dependency Walker显示所有内容都是64位的,没有错误。 但同样的32位应用程序工作得很好。 我的GPU是否可能无法执行64位任务? 但是C:/Windows/System32/OpenCL.dll也是64位的,所以我的硬件可能还可以吗 我如何确定是什么原因导致了这次事故?hushhh。。。。 问题终于解决了……: Mi

我已经在一个dll中创建了我的OpenCL代码,我正在加载到我的应用程序中。 现在,对于我的64位应用程序来说,调用getPlatformIds会导致崩溃。 然而,Dependency Walker显示所有内容都是64位的,没有错误。 但同样的32位应用程序工作得很好。 我的GPU是否可能无法执行64位任务? 但是C:/Windows/System32/OpenCL.dll也是64位的,所以我的硬件可能还可以吗

我如何确定是什么原因导致了这次事故?

hushhh。。。。 问题终于解决了……:

MinGW 64位编译器似乎存在某些链接器问题。 解决方案是链接libopencl.a文件而不是OpenCL.dll来构建64位应用程序

虽然构建32位应用程序不需要此功能,也就是说,您可以链接到OpenCL.dll


现在只要有人能修好

它是如何崩溃的?是否引发异常,或OpenCL函数返回错误代码?我们需要先知道这些,然后才能提供帮助。这是一个分段错误,所以我没有收到任何错误代码。你的GPU“位”与此无关。出于某种原因,您可能正在调用32位代码,或者您正在使用的任何OpenCL实现都已损坏。虽然我使用的是OpenCL 1.1头,因为我的GPU只有1.1版本的驱动程序,但崩溃是否可能是因为我使用的是APP SDK v2.9,即OpenCL 1.2?但是为什么它只会在64位时崩溃呢?我找到了这个通用问题的解决方案…: