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가 관련되어있을 때이 플래그가 우리 스케줄러에 필요하다고 생각합니다.
계산 노드의 pbs_mom 로그 또는 syslog 저널에 오류가 있습니까? – clusterdude
6.1.0 릴리스 이후로 6.1-dev 커밋 로그에 여러 GPU 수정 사항이 표시된다는 점을 말씀 드리겠습니다. 예 : 는'a5b54aa063f55b189ee2c5682768730651c05ad5 저자 커밋 : 차드 Vizino <[email protected]> 날짜 : 월 5월 22일 15시 24분 22초 2017 -0600 TRQ-4017 - 수정 NVIDIA GPU 할당 색인 problem' – clusterdude
@clusterdude의 I pbs_mom 로그 파일에 오류가 표시되지 않습니다. 그 일은 '성공적으로 시작되었습니다'라고되어 있습니다. 몇 초 후 pbs_mom은 작업이 종료되고 종료되었음을 알았습니다. 현재 Torque의 새 버전을 설치하는 것은 옵션이 아니므로 해당 GPU 수정을 시도 할 수 없습니다. – Fex