0
這聽起來很奇怪,但情況是,在將CUDA4升級到CUDA5後,我發現自己的內核運行得更快,但cublas函數(例如cublasDgemm)變慢。此外,cublasDgemm似乎在版本5中調用了一些岩漿東西。我可以導入「cublas」的版本4,而同時導入版本-5的「cudart」庫嗎?
所以,我想知道我是否可以導入版本4的「cublas」,而導入版本-5的「cudart」庫。作爲一個簡單的試用,我有一個代碼(mycode.cc):
#include <iostream>
#include <stdio.h>
#include <cublas.h>
#include <cublas_v2.h>
using namespace std;
int main()
{
int ver;
cudaRuntimeGetVersion(&ver);
cout<<"cudart version: "<<ver<<endl;
cublasHandle_t hdl;
cublasCreate(&hdl);
cublasGetVersion(hdl, &ver);
cout<<"cublas version: "<<ver<<endl;
}
,並試圖:
g++ -I /opt/cuda/include/ -L /opt/cuda/lib64/ -lcudart -I /opt/cuda-5.0/include/ -L /opt/cuda-5.0/lib64/ -lcublas 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
感謝您的任何建議。
有在運行時verisoning和你不能混建在運行時運行時或庫。所以,不,這不會工作。 – talonmies 2013-02-12 21:21:16
另外爲什麼包含* both *'cublas.h'和'cublas_v2.h'?您應該選擇一個API並僅使用它... – talonmies 2013-02-12 21:33:31
@talonmies感謝提醒。我記得當我最初提到cublas4.0手冊時,cutlas_v2.h中包含了一些新功能,但我們仍然需要包含cutlas.h以獲取一些基本功能。無論如何,這是值得雙重檢查。 – 2013-02-12 22:07:59