前回うまくいかなかった原因がわかった。
Brazosの設定時と違い、yumで拾ってこれるkernel sourceのバージョンが変わっていたからだ。
カーネルのバージョンが関わるものは、yumを信用せず直接rpmを取得すべきと学習した。
自分のインストールしたkernelと一致するバージョンのものを拾ってくれば解決する。
# uname -r
カーネルのバージョンを確認。
# yum install http://ftp1.scientificlinux.org/linux/scientific/6x/x86_64/os/Packages/kernel-devel-2.6.32-131.0.15.el6.x86_64.rpm
適切なカーネルソースをインストール。
以下の手順は前回までに試した方法でOK。
vendorsも忘れずに作る。
これを忘れるとOpenCLデバイスを認識できない。
# mkdir /etc/OpenCL
# mkdir /etc/OpenCL/vendors
# echo "libamdocl32.so" > /etc/OpenCL/vendors/amdocl32.icd
# echo "libamdocl64.so" > /etc/OpenCL/vendors/amdocl64.icd
AMDドライバの生成とインストールだが、gccやrpm-buildがなかったり、
カーネルソースのバージョンが違う場合でも見た目は生成が成功してしまうことに注意。
今まで何度もこのせいでハマってしまっている。
/usr/share/ati/fglrx-install.logにログが残されるのだが、
ドライバ生成時には生成成功みたいなメッセージしか絶対に残されない。
いざドライバをインストールすると、そのときになって初めてエラーがわかるというダメな仕様。
ログを見て失敗していた場合、同ディレクトリ以下にアンインストールスクリプトがあるのでこれを実効。
失敗時の例(カーネルソースのバージョンミスマッチ)
[Message] Kernel Module : Trying to install a precompiled kernel module.
[Message] Kernel Module : Precompiled kernel module version mismatched.
[Error] Kernel Module : Kernel module build environment not found - please consult readme.
[Reboot] Kernel Module : dracut
[Message] Driver : End of installation
アンインストールが成功したら、エラーが出ていた部分を修正して再生成・再インストールする。
あとは今まで書いたような内容に注意してやればきっとうまくいくはず。
ssh経由でGPUを叩く場合、runlevel 3にしてローカルでログイン・startxして、
sshからログイン後は$ export DISPLAY=:0とする必要がある。
ローカルでstartxしていないとGPUに繋げられないようだ。
このうち一つでも設定していないと強制的にCPU実行になってしまうので注意。
新学期
13 年前
0 件のコメント:
コメントを投稿