このコードを実行して GPU の健全性をテストしようとしています
from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time
vlen = 10 * 30 * 768 # 10 x #cores x # threads per core
iters = 1000
rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')
このエラーが発生しました:
mod.cu(941): 警告: 符号なし整数とゼロの無意味な比較
mod.cu(3001): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3004): 警告: 文字列からの変換リテラルから "char *" への変換は非推奨です
mod.cu(3006): 警告: 文字列リテラルから "char *" への変換は非推奨です
mod.cu(3009): 警告: 文字列リテラルから "char *" への変換は非推奨です
mod.cu(3011): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3014): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3017): 警告: 文字列リテラルから "char *" への変換は非推奨です
mod.cu(3020): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3022): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3025): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3027): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3030): 警告: 文字列リテラルから " への変換
mod.cu(3032): 警告: 文字列リテラルから "char *" への変換は推奨されませんmod.cu
(3035): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu (3038): 警告: 文字列リテラルから "char *" への変換は非推奨です
mod.cu(3041): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3043): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3046): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3048): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3051): 警告: 文字列リテラルから " への変換
mod.cu(941): 警告: 符号なし整数とゼロの無意味な比較
mod.cu(3001): 警告: 文字列リテラルから "char *" への変換は非推奨ですmod.cu
(3004): 警告: 文字列リテラルから "char *" への変換は非推奨です
mod.cu(3006): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3009): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3011): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3014): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3017): 警告: 文字列リテラルから " への変換
mod.cu(3020): 警告: 文字列リテラルから "char *" への変換は推奨されませんmod.cu
(3022): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu (3025): 警告: 文字列リテラルから "char *" への変換は非推奨です
mod.cu(3027): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3030): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3032): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3035): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3038): 警告: 文字列リテラルから " への変換
mod.cu(3041): 警告: 文字列リテラルから "char *" への変換は推奨されませんmod.cu
(3043): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu (3046): 警告: 文字列リテラルから "char *" への変換は非推奨です
mod.cu(3048): 警告: 文字列リテラルから "char *" への変換は推奨されません
mod.cu(3051): 警告: 文字列リテラルから "char " への変換は推奨されません
/usr/include/string.h:関数 'void __mempcpy_inline(void*, const void*, size_t)':
/usr/include/string.h:652:42: エラー: 'memcpy' はこのスコープで宣言されていません
return (char ) memcpy (__dest, __src 、__n) + __n;
^
mod.cu: 関数 'PyObject CudaNdarray_Reshape(CudaNdarray*, PyObject*)':mod.cu:955:122: 警告: フォーマット '%lld' は 'long long int' 型の引数を期待していますが、引数 3 の型は 'size_t {aka long unsigned int}' [-Wformat=]
PyErr_Format(PyExc_ValueError, "size %lld から %lld に変更されました", CudaNdarray_SIZE(self), rval_size);
^
['nvcc'、'-shared'、'-O3'、'-m64'、'-Xcompiler'、'-DCUDA_NDARRAY_CUH=c72d035fdf91890f3b36710688069b2e、-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION、-fPIC、-fvisibility=hiddener'、'-linker' '-rpath,/home/rkenaya/.theano/compiledir_Linux-4.4--generic-x86_64-with-Ubuntu-16.04-xenial-x86_64-2.7.12-64/cuda_ndarray', '-I/usr/local/lib/ python2.7/dist-packages/theano/sandbox/cuda', '-I/usr/local/lib/python2.7/dist-packages/numpy/core/include', '-I/usr/include/python2. 7', '-I/usr/local/lib/python2.7/dist-packages/theano/gof', '-o', '/home/rkenaya/.theano/compiledir_Linux-4.4--generic-x86_64-with -Ubuntu-16.04-xenial-x86_64-2.7.12-64/cuda_ndarray/cuda_ndarray.so', 'mod.cu', '-L/usr/lib', '-lcublas', '-lpython2.7','-lcudart'] mod.cu:955:122: 警告: フォーマット '%lld' はタイプ 'long long int' の引数を期待していますが、引数 4 のタイプは 'size_t {aka long unsigned int}' [-Wformat=] エラーです(theano.sandbox.cuda): cuda_ndarray.cu のコンパイルに失敗しました: ('nvcc return status', 1, 'for cmd', 'nvcc -shared -O3 -m64 -Xcompiler -DCUDA_NDARRAY_CUH=c72d035fdf91890f3b36710688069b2e,-DNPY_NO_DEPRECATED_API=_NPY_1 fPIC,-fvisibility=hidden -Xlinker -rpath,/home/rkenaya/.theano/compiledir_Linux-4.4--generic-x86_64-with-Ubuntu-16.04-xenial-x86_64-2.7.12-64/cuda_ndarray -I/usr/ local/lib/python2.7/dist-packages/theano/sandbox/cuda -I/usr/local/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 - I/usr/local/lib/python2.7/dist-packages/theano/gof -o /home/rkenaya/.theano/compiledir_Linux-4.4--generic-x86_64-with-Ubuntu-16.04-xenial-x86_64-2.7.12-64/cuda_ndarray/cuda_ndarray.so mod.cu -L/usr/lib -lcublas -lpython2.7 -lcudart')
WARNING (theano.sandbox.cuda): CUDA is installed, but device gpu is not available (error: cuda available)
[Elemwise{exp,no_inplace}()]
1000 回のループに 4.233657 秒かかりました
結果は [ 1.23178029 1.61879337 1.52278066 ... 、2.20771813 2.29967761 1.62323284]
CPUを使用