【发布时间】:2015-12-07 23:31:04
【问题描述】:
我有一个正在使用的 CPU 库(独立于 ICA 的组件分析)。我需要将我的项目转换为 CUDA,但我似乎没有找到 CUDA 的库。是否可以轻松转换库并在 CUDA 中使用,还是我必须自己重写库?
谢谢。
【问题讨论】:
我有一个正在使用的 CPU 库(独立于 ICA 的组件分析)。我需要将我的项目转换为 CUDA,但我似乎没有找到 CUDA 的库。是否可以轻松转换库并在 CUDA 中使用,还是我必须自己重写库?
谢谢。
【问题讨论】:
您将不得不修改该库。这可能很容易,也可能不会。 (我不知道,因为我不知道那个图书馆里有什么。)
NVIDIA 提供 OpenACC 编译器here。
有许多可用的库使用 CUDA 在 GPU 上执行计算:https://developer.nvidia.com/gpu-accelerated-libraries
我建议使用Thrust,因为它与 CUDA SDK 捆绑在一起。
【讨论】:
我建议研究 OpenACC。如果您的代码对 GPU 足够友好(存储顺序、高并行任务粒度),您应该能够非常快速地进行转换。如果您已经有 OpenMP 指令,您基本上可以在其中添加 OpenACC 内核指令,对其进行测试,然后分析您的数据移动,并且您可能需要手动指定 GPU 数据区域以避免过多的复制操作。
【讨论】: