トップ 新規 編集 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

CUDAチュートリアル

[プログラミング]

プレゼン資料作るよりwikiの方がいいじゃん?ということに気がついた@大島

CUDAチュートリアル

環境構築

何が必要?

OS

  • Windows or Linux or Soralis or FreeBSD
    • Windows(x86)とLinux(x86/x86-64)はSDKやToolkitがあるので実行も開発も可能だが、その他の環境はドライバしかないので開発は無理?実行すら怪しい???
  • 以下開発環境構築成功済みOSリスト
    • CentOS 5.0 i386

ドライバ

  • NVIDIAのある程度新しいドライバが必要
    • http://www.nvidia.com/の左上から
    • 現在ではyumなどでも比較的新しいドライバを導入可能。簡単。
    • 超最新GPUの場合は付属のドライバCDから導入するべきケースも
  • Windowsへの導入
    • インストーラで一発導入
  • Linuxへの導入
    • shスクリプトで一発導入
      • kernel-develやgccなどある程度の準備は必要

開発用ソフトウェア

  • CUDA ToolkitおよびCUDA SDKが必要
  • Linuxへの導入
    • スクリプトを実行しパスを通せば完了(環境構築例を参照)
    • 環境依存ながらある程度の準備は必要
  • Windowsへの導入
    • まだ試していない

環境構築例1

  • EndeavorMT8000 + GeForce8600GTS
  • CentOSのインストール
    • 起動時にirqpollを指定する必要があった
    • 初期パッケージ選択は適当なので忘れた
  • 一応yum update
    • 75個のパッケージが更新された
    • やや時間が掛かる上に必須ではない
  • 必要なパッケージを導入
    • 以下yumで導入
      • emacs(作業用), libXmu-devel, libXi-devel, libXext-devel
    • その他
  • CUDA ToolkitとCUDA SDKをインストール
    • 本家で公開されているスクリプトを実行する
      • Toolkit導入時の問い合わせ
Enter install path (default /usr/local/cuda, '/cuda' will be appended):
      • SDK導入時の問い合わせ
Enter install path (default ~/NVIDIA_CUDA_SDK): /opt/NVIDIA_CUDA_SDK ←ここだけ入力している
Enter CUDA install path (default /usr/local/cuda):
    • 今回は/opt/NVIDIA_CUDA_SDKに導入
    • 必要に応じてパスを通すなどの作業をする
      • 環境変数PATHに/usr/local/cuda/binを追加
      • /etc/ld.so.conf.d/cuda.confにlib.soのパス(/usr/local/cuda/lib)を書いてldconfig
  • その他
    • CUDAプログラムの実行前にrootでchmod 666 /dev/nvidia*をする必要がある。現時点では再起動のたびに必要かもしれないので何とかするべき。(実はちゃんと理解できていない。)
    • hpclabユーザでログインしてxhost +しておけば誰でもssh接続状態からCUDAが使えるようになる。

環境構築例2

外部サイトに記述しました。参考にしてください。

サンプルプログラムを触ってみる

プログラムを組んでみる

Windows環境でCUDAを利用するための手順(デバイスエミュレーションモード対応)

by 大島

外部の個人サイトに書きました。参考にしてください。

Nvidia ForumsにwindowsXPとVCでの構築方法もありました。ご参考にしてください。一番下の添付ファイルcuda.rulesを利用して、便利にコンパイルできます。

by 史

VM上のLinuxでCUDAを利用するための手順

by 大島

CentOS5に導入してみるテスト。以下メモ。

CUDA ToolkitやCUDA SDK自体は特に何か必要とすることはない。

試しに、/opt/NVIDIA_CUDA_SDK/project/clockを動かしてみることにする。

gccを入れ忘れていてコンパイル以前問題だった。yum install gcc-c++する。

-lGLで怒られた。yum install freeglut-develで一気に導入。

-lcutilで怒られた。/opt/NVIDIA_CUDA_SDK/commonでmakeしておく必要がある模様。

libtlshook.soが必要らしい。/etc/ld.so.conf.d/cuda.confに/usr/local/cuda/libを書いてldconfig、というのを忘れていたことに気がつき修正。makeが通る。

実行するものの

FATAL: Module nvidia not found.
NVIDIA: failed to load the NVIDIA kernel module.
There is no device supporting CUDA.

となる。当然だ。

/opt/NVIDIA_CUDA_SDK/common/common.mkのCOMMONFLAGSに-eviceemnuを追加。/opt/NVIDIA_CUDA_SDK/projects/clockに戻ってmake clean;make。改めて実行すると、

FATAL: Module nvidia not found.
NVIDIA: failed to load the NVIDIA kernel module.
Test PASSED
time = 6560000

Press ENTER to exit...

となり、どうやら実行できた模様。

その他

PCを再起動したらやることメモ

LinuxでCUDAを動かすためにはちょっとした準備が必要です。

Xの権限変更

CUDAの動作にglut/GLEWが必要になるが、これらはデフォルトではXにログインしていないと使えない。

hpclabでログインし、コンソール(GNOME端末)を起動して

$ xhost +

を実行することでこの問題は解決する。

# 権限緩すぎなので、もっと良い方法があればヨロシク

nvidiaデバイスの権限変更

/dev/nvidia* の権限が無いとCUDAが動かすことができない。すなわちデフォルトではrootしか使えないので権限を弄る必要がある。

$su -
(rootパスワードを入力)
#chmod o+rwx /dev/nvidia*

# 権限緩すぎなので、もっと良い方法があればヨロシク

汎用メモ

etc

環境構築報告・意見などご自由に

お名前: コメント:
cuda.rules[削除]

最終更新時間:2008年01月28日 22時15分29秒