0

奇妙に聞こえるかもしれませんが、CUDA4をCUDA5にアップグレードした後、自分のカーネルの実行速度は速くなりますが、cublas関数(cublasDgemmなど)の速度は遅くなります。また、cublasDgemmはバージョン5でいくつかのマグマのものを呼んでいるようです。

それで、「cublas」のバージョン4をインポートできるのに対し、「cudart」ライブラリのバージョン5をインポートできるかどうか疑問に思います。簡単な試用版として、私はコード(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」の両方を試しました。興味深いことに、「module load cuda4」のときにコンパイルされ、次のように報告されました。

cudart version: 4010
cublas version: 4010

それは私がcudartに望んでいたものではありません。さらに、「module load cuda5」を実行すると、コンパイルは完了しましたが、excutableの実行は次のように失敗しました。

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

提案をありがとう。

4

1 に答える 1