【问题标题】:OpenCL Client Side RequirementsOpenCL 客户端要求
【发布时间】:2012-03-23 20:39:07
【问题描述】:

我使用 AMD SDK v2.5 和 ATI Catalyst 驱动程序在我的计算机上实施了一个项目,因为我有一个 ATI HD5570 显卡。

我希望我的可执行文件在不同的平台上运行。 我希望能够检查是否可以在我的可执行文件运行的配置中找到可用的 OpenCL 平台。 当然配置也可以有Nvidia显卡。

我在互联网上进行了搜索,但找不到我的问题的最终答案。我完全迷失了。有没有众所周知的部署安装客户端驱动程序的方法?是否有一种稳健合理且组织良好的方法来满足所有这些需求? OpenCL 是不是太乱了?

感谢和问候,

编辑: 总之,

我想为客户端计算机提供 1) 我的可执行文件 2) 任何必要的文件和 DLL,并且我想尽量减少这些支持文件。那么有没有办法让客户端计算机在不安装 SDK 的情况下运行我的代码? (客户端计算机可能有来自不同供应商的 GPU 设备)

编辑 2:

客户端的要求/安装是否取决于开发人员使用的 SDK?如果没有,为什么我的客户会收到 getplatformID 错误,即使他为他的 nvidia gpu 安装了最新的驱动程序?

编辑 3:

如果我的客户想要运行在不同计算机上开发的 OpenCL .exe(并且可能使用不同的供应商),他应该怎么做?

【问题讨论】:

    标签: driver opencl


    【解决方案1】:

    如果您在一个系统上安装了多个版本的 OpenCL,您将看到多个 平台。

    调用 clGetPlatformIDs 以获取平台数量。计数将大于 1。

    再次调用 clGetPlatformIDs 获取 id 列表。

    调用 clGetPlatformInfo 获取各个平台的信息。

    接下来决定使用哪个平台,然后获取设备信息和属性。 然后在选定的平台和设备组合上建立 OpenCL 上下文和队列并运行内核。

    这是如何以及为什么起作用的?有关 ICD 扩展的详细信息,请参阅 Khronos 网站

    http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt

    【讨论】:

    • 在我的电脑上,我可以确保我已经准备好所有的 dll 等。我已经完成了上述所有操作,并且可以使代码在我的计算机上运行。我不能做的是让它在另一台计算机上运行。 getplatformID 在不同的配置上返回错误。我在问如何确保客户端/其他计算机使用他/她自己的 opencl 兼容平台运行我的代码。我在问我应该向拥有不同供应商的 gpu 单元的客户提供哪些文件/dll。
    • 我想为客户端计算机提供 1) 我的可执行文件 2) 任何必要的文件和 DLL,并且我想尽量减少这些支持文件。那么有没有办法让客户端计算机在不安装 SDK 的情况下运行我的代码?
    【解决方案2】:

    恕我直言,您需要了解您计划运行的客户端计算机的硬件详细信息,没有通用的 OpenCL.dll 或 atiocl.dll/atiocl64.dll nvcuda.dll,您可以将其与应用程序一起打包并希望一切正常。

    即使您只运行 CPU 而不是 GPU,您也需要供应商提供的 OpenCL.dll(openCL 运行时)在您尝试进行 clGetPlatformIDs... 或类似调用之前存在于客户端计算机中。

    HTH

    【讨论】:

    • 好的,但是例如,是否有一种或多或少通用的方法来告诉客户端要安装什么?就像“如果您使用的是 nvidia gpu,请安装 x 驱动程序和 y 包,如果您使用的是 amd gpu,请安装 z 驱动程序和 t 包”。客户端是否必须安装任何 SDK?客户端必须安装的必要驱动程序/软件包是否取决于我使用的 SDK?就像如果我用 AMD SDK 开发代码,有 Nvidia 驱动程序的客户端必须安装 x,但如果我使用 NVidia 的 SDK,客户端应该安装 y...?
    • @user1286187:我认为 MulticoreWare Inc 工具可以解决您试图解决的问题,请查看他们的网站:multicorewareinc.com/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多