質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.99%

cupyが動かない(cupy.cuda.runtime.CUDARuntimeErrorと思われる)

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 63

前提・実現したいこと

Anacondaを用いてpythonを使っています。この度GPUを用いた計算を行おうと思い、cupyをインストールしました。
こちらのサイトChainer 10.Cupy入門を参考にして、上から順にcupyの動作確認を行っていたのですが、参考ページのプログラム[12]が実行できず困っています。
途中までは計算できているので、根本的にcupyのインストールが失敗しているわけではないと思います。
個人的には「cupy.cuda.runtime.CUDARuntimeError: cudaErrorLaunchFailure: unspecified launch failure」が怪しいと思い多少調べて「メモリの確保量が足りない」などの原因の候補が上がったものの、どう対処すればよいかわからずじまいになっています。

発生している問題・エラーメッセージ

(環境名) C:\Users\ユーザ名>python num_cupy.py
N=   10: 1.51558 sec
N=  100: 0.00000 sec
N= 1000: 0.06250 sec   #ここまで出力結果、以下エラーコード
Traceback (most recent call last):
  File "num_cupy.py", line 38, in <module>
    cp.cuda.Stream.null.synchronize()
  File "cupy\cuda\stream.pyx", line 207, in cupy.cuda.stream.Stream.synchronize
  File "cupy\cuda\runtime.pyx", line 353, in cupy.cuda.runtime.streamSynchronize
  File "cupy\cuda\runtime.pyx", line 356, in cupy.cuda.runtime.streamSynchronize
  File "cupy\cuda\runtime.pyx", line 145, in cupy.cuda.runtime.check_status
cupy.cuda.runtime.CUDARuntimeError: cudaErrorLaunchFailure: unspecified launch failure
Traceback (most recent call last):
  File "cupy\cuda\driver.pyx", line 193, in cupy.cuda.driver.moduleUnload
  File "cupy\cuda\driver.pyx", line 82, in cupy.cuda.driver.check_status
TypeError: 'NoneType' object is not callable
Exception ignored in: 'cupy.cuda.function.Module.__dealloc__'
Traceback (most recent call last):
  File "cupy\cuda\driver.pyx", line 193, in cupy.cuda.driver.moduleUnload
  File "cupy\cuda\driver.pyx", line 82, in cupy.cuda.driver.check_status
TypeError: 'NoneType' object is not callable
Error in sys.excepthook:

Original exception was:

該当のソースコード

import numpy as np
import cupy as cp
import time

def get_w_np(x, t):
    xx = np.dot(x.T, x)
    xx_inv = np.linalg.inv(xx)
    xt = np.dot(x.T, t)
    w = np.dot(xx_inv, xt)
    return w

def get_w_cp(x, t):
    xx = cp.dot(x.T, x)
    xx_inv = cp.linalg.inv(xx)
    xt = cp.dot(x.T, t)
    w = cp.dot(xx_inv, xt)
    return w

times_cpu = []  # CPUの計算時間保存用

times_gpu = []  # GPUの計算時間保存用

for N in [10, 100, 1000, 10000]:
    cp.random.seed(0)
    x = cp.random.rand(N, N)
    t = cp.random.rand(N, 1)

    # GPU 上での処理が終わるのを待機
    cp.cuda.Stream.null.synchronize()

    time_start = time.time()

    # - - - 処理 - - -
    w = get_w_cp(x, t)
    # - - - - - - - - -

    # GPU 上での処理が終わるのを待機
    cp.cuda.Stream.null.synchronize()

    time_end = time.time()

    elapsed_time = time_end - time_start  # 経過時間

    print('N={:>5}:{:>8.5f} sec'.format(N, elapsed_time))

    times_gpu.append(elapsed_time)

試したこと

違うページに紹介されているgithubのコードを試してみても、途中までは計算できても「cupy.cuda.runtime.CUDARuntimeError: cudaErrorLaunchFailure: unspecified launch failure」のエラーが出てしまいました。

補足情報(FW/ツールのバージョンなど)

python:3.6.9
GPU:GeForce GTX 1060 6GB
CUDA:バージョン10.0
Cupy:cupy-cuda100
Tensorflow-gpu:2.0.0
numpy:1.17.4
fastrlock:0.4

当初はimport cupyもまともに動かず、numpyをインストールしなおし、このサイトを参考にfastrlockもインストールしなおして今に至ります。

Chainerはインストールしておらず、これを入れたら解決するかもしれないとは思うのですが、CUDAインストールで悪戦苦闘した私にとって、今のところ順調にできているこの状況を変えてしまうような行動は手が出せずにいます。

何か不足している情報などあれば言ってください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

tensorflowとtensorflow-gpuが共存してたみたいです。一旦どっちともアンインストールしてから、gpu版だけインストールすると動いてくれました。
参考

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る