【问题标题】:32 bit GPU and 64 bit CPU OpenCL?32 位 GPU 和 64 位 CPU OpenCL?
【发布时间】: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


【解决方案1】:

嘘…… 问题终于解决了……:)

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

虽然为 32 位应用程序构建不需要这个,即您可以链接到 OpenCL.dll。

现在只有当有人可以修复this issue which has been open for past 4 years!

【讨论】:

    猜你喜欢
    • 2012-03-06
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2017-06-05
    • 1970-01-01
    相关资源
    最近更新 更多