2017-05-24 4 views
1

Tensorflow v1.0.1과 GPU를 사용하고 TORQUE v6.1.0을 MOAB와 함께 작업 스케줄러로 사용하여 클러스터에서 발생하는 문제를 해결하려고합니다. 실행 된 파이썬 스크립트는 새로운 세션을 시작하려고 할 때Tensorflow : 새 세션을 시작할 때 TORQUE 및 GPU의 문제 : CUDA_ERROR_INVALID_DEVICE

오류가 발생합니다

[...] 
with tf.Session() as sess: 
[...] 

오류 메시지 :

I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally 
E tensorflow/core/common_runtime/direct_session.cc:137] Internal: failed initializing StreamExecutor for CUDA device ordinal 0: Internal: failed call to cuDevicePrimaryCtxRetain: CUDA_ERROR_INVALID_DEVICE 
Load Data... 
input: (12956, 128, 128, 1) 
output: (12956, 64, 64, 16) 
Initiliaze training 
Traceback (most recent call last): 
    File "[...]/train.py", line 154, in <module> 
tf.app.run() 
    File "[...]/lib/python3.5/site-packages/tensorflow/python/platform/app.py", line 44, in run 
_sys.exit(main(_sys.argv[:1] + flags_passthrough)) 
    File "[...]/train.py", line 150, in main 
training() 
    File "[...]/train.py", line 72, in training 
with tf.Session() as sess: 
    File "[...]/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1176, in __init__ 
super(Session, self).__init__(target, graph, config=config) 
    File "[...]/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 552, in __init__ 
self._session = tf_session.TF_NewDeprecatedSession(opts, status) 
    File "[...]/python/3.5.1/lib/python3.5/contextlib.py", line 66, in __exit__ 
next(self.gen) 
    File "[...]/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py", line 466, in raise_exception_on_not_ok_status 
pywrap_tensorflow.TF_GetCode(status)) 
tensorflow.python.framework.errors_impl.InternalError: Failed to create session. 

내가 오프라인 GPU에 스크립트를 직접 실행 문제를 재현하려면 -Node (TORQUE가 포함되지 않았으므로) 오류가 발생하지 않았습니다. 따라서 문제는 TORQUE와 관련이 있다고 가정하지만 해결책을 찾지 못했습니다. 토크

매개 변수는 :

#PBS -l nodes=1:ppn=2:gpus=4:exclusive_process 
#PBS -l mem=25gb 

나는 exclusive_process없이 한 번 시도했지만 작업이 실행되지 않았습니다. GPU가 관련되어있을 때이 플래그가 우리 스케줄러에 필요하다고 생각합니다.

+0

계산 노드의 pbs_mom 로그 또는 syslog 저널에 오류가 있습니까? – clusterdude

+0

6.1.0 릴리스 이후로 6.1-dev 커밋 로그에 여러 GPU 수정 사항이 표시된다는 점을 말씀 드리겠습니다. 예 : 는'a5b54aa063f55b189ee2c5682768730651c05ad5 저자 커밋 : 차드 Vizino <[email protected]> 날짜 : 월 5월 22일 15시 24분 22초 2017 -0600 TRQ-4017 - 수정 NVIDIA GPU 할당 색인 problem' – clusterdude

+0

@clusterdude의 I pbs_mom 로그 파일에 오류가 표시되지 않습니다. 그 일은 '성공적으로 시작되었습니다'라고되어 있습니다. 몇 초 후 pbs_mom은 작업이 종료되고 종료되었음을 알았습니다. 현재 Torque의 새 버전을 설치하는 것은 옵션이 아니므로 해당 GPU 수정을 시도 할 수 없습니다. – Fex

답변

0

'exclusive_process'에서 'shared'로 컴퓨팅 모드를 변경하여 작업을 실행하는 방법을 찾았습니다.

이제 작업이 시작되고 무언가를 계산하는 것처럼 보입니다. 그러나 nvidia-smi의 출력 때문에 4 개의 GPU가 모두 사용되는지 스스로에게 묻습니다. 모든 GPU가 같은 프로세스에서 작동하는 이유는 무엇입니까?

Fri May 26 13:41:33 2017  
+-----------------------------------------------------------------------------+ 
| NVIDIA-SMI 375.26     Driver Version: 375.26     | 
|-------------------------------+----------------------+----------------------+ 
| 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 | 0000:04:00.0  Off |     0 | 
| N/A 45C P0 58W/149W | 10871MiB/11439MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 
| 1 Tesla K80   On | 0000:05:00.0  Off |     0 | 
| N/A 37C P0 70W/149W | 10873MiB/11439MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 
| 2 Tesla K80   On | 0000:84:00.0  Off |     0 | 
| N/A 32C P0 59W/149W | 10871MiB/11439MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 
| 3 Tesla K80   On | 0000:85:00.0  Off |     0 | 
| N/A 58C P0 143W/149W | 11000MiB/11439MiB |  95%  Default | 
+-------------------------------+----------------------+----------------------+ 

+-----------------------------------------------------------------------------+ 
| Processes:              GPU Memory | 
| GPU  PID Type Process name        Usage  | 
|=============================================================================| 
| 0  11757 C python          10867MiB | 
| 1  11757 C python          10869MiB | 
| 2  11757 C python          10867MiB | 
| 3  11757 C python          10996MiB | 
+-----------------------------------------------------------------------------+ 
관련 문제