CUDA2.2リリース
CUDA 2.2が2009-05-07にリリースされたようなので、ちょっと出遅れましたが試してみました。
- http://forums.nvidia.com/index.php?showtopic=96303
- CUDA Toolkit 10.1 Update 1 Download | NVIDIA Developer
ちょっと悲しいのが、一週間以上過ぎた今でも日本のCUDA Zoneからはダウンロード出来ないということ。今回のリリースはC++対応しているとの噂なのでかなり重要だと思うのですが、担当の方はお仕事忙しいのでしょうか?
試したのは以下の通りです。
上記webサイトからファイルをもらってきます。linuxはrhel, suse, fedora, ubuntuと各種取り揃えられててうれしいです。こういうプロプラなやつってfedoraのみとか時々ありますので。ま、今の私はfedoraなので何も問題ありませんが。
まずtoolkitをインストールします。
sudo bash ./cudatoolkit_2.2_linux_64_fedora10.run
途中インストール先のディレクトリを尋ねられますが、変更せずにenterキーを押してdefault設定を使います。
Enter install path (default /usr/local/cuda, '/cuda' will be appended):
私は以前CUDA2.1をインストールしていたため、uninstallするか尋ねられるので、yesとしました。
A previous version of CUDA was found in /usr/local/cuda/bin Would you like to uninstall? (yes/no/abort): yes
次にsdkをインストールします。こちらは、ホームディレクトリにインストールするつもりなので、特にroot権限は使っていません。
bash ./cudasdk_2.2_linux.run
途中で先程と同様にインストール先のディレクトリを尋ねられますが、変更せずにenterキーを押してdefault設定を使います。
Enter install path (default ~/NVIDIA_CUDA_SDK):
その後toolkitのインストール先を尋ねられますが、defaultの場所にインストールしているので、enterキーを押してdefault設定を使います。
Enter CUDA install path (default /usr/local/cuda):
これでインストールは完了です。
バージョンを見てみるとこんな感じです。
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2009 NVIDIA Corporation Built on Thu_Apr__9_05:05:52_PDT_2009 Cuda compilation tools, release 2.2, V0.2.1221
早速sdkをコンパイルしてみます。$HOME/NVIDIA_CUDA_SDKに移動するとMakefileがあるので何も考えずにmakeします。
沢山警告がでつつもコンパイルはできるのですが、最後の方でコンパイルエラーとなってしまいました。
make[1]: ディレクトリ `/home/fedora/NVIDIA_CUDA_SDK/projects/simpleTextureDrv' に入ります simpleTextureDrv.cpp:61: 警告: deprecated conversion from string constant to ‘char*’ simpleTextureDrv.cpp:62: 警告: deprecated conversion from string constant to ‘char*’ /usr/include/features.h:359 から include されたファイル中, /usr/local/cuda/bin/../include/host_config.h:68 から, /usr/local/cuda/bin/../include/cuda_runtime.h:45 から,:0 から: /usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: そのようなファイルやディレクトリはありません make[1]: *** [data/simpleTexture_kernel.cubin] エラー 255 make[1]: ディレクトリ `/home/fedora/NVIDIA_CUDA_SDK/projects/simpleTextureDrv' から出ます make: *** [projects/simpleTextureDrv/Makefile.ph_build] エラー 2
/usr/include/gnu/stubs.hをみると確かにgnu/stubs-32.hをインクルードしてますが、その場所にはstubs-64.hはあってもstubs-32.hはありません。よく分からないので(stubs-64.hを見るとautomatically generatedとかかいてあるが誰が自動生成したのか不明)最初は気にしない方向で。
気を取り直してprojects/simpleCUBLASに移動してmakeします。
今度は何事もなく成功しましたので、さらに../../bin/linux/releaseに移動します。先程makeしたsimpleCUBLASの実行ファイルはここにできてますので、試しに実行してみます。
./simpleCUBLAS: error while loading shared libraries: libcudart.so.2: cannot open shared object file: No such file or directory
またもうまくいきません。 cudaのlibにパスが通ってないようなので、/etc/ld.so.conf.dにcuda.confと言う名前で以下のような内容のファイルを作ります。
/usr/local/cuda/lib
その後ldconfigでshared libraryのキャッシュを再構築します。
再度simpleCUBLASを実行するとめでたく成功です。
simpleCUBLAS test running.. Test PASSED Press ENTER to exit...