[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

Pytorchのエラー「PyTorch: RuntimeError: device >= 0 && device < num_gpus INTERNAL ASSERT FAILED」

お疲れ様です。

 

Pytorch使用時に発生したエラーの対処についての備忘録です。

基本的には調べたサイトや記事をまとめただけになります。

 

  • エラー文

PyTorch: RuntimeError: device >= 0 && device < num_gpus INTERNAL ASSERT FAILED

 

公式GitHubのissueでも議論されている内容ですね。

github.com

github.com

 

  • 対処方法

1.

下記のコードを記載する。


import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
os.environ["WORLD_SIZE"] = "1"
import torch
  

pytorchをimportする前にosモジュールで環境変数
"CUDA_VISIBLE_DEVICES"と"WORLD_SIZE"を指定するように書く。

私の場合はこれでエラーは解消しました。

 

2.

1の方法で解消しない場合もあるようで、その場合の代替案みたいなものが以下のサイトにあります。

Pytorch自体のバグなので、ライブラリのソースから書き換えてしまおうという感じですね。(個人的にはあまりやりたくはないですが…。)

stackoverflow.com

 

3.

そもそもPytorchのバージョンを変えてしまえば解消することがほとんどではないでしょうか。

基本的に最近(2024年7月あたり)のバージョンで起こることが多いみたいです。

私の場合もPytorch2.3.0を使用している際に起こりました。ただ、いつも使っているそれ以外のバージョンのPytorchでは一度も起こったことがないんですよね…。

今回の場合はバージョンを変えられない状況での開発だったので1の方法になりました。

 

  • 補足

最後に今回エラーが発生した環境を簡単に記載しておきます。

ちなみに後からWindows環境で同じライブラリバージョンをインストールして試してみたものの、エラーの再現はできませんでした。

(何か足りないものがあるかもですが…。)

OS: Linux

Pytorch: 2.3.0

CUDA: 12.1