【发布时间】:2014-07-07 07:26:27
【问题描述】:
我有不止一个 GPU,并希望在它们上执行我的内核。是否有可以动态调度/管理 GPU 资源的 API 或软件?为程序利用所有可用 GPU 的资源。 一个可以定期报告可用资源的实用程序,我的程序将向 GPU 启动尽可能多的线程。
其次,我使用 Windows+ Visual Studio 进行开发。我读过 Linux 支持 CUDA。我需要对我的程序进行哪些更改?
【问题讨论】:
-
AFAIK 没有开箱即用的跨 GPU 调度库。您必须自己实施。
-
如果您一次只回答一个问题,Stackoverflow 的效果会更好。关于 Linux 支持,假设您的 CPU 代码是跨平台的,您的 GPU 代码应该没问题;主要问题是设置您的构建环境(使用 Eclipse 之类的 IDE 或使用 Makefiles)。选择哪个是一个非常广泛的问题(对于 SO 来说太宽泛了),但是一些互联网搜索应该可以帮助你(这是一个通用问题,与 CUDA GPU 无关)。您可以查看 CUDA 示例(随工具包分发)以获取灵感。
-
感谢您的建议。我以后会分开问题。我的 CPU 代码已经在 Windows7 + Visual C++ 中运行。因此,我继续使用这个平台进行开发。 .
-
更改当前 GPU 就像使用 cudaSetDevice 一样简单。也许玩一下它会让你得出结论,你不需要这样的工具。
-
我知道 cudaSetDevice() 会改变当前设备,我可以根据选择使用第一个或第二个设备。当我有一个 4/8 GPU 的机架时,你会推荐同样的东西吗?