4/07/2013

cudaGetDeviceCount returned 38

i35Gの少ない資源(48コア)でより多くの結果を残そうと、CUIでの運用へと変更しました。
具体的な作業は、以下の通り。
sudo gedit /etc/default/grub
変更前:GRUB_CMDLINE_LINUX_DEFAULT="splash quiet"

変更後:GRUB_CMDLINE_LINUX_DEFAULT="text"

若干の性能向上も見られました。(OSを11.10から12.04へと変更した影響もあるかもしれません。)



[Matrix Multiply CUBLAS] - Starting...
GPU Device 0: "GeForce GT 520" with compute capability 2.1

MatrixA(320,640), MatrixB(320,640), MatrixC(320,640)
Computing result using CUBLAS...done.
Performance= 63.83 GFlop/s, Time= 2.054 msec, Size= 131072000 Ops
Computing result using host CPU...done.
Comparing CUBLAS Matrix Multiply with CPU results: OK

上記の変更以降、OS再起動などを行うと、"cudaGetDeviceCount returned 38"と表示されてサンプルアプリが動作しなくなりました。
先人のお知恵を拝借して、以下のスクリプトを利用してデバイスファイル作成することで解決。


#!/bin/bash
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi



0 件のコメント:

コメントを投稿