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

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

新規登録して質問してみよう
ただいま回答率
85.35%
WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1711閲覧

WSL2上のThreadingエラー

octa_gongon

総合スコア6

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/31 06:47

WSL2のUbuntu上で走らせたコードが以下のようなエラーを吐きます。

ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).
ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).
ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).
Traceback (most recent call last):
File "demo.py", line 383, in <module>
main(args)
File "demo.py", line 94, in main
tracking_results = mot(image_folder)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/multi_person_tracker/mpt.py", line 194, in call
trackers = self.run_tracker(dataloader)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/autograd/grad_mode.py", line 49, in decorate_no_grad
return func(*args, **kwargs)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/multi_person_tracker/mpt.py", line 78, in run_tracker
predictions = self.detector(batch)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/autograd/grad_mode.py", line 49, in decorate_no_grad
return func(*args, **kwargs)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/yolov3/yolo.py", line 69, in call
detections = self.model(inp_batch)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, **kwargs)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/yolov3/models.py", line 252, in forward
x = module(x)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, **kwargs)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/modules/container.py", line 100, in forward
input = module(input)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call
result = self.forward(*input, **kwargs)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/modules/batchnorm.py", line 107, in forward
exponential_average_factor, self.eps)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/nn/functional.py", line 1670, in batch_norm
training, momentum, eps, torch.backends.cudnn.enabled
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/torch/utils/data/_utils/signal_handling.py", line 66, in handler
_error_if_any_worker_fails()
RuntimeError: DataLoader worker (pid 356) is killed by signal: Bus error. It is possible that dataloader's workers are out of shared memory. Please try to raise your shared memory limit.
Exception ignored in: <function tqdm.del at 0x7f65dc3d7680>
Traceback (most recent call last):
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/tqdm/_tqdm.py", line 931, in del
self.close()
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/tqdm/_tqdm.py", line 1133, in close
self._decr_instances(self)
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/tqdm/_tqdm.py", line 496, in _decr_instances
cls.monitor.exit()
File "/root/anaconda3/envs/vibe-env/lib/python3.7/site-packages/tqdm/_monitor.py", line 52, in exit
self.join()
File "/root/anaconda3/envs/vibe-env/lib/python3.7/threading.py", line 1041, in join
raise RuntimeError("cannot join current thread")
RuntimeError: cannot join current thread

メモリ不足が示唆されていますが、タスクマネージャを観察している限り原因はそこにはないと考えています。
原因のわかる方いらっしゃいませんでしょうか?

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

メモリ不足が示唆されていますが、タスクマネージャを観察している限り原因はそこにはないと考えています。

WSL2は内部では仮想マシン上で実行されております。
Windows上のタスクマネージャーからではWSL2の仮想マシンの使用メモリは確認できないでしょう。
(可変サイズなので大まかな数字はわかるかもしれないですが)

WSL2のメモリに関連するQiitaの記事には下記のような記述がありました。

memoryにはWSL2が最大確保するメモリサイズを指定します。PCの搭載メモリとWSL2の使用用途に応じてメモリサイズの値は変更してください。ちなみに未指定時のデフォルト値はPC搭載メモリの80%です。

上記から、仮想マシンの中で、指定したメモリサイズ分もしくは、未指定の場合はPC搭載メモリの80%を使用している場合、Windows上のタスクマネージャで余裕があってもメモリ不足が発生するかと思います。

投稿2020/07/31 07:07

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

octa_gongon

2020/08/01 02:34

ありがとうございます。 確保されている最大メモリサイズも確認していはいるのですが、問題ではないようです。 またWSL1を使っていたころに同じプログラムを走らせた際にはこのようなことは起きなかったのですが、何かWSL2に固有の問題があるのでしょうか…
退会済みユーザー

退会済みユーザー

2020/08/01 04:18

あとは実行中の使用メモリは確認してみてというところでしょうか。 WSL1と比較して、仮想マシンで動かすことや、最大確保するメモリサイズの関係から、 同じハード構成であれば、使用できるメモリ量が減ります。 Dockerであればshmが制限されるなどは聞いたことありますが、WSL2に関してはわかりません。 このエラーだけですと、「メモリが不足している」ということしかわからないので、 ハード構成やコード自体などを質問に追記するといいかもしれません。
octa_gongon

2020/09/12 11:45

お返事遅れてすみません、ありがとうございます。 いろいろ調べたところ、おっしゃる通りCuDNNが機能していないことによるメモリ不足だったようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問