我可以为“导入”导入版本4吗;库布拉斯“;鉴于导入第5版中的;“cudart”;同时去图书馆?

我可以为“导入”导入版本4吗;库布拉斯“;鉴于导入第5版中的;“cudart”;同时去图书馆?,cuda,cublas,Cuda,Cublas,这听起来可能有点奇怪,但情况是,在将CUDA4升级到CUDA5之后,我发现我自己的内核运行得更快,但cublas函数(例如cublasDgemm)变得更慢。此外,cublasDgemm似乎在版本5中调用了一些magma的东西 因此,我想知道是否可以为“cublas”导入版本4,而为“cudart”库导入版本5。作为一个简单的试验,我有一个代码(mycode.cc): 我的系统有一个“模块”设置,我尝试了“模块加载cuda4”和“模块加载cuda5”。有趣的是,它在“模块加载cuda4”时编译,然

这听起来可能有点奇怪,但情况是,在将CUDA4升级到CUDA5之后,我发现我自己的内核运行得更快,但cublas函数(例如cublasDgemm)变得更慢。此外,cublasDgemm似乎在版本5中调用了一些magma的东西

因此,我想知道是否可以为“cublas”导入版本4,而为“cudart”库导入版本5。作为一个简单的试验,我有一个代码(mycode.cc):

我的系统有一个“模块”设置,我尝试了“模块加载cuda4”和“模块加载cuda5”。有趣的是,它在“模块加载cuda4”时编译,然后报告:

cudart version: 4010
cublas version: 4010
这不是我想要的cudart。此外,当我“模块加载cuda5”时,它仍然编译,但运行excutable失败,原因是:

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

感谢您的建议。

运行时中有验证功能,您不能混合使用运行时版本,也不能在不同的运行时版本上构建库。因此,不,这不起作用,因为CUBLAS 4.2需要CUDA 4.2运行时库,不能与CUDA 5.0一起使用


[此答案作为社区wiki答案从评论中添加,以将问题从未回答列表中删除]

运行时中存在验证,您不能混合运行时或在运行时上构建的库。所以,不,这是行不通的。还有为什么要同时包括
cublas.h
cublas\u v2.h
?您应该选择一个API并仅使用它…@talonmies感谢您的提醒。我还记得当我最初提到cublas4.0手册时,cutlas_v2.h中包含了一些新功能,但我们仍然需要在一些基本功能中包含cutlas.h。无论如何,这是值得仔细检查的。@Talonmes尽管这是不可能的,但你对我在帖子中指出的为什么cublas5比cublas4慢以及内部不同有什么评论吗?没有,除此之外我没有任何评论:如果你发现了你认为的cublas5的性能退化,制作复制案例并向NVIDIA提交错误报告。否则,我看不出这其中有多少堆栈溢出问题。。。。
cudart version: 4010
cublas version: 4010
./a.out: error while loading shared libraries: libcudart.so.4: cannot open shared object file: No such file or directory