0

CUDA 编程指南指出:

the driver API is backward compatible, meaning that applications, plug-ins, and libraries (including the C runtime) compiled against a particular version of the driver API will continue to work on subsequent device driver releases

我的理解是,如果我的代码是在 CUDA4 上编译的,那么二进制文件将在 CUDA5 上运行。然而,事实证明,在 CUDA5 上运行 CUDA5 编译的二进制文件会导致:

error while loading shared libraries: libcudart.so.4: cannot open shared object file: No such file or directory

请注意,我使用 Linux 中的“模块”工具在不同的 cuda 版本之间切换,即

module load cuda4
compile
module unload cuda4
module load cuda5
run
4

1 回答 1

2

将 libcudart.so.4 与应用程序打包是开发人员的责任。module 命令可能会更改您的 LD_LIBRARY_PATH 或 PATH 变量,因此 LDD 找不到 libcudart.so.4。我建议您添加一个后期构建步骤以将所需的 .so 复制到您的应用程序目录中。

CUDA Toolkit 目录根目录的 EULA.txt 中的附件 A 列出了可再发行软件。这包括 libcudart.so(以及在文件名中嵌入了版本号信息的变体)。这还包括 libcufft、libcublas、...

于 2013-02-15T01:07:08.770 回答