본문 바로가기
프로그래밍/딥러닝

윈도우 10에서 Keras를 실행할 때 뜨는 오류해결(InternalError: Blas GEMM launch failed)

by 노마드데이터랩 2020. 4. 16.
728x90
반응형

오늘 한줄기의 빛이 되어 주겠다.

InternalError: Blas GEMM launch failed
CUDA_ERROR_OUT_OF_MEMORY
InternalError: GPU sync failed

상기 에러들이 발생하면 이 내용이 도움될 것이다.

GPU의 메모리와 싱크가 문제가 된 것이라고 한다. 혼자쓰는 컴퓨터에서도 문제, 같이 쓰는 서버에서도 문제. 분명 GPU 메모리 점유율은 가득 안찼는데!? 왜이러지 도대체.

오늘 정말 많은 시행착오를 겪은 내용이다. 도대체 왜 케라스를 돌리면 저 오류가 나면서 코드가 안돌아 가는 것일까. 구글링을 해도 사람들이 다른얘기만 하고 해결책을 알려주지 않는다.. 답답해 죽는줄...

윈도우 10에서 수행했고, 수행환경은 Microsoft Visual Studio Code, 파이썬 3.7.3 버전이다. 화면을 따로 캡쳐를 하진 못했다.

하지만 솔루션을 알려주겠다.

 

InternalError: Blas GEMM launch failed가 뜨면 다음 코드를 넣어보자.

케라스로 모델을 학습하기 전에 다음 코드 4줄을 넣으면 된다.

GPU에 할당된 메모리를 다른 세션이 사용해서 그렇다고 한다.

다음은 케라스가 사용하는 Backend엔진의 메모리 추가 사용을 허락하는 코드이다.

from keras.backend import tensorflow_backend as K 

config = tf.ConfigProto() 

config.gpu_options.allow_growth = True 

K.set_session(tf.Session(config=config))

 

만약에 GPU sync failed가 뜨면 다음 코드를 넣어보자.

import tensorflow as tf

config = tf.ConfigProto()

config.gpu_options.per_process_gpu_memory_fraction = 0.4

session = tf.Session(config=config)

session.close()

 

당신의 공부를 응원한다. 화이팅이다.

728x90
반응형

댓글