TensorFlowは初めてです。
TensorFlowをインストールし、インストールをテストするために、次のコードを試しました。TFセッションを開始するとすぐに、Segmentation fault(core dumped )エラー。
bafhf@remote-server:~$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
/home/bafhf/anaconda3/envs/ismll/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
>>> tf.Session()
2018-05-15 12:04:15.461361: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1349] Found device 0 with properties:
name: Tesla K80 major: 3 minor: 7 memoryClockRate(GHz): 0.8235
pciBusID: 0000:04:00.0
totalMemory: 11.17GiB freeMemory: 11.10GiB
Segmentation fault (core dumped)
私のnvidia-smiは:
Tue May 15 12:12:26 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.30 Driver Version: 390.30 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K80 On | 00000000:04:00.0 Off | 0 |
| N/A 38C P8 26W / 149W | 0MiB / 11441MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla K80 On | 00000000:05:00.0 Off | 2 |
| N/A 31C P8 29W / 149W | 0MiB / 11441MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
そしてnvcc --versionは:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
また、gcc --versionは次のとおりです。
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
以下は私の[〜#〜] path [〜#〜]です:
/home/bafhf/bin:/home/bafhf/.local/bin:/usr/local/cuda/bin:/usr/local/cuda/lib:/usr/local/cuda/extras/CUPTI/lib:/home/bafhf/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
およびLD_LIBRARY_PATH:
/usr/local/cuda/bin:/usr/local/cuda/lib:/usr/local/cuda/extras/CUPTI/lib
これをサーバーで実行していますが、root権限がありません。それでも、公式Webサイトの指示に従ってすべてをインストールできました。
編集:新しい観測:
GPUが1秒間プロセスにメモリを割り当てており、コアセグメンテーションダンプエラーがスローされているようです:
Edit2:変更されたtensorflowバージョン
Tensorflowのバージョンをv1.8からv1.5にダウングレードしました。問題はまだ残っています。
この問題に対処またはデバッグする方法はありますか?
nvidia-smiの出力が表示される場合、2番目のGPUには [〜#〜] eccがあります[〜#〜] コード2。このエラーは、CUDAバージョンまたはTFバージョンのエラーに関係なく、通常はsegfaultとして、また場合によってはスタックトレースのCUDA_ERROR_ECC_UNCORRECTABLE
フラグを使用して発生します。
私は this の投稿からこの結論に達しました:
「訂正不可能なECCエラー」は通常、ハードウェア障害を指します。 ECCは、RAMに格納されたビットのエラーを検出して修正する手段であるエラー修正コードです。浮遊宇宙線は、RAMに格納されている1ビットを一時的に中断する可能性がありますが、「訂正不可能なECCエラー」は、いくつかのビットがRAM =ストレージが "間違っています"-ECCが元のビット値を復元するには多すぎます。
これは、GPUデバイスメモリに不良または限界のRAM=セルがあることを意味している可能性があります。
あらゆる種類の限界回路は100%故障することはありませんが、使用頻度の高いストレスとそれに伴う温度上昇により故障する可能性が高くなります。
通常、再起動すると [〜#〜] ecc [〜#〜] エラーが取り除かれます。そうでない場合、唯一のオプションはハードウェアを変更することのようです。
CUDA_VISIBLE_DEVICES
環境変数の設定。次に、Tesla-K80サーバーの restart に再起動でこの問題を解決できるかどうかを確認するように要求しました。しばらくするとかかりましたが、サーバーは再起動されました
これで問題はなくなり、テンソルフロー実装のために両方のカードを実行できます。
ここで複数のGPUを使用しているため、これが発生する可能性があります。 cuda visibleデバイスをGPUの1つだけに設定してみてください。その方法の説明については このリンク を参照してください。私の場合、これで問題は解決しました。
まだ興味がある方のために、「Volatile Uncorr。ECC」出力という同じ問題が偶然発生しました。以下に示すように、私の問題は互換性のないバージョンでした:
ロードされたランタイムCuDNNライブラリ:7.1.1ですが、ソースは7.2.1でコンパイルされています。 CuDNNライブラリのメジャーバージョンとマイナーバージョンは、CuDNN 7.0以降のバージョンの場合、一致するか、より高いマイナーバージョンである必要があります。バイナリインストールを使用している場合は、CuDNNライブラリをアップグレードします。ソースからビルドする場合は、実行時にロードされるライブラリが、コンパイル構成時に指定されたバージョンと互換性があることを確認してください。セグメンテーション違反
CuDNNライブラリを7.3.1(7.2.1より大きい)にアップグレードすると、セグメンテーションエラーが表示されなくなりました。アップグレードするために私は次のことを行いました( here にも記載されています)。
Tensorflowに必要な正確なバージョンのCUDAおよびCuDNNを使用していること、およびこのCUDAバージョンに付属しているグラフィックスカードのドライバーのバージョンを使用していることを確認してください。
私はかつて、あまりにも最近のドライバーを持っている同様の問題を抱えていました。 tensorflowで必要なCUDAバージョンが付属するバージョンにダウングレードすると、問題が解決しました。
最近この問題に遭遇しました。
その理由は、Dockerコンテナーに複数のGPUがあるためです。解決策は非常に簡単です。次のいずれかです。
set _CUDA_VISIBLE_DEVICES
_ inHostは https://stackoverflow.com/a/50464695/2091555 を参照します
または
複数のGPUが必要な場合は、_--ipc=Host
_を使用してdockerを起動します。
_docker run --runtime nvidia --ipc Host \
--rm -it
nvidia/cuda:10.0-cudnn7-runtime-ubuntu16.04:latest
_
この問題は実際にはかなり厄介であり、segfaultはDockerコンテナーのcuInit()
呼び出し中に発生し、すべてがホストで正常に動作します。ここにログを残して、検索エンジンが他の人が簡単にこの答えを見つけられるようにします。
_(base) root@e121c445c1eb:~# conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
Collecting package metadata (current_repodata.json): / Segmentation fault (core dumped)
(base) root@e121c445c1eb:~# gdb python /data/corefiles/core.conda.572.1569384636
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos Word" to search for commands related to "Word"...
Reading symbols from python...done.
warning: core file may not match specified executable file.
[New LWP 572]
[New LWP 576]
warning: Unexpected size of section `.reg-xstate/572' in core file.
[Thread debugging using libthread_db enabled]
Using Host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/opt/conda/bin/python /opt/conda/bin/conda upgrade conda'.
Program terminated with signal SIGSEGV, Segmentation fault.
warning: Unexpected size of section `.reg-xstate/572' in core file.
#0 0x00007f829f0a55fb in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so
[Current thread is 1 (Thread 0x7f82bbfd7700 (LWP 572))]
(gdb) bt
#0 0x00007f829f0a55fb in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so
#1 0x00007f829f06e3a5 in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so
#2 0x00007f829f07002c in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so
#3 0x00007f829f0e04f7 in cuInit () from /usr/lib/x86_64-linux-gnu/libcuda.so
#4 0x00007f82b99a1ec0 in ffi_call_unix64 () from /opt/conda/lib/python3.7/lib-dynload/../../libffi.so.6
#5 0x00007f82b99a187d in ffi_call () from /opt/conda/lib/python3.7/lib-dynload/../../libffi.so.6
#6 0x00007f82b9bb7f7e in _call_function_pointer (argcount=1, resmem=0x7ffded858980, restype=<optimized out>, atypes=0x7ffded858940, avalues=0x7ffded858960, pProc=0x7f829f0e0380 <cuInit>,
flags=4353) at /usr/local/src/conda/python-3.7.3/Modules/_ctypes/callproc.c:827
#7 _ctypes_callproc () at /usr/local/src/conda/python-3.7.3/Modules/_ctypes/callproc.c:1184
#8 0x00007f82b9bb89b4 in PyCFuncPtr_call () at /usr/local/src/conda/python-3.7.3/Modules/_ctypes/_ctypes.c:3969
#9 0x000055c05db9bd2b in _PyObject_FastCallKeywords () at /tmp/build/80754af9/python_1553721932202/work/Objects/call.c:199
#10 0x000055c05dbf7026 in call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>) at /tmp/build/80754af9/python_1553721932202/work/Python/ceval.c:4619
#11 _PyEval_EvalFrameDefault () at /tmp/build/80754af9/python_1553721932202/work/Python/ceval.c:3124
#12 0x000055c05db9a79b in function_code_fastcall (globals=<optimized out>, nargs=0, args=<optimized out>, co=<optimized out>)
at /tmp/build/80754af9/python_1553721932202/work/Objects/call.c:283
#13 _PyFunction_FastCallKeywords () at /tmp/build/80754af9/python_1553721932202/work/Objects/call.c:408
#14 0x000055c05dbf2846 in call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>) at /tmp/build/80754af9/python_1553721932202/work/Python/ceval.c:4616
#15 _PyEval_EvalFrameDefault () at /tmp/build/80754af9/python_1553721932202/work/Python/ceval.c:3124
... (stack omitted)
#46 0x000055c05db9aa27 in _PyFunction_FastCallKeywords () at /tmp/build/80754af9/python_1553721932202/work/Objects/call.c:433
---Type <return> to continue, or q <return> to quit---q
Quit
_
別の試みは、pipを使用してインストールすることです
_(base) root@e121c445c1eb:~# pip install torch torchvision
(base) root@e121c445c1eb:~# python
Python 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
Segmentation fault (core dumped)
(base) root@e121c445c1eb:~# gdb python /data/corefiles/core.python.28.1569385311
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos Word" to search for commands related to "Word"...
Reading symbols from python...done.
warning: core file may not match specified executable file.
[New LWP 28]
warning: Unexpected size of section `.reg-xstate/28' in core file.
[Thread debugging using libthread_db enabled]
Using Host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
bt
Core was generated by `python'.
Program terminated with signal SIGSEGV, Segmentation fault.
warning: Unexpected size of section `.reg-xstate/28' in core file.
#0 0x00007ffaa1d995fb in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so.1
(gdb) bt
#0 0x00007ffaa1d995fb in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so.1
#1 0x00007ffaa1d623a5 in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so.1
#2 0x00007ffaa1d6402c in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so.1
#3 0x00007ffaa1dd44f7 in cuInit () from /usr/lib/x86_64-linux-gnu/libcuda.so.1
#4 0x00007ffaee75f724 in cudart::globalState::loadDriverInternal() () from /opt/conda/lib/python3.7/site-packages/torch/lib/libtorch_python.so
#5 0x00007ffaee760643 in cudart::__loadDriverInternalUtil() () from /opt/conda/lib/python3.7/site-packages/torch/lib/libtorch_python.so
#6 0x00007ffafe2cda99 in __pthread_once_slow (once_control=0x7ffaeebe2cb0 <cudart::globalState::loadDriver()::loadDriverControl>,
... (stack omitted)
_
私も同じ問題に直面していました。私はあなたがそれを試すことができる同じための回避策を持っています。
1. python 3.5以上を再インストールします。2。Cudaを再インストールし、Cudnnライブラリを追加します。3。Tensorflow 1.8.0 GPUバージョンを再インストールします。