0

私は共有マシンを使用していて、ルートがありません。

私のコードは次のCUDAエラーで死にます

CUDA driver version is insufficient for CUDA runtime version

古いツールキット用のプログラムを作成したいと思います。商用アプリケーションは最新のツールキット(?)よりも前の何かをサポートして配布されているので、これは可能だと思います。

私はarch旗をいじってみましたが、成功しませんでした。

nvcc -arch=compute_13 fun.cu
nvcc -arch=compute_20 fun.cu

以前のツールキットバージョンにコンパイルするためのフラグは何ですか?私の場合、バージョン4ツールキットを持っていますが、ドライバーはバージョンのみを実行すると思います3

4

2 に答える 2

2

たとえば、CUDA4.xツールキットがCUDA3.xツールキットであるかのように動作するように指示するコマンドラインフラグまたは同様のオプションを認識していません。

また、ご存知のとおり、ツールキットの特定のバージョンには、特定のドライバーバージョン(またはそれ以降)が必要です。

1つのアプローチは、必要なツールキットを自分でインストールすることです。これにはroot権限は必要ありませんが、ユーザーディレクトリにある程度のディスク容量が必要になります。アーカイブから目的のツールキットを選択し、ユーザーディレクトリスペースのローカルディレクトリにインストールします。(ツールキットはインストール場所の入力を求めます。追加のツールキットインストールオプションを取得するには、次のようにします。sh <toolkit filename> --help)。ツールキットをローカルディレクトリ(例:/ home / user / cuda)にインストールしたら、PATHを変更して/ home / user / cuda / bin(/ usr / local / cuda / binなどの他のcudaディレクトリの前)を含めます。 )およびLD_LIBRARY_PATHに/ home / user / cuda/libおよび/home/ user / cuda / lib64(他のcuda libディレクトリの前)を含めます。これらを永続的にしたい場合は、.bashrcファイルを編集するか、同様のものを使用できます。アプローチ、ディストロ/シェルに応じて。これで、nvccコンパイルコマンドを通常どおりに入力できるようになります。cublasなどの特定のライブラリにリンクしている場合は、通常どおり-Lコンパイラ/リンカースイッチを使用して、ローカルディレクトリのcublasライブラリを指す必要があります。

ドライバーはこれの影響を受けません。また、cudaツールキットは/ usr / local/cudaなどのコミュニティの場所にインストールされません。PATHおよびLD_LIBRARY_PATH環境変数を元に戻す場合は、コミュニティの場所にインストールされているcudaツールキットを使用する以前の機能を復元する必要があります。

于 2012-11-27T23:48:56.033 に答える
1

まず、古いツールキットをダウンロードしてホームディレクトリにインストールする必要があります。

完了したら、次の操作を実行できます。

.bashrcにCUDADIR=path / to /cuda/を設定します

それができたら、Makefileを使用している場合は$(CUDADIR)/bin/nvcc、コンパイラとして使用でき$(CUDADIR)/lib64、ライブラリパスに$(CUDADIR)/includeはインクルードパスとして使用できます。

シェルスクリプトを使用している場合、またはコマンドラインでコンパイルしている場合は、などを使用$CUDADIR/bin/nvccします。

もう1つの方法は、.bashrcの次のように、$PATHの前に$CUDADIR/binを追加することです。

CUDADIR=/home/username/cuda
export PATH=$CUDADIR/bin:$PATH
export LD_LIBRARY_PATH=$CUDADIR/lib64:$LD_LIBRARY_PATH

システムが更新されたら、CUDADIRが指すパスを新しい場所に変更するだけで、他に何も変更する必要はありません。

-archフラグは、ツールキットのバージョンではなく、アーキテクチャを指定するためのものです。

于 2012-11-27T23:52:23.537 に答える