【问题标题】:OpenCL code to work with both AMD/Nvidia可与 AMD/Nvidia 一起使用的 OpenCL 代码
【发布时间】:2012-04-08 07:44:02
【问题描述】:

有人能告诉我们编译后是否有可能让 OpenCL 代码同时在 AMD 和 Nvidia 卡上工作,一般程序是什么? 我是否需要同时安装 OpenCL SDK(AMD/Nvidia)并使用“if”结构为每种情况(AMD 设备或 Nvidia 设备)制作不同的代码? 如果你能用一些头条新闻稍微澄清一下,将不胜感激。 谢谢。

【问题讨论】:

    标签: sdk opencl nvidia amd-processor


    【解决方案1】:

    是的,这是可能的,这是 OpenCL over CUDA 的目的(仅适用于 NVIDIA 硬件)。基本上,您在 C99 中编写代码编写内核,然后将其编译为中间的“制造商独立”代码。最后的代码将在运行时由您的卡(AMD 或 Nvidia)解释。 通常,您没有理由编写不同的卡特定代码既不使用不同的 SDK(但是……我在 Max OS 10.7 上,可能与其他环境不同)

    【讨论】:

    • 感谢弗拉维恩,所以如果我使用 OpenCL 和 AMD sdk 编译示例,它应该适用于 Nvidia 卡吗?还是我会遗漏什么?
    • AMD BLAS 和 FFT 库也可以在 NVIDIA 设备上运行,ArrayFire OpenCL 库也是如此。很方便!
    • 如果您正在寻找性能,您可能需要进行供应商特定的调整,对于 AMD,您可以通过内核分析器运行您的 openCL 内核并检查生成的中间语言以及将运行的 ISA 代码硬件。
    • @ocluser:您能澄清一下“进行特定于供应商的调整以获得性能”的意思吗?我是否可以不编写优化代码来获得性能(使用 OpenCL 并根据内核数量、任务大小等划分任务时)....实际上适用于 Nvidia/AMD 的代码?
    • continuing... 操作,NVIDIA/AMD 都提供性能/分析工具,它们会告诉您有关内核的不同信息,例如占用率、内存/缓冲区使用情况、kerenl 运行时、IL/PTX 视图、 ISA 代码等,在 GPU 生成中,针对前 AMD 5XXX 系列调整的不同调整机制在 AMD 7xxx 南岛卡中可能无法正常工作。所以恕我直言,如果您打算获得最大性能,则需要进行供应商特定的调整硬件。
    猜你喜欢
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2013-12-10
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    相关资源
    最近更新 更多