私は初心者で、conda 環境や pip などを管理するようになりました。2 つの cupy 配列マトリックス (matrix_V と vector_u) ドット積を実行しようとすると、次のエラー メッセージが表示されました。
vector_predict = matrix_V.dot(vector_u)
File "cupy/core/core.pyx", line 1791, in cupy.core.core.ndarray.dot
File "cupy/core/core.pyx", line 3809, in cupy.core.core.dot
File "cupy/core/core.pyx", line 4193, in cupy.core.core.tensordot_core
File "cupy/cuda/device.pyx", line 29, in cupy.cuda.device.get_cublas_handle
File "cupy/cuda/device.pyx", line 34, in cupy.cuda.device.get_cublas_handle
File "cupy/cuda/device.pyx", line 159, in cupy.cuda.device.Device.cublas_handle.__get__
File "cupy/cuda/device.pyx", line 160, in cupy.cuda.device.Device.cublas_handle.__get__
File "cupy/cuda/cublas.pyx", line 297, in cupy.cuda.cublas.create
File "cupy/cuda/cublas.pyx", line 286, in cupy.cuda.cublas.check_status
cupy.cuda.cublas.CUBLASError: CUBLAS_STATUS_NOT_INITIALIZED
これは、パッケージのバージョンの競合が原因である可能性があると思います。しかし、これを解決する方法がわかりません。私は Cuda 10.0.130 と CuDNN 7.3.1 を使用しています。両方とも動作することを確認しました。pip経由でインストールされたcupy-cuda100を使用しており、仮想環境に正常にインポートできます。conda のものを使用しない理由は、conda の cupy のバージョン (5.1.0) が低すぎる可能性があり、私のプログラムがそれについて文句を言うからです。それらの情報がお役に立てば幸いです。そうでない場合は、役立つ情報を教えてください。
前もって感謝します。
Kenichi が提案したように、cupy.cuda.get_cublas_handle() を呼び出そうとしました。次のエラー メッセージが表示されました。
cupy.cuda.get_cublas_handle()
File "cupy/cuda/device.pyx", line 29, in cupy.cuda.device.get_cublas_handle
File "cupy/cuda/device.pyx", line 34, in cupy.cuda.device.get_cublas_handle
File "cupy/cuda/device.pyx", line 159, in cupy.cuda.device.Device.cublas_handle.__get__
File "cupy/cuda/device.pyx", line 160, in cupy.cuda.device.Device.cublas_handle.__get__
File "cupy/cuda/cublas.pyx", line 297, in cupy.cuda.cublas.create
File "cupy/cuda/cublas.pyx", line 286, in cupy.cuda.cublas.check_status
cupy.cuda.cublas.CUBLASError: CUBLAS_STATUS_NOT_INITIALIZED
また、テンソルフローのインストールに付属している仮想環境に既に numpy がインストールされているのに、 pip install cupy も numpy をインストールすることに気付きました。両方の numpy のバージョンは同じですが、それが問題なのかどうか疑問に思っていました。
これは、batchCUBLAS サンプルを実行した場合の出力です。
batchCUBLAS Starting...
GPU Device 0: "GeForce RTX 2080" with compute capability 7.5
==== Running single kernels ====
Testing sgemm
#### args: ta=0 tb=0 m=128 n=128 k=128 alpha = (0xbf800000, -1)
beta= (0x40000000, 2)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00004601 sec GFLOPS=91.1512
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=128 n=128 k=128 alpha = (0x0000000000000000, 0) beta= (0x0000000000000000, 0)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00005293 sec GFLOPS=79.2441
@@@@ dgemm test OK
==== Running N=10 without streams ====
Testing sgemm
#### args: ta=0 tb=0 m=128 n=128 k=128 alpha = (0xbf800000, -1) beta= (0x00000000, 0)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00008917 sec GFLOPS=470.379
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=128 n=128 k=128 alpha = (0xbff0000000000000, -1) beta= (0x0000000000000000, 0)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00029612 sec GFLOPS=141.644
@@@@ dgemm test OK
==== Running N=10 with streams ====
Testing sgemm
#### args: ta=0 tb=0 m=128 n=128 k=128 alpha = (0x40000000, 2) beta= (0x40000000, 2)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00004601 sec GFLOPS=911.512
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=128 n=128 k=128 alpha = (0xbff0000000000000, -1) beta= (0x0000000000000000, 0)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00018787 sec GFLOPS=223.251
@@@@ dgemm test OK
==== Running N=10 batched ====
Testing sgemm
#### args: ta=0 tb=0 m=128 n=128 k=128 alpha = (0x3f800000, 1) beta= (0xbf800000, -1)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00003600 sec GFLOPS=1165.05
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=128 n=128 k=128 alpha = (0xbff0000000000000, -1) beta= (0x4000000000000000, 2)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00030279 sec GFLOPS=138.521
@@@@ dgemm test OK
Test Summary
0 error(s)
cupy.show_config()
出力:
CuPy Version : 5.2.0
CUDA Root : /usr/local/cuda-10.0
CUDA Build Version : 10000
CUDA Driver Version : 10000
CUDA Runtime Version : 10000
cuDNN Build Version : 7301
cuDNN Version : 7401
NCCL Build Version : 2307
pip freeze | grep cupy
出力:
cupy-cuda100==5.2.0