我刚刚用 JCUDA(在 Eclipse 上)开发了我的第一个程序,我想在其他没有我用来开发它的 nvidia-driver 和编译器的机器上执行它。
如何仅将可执行文件导出到另一台机器并在不重新编译代码的情况下执行它?
任何帮助将不胜感激
我刚刚用 JCUDA(在 Eclipse 上)开发了我的第一个程序,我想在其他没有我用来开发它的 nvidia-driver 和编译器的机器上执行它。
如何仅将可执行文件导出到另一台机器并在不重新编译代码的情况下执行它?
任何帮助将不胜感激
(对不起,如果您期望分步手册,这可能无法完全回答您的问题。我会考虑在这里做一些实验,并可能扩展此答案或在网站上添加信息)
对于驱动程序 API,目标系统上的 CUDA 版本必须至少是相应 JCuda 版本的版本 - 否则,将根本不支持较新的 CUDA 功能。
关于运行时库,引用CUDA FAQ:
问:分发我的 CUDA 应用程序需要什么?
使用驱动 API 的应用程序只需要 CUDA 驱动程序库(Windows 下的“nvcuda.dll”),它包含在标准 NVIDIA 驱动程序安装中。
使用运行时 API 的应用程序还需要运行时库(Windows 下的“cudart.dll”),它包含在 CUDA 工具包中。根据 CUDA 工具包中包含的最终用户许可协议的条款,允许将此库与您的应用程序一起分发。
因此,有疑问,您可能会将用于编译应用程序的“cudart.dll”包含到分发包中。
较新版本的 CUDA 还支持针对运行时 DLL 的静态链接,但这(还没有?)为 JCuda 运行时库完成。