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をアプリケーションと一緒にパッケージ化するのは開発者の責任です。モジュールコマンドがLD_LIBRARY_PATHまたはPATH変数を変更している可能性があるため、LDDはlibcudart.so.4を検出しません。ビルド後の手順を追加して、必要な.soをアプリケーションディレクトリにコピーすることをお勧めします。

CUDA ToolkitディレクトリのルートにあるEULA.txtの添付ファイルAには、再頒布可能ソフトウェアがリストされています。これには、libcudart.so(およびファイル名にバージョン番号情報が埋め込まれているバリエーション)が含まれます。これには、libcufft、libcublas、...も含まれます。

于 2013-02-15T01:07:08.770 に答える