run.sh 실행 중 "Failed to create CUDA context" 오류가 발생합니다.

865 views
Skip to first unread message

이준기

unread,
Mar 25, 2018, 12:10:12 AM3/25/18
to zeroth-help
프로그램 실행 도중 cuda 오류가 발생합니다.

  1. 프로그램 실행시 최소사양이 nvidia GPU 2개 인가요?
  2. 실행이 오래 걸리더라도 현재 시스템에서 오류없이 실행하는 방법을 알려주세요


테스트에 사용한 환경 정보는 아래와 같습니다.
----------------------------------------------------------------------

CPU: Intel(R) Xeon(R) CPU E3-1275 v6

Mem: 64GB

GPU: Quadro P2000

OS: CentOS 7.4.1708

Kaldi : github에서 2018-03-22에 받음.

zeroth: github에서 2018-03-22에 받음. (위치 kaldi/egs/zeroth)

morfessor : github에서 2018-03-22에 받음.

speechDATA: 수정일자 2018-02-02 (s3에서 3 19일 받은 파일 사용)

lm데이터수정일자 2018-02-24 (s3에서 3 19일 받은 파일 사용)

GridEngine: 사용 안함

----------------------------------------------------------------------


오류 내용은 첨부파일에 있는 것과 마찬가지로 오류코드 46 (cudaErrorDevicesUnavailable) 입니다.

로그에 찍혀 있는 nvidia-smi 에는 nnet3-chain-train이 실행중 이었습니다.


화면 출력 메시지.txt
train.0.1.log

Lucas Jo

unread,
Mar 25, 2018, 11:23:45 AM3/25/18
to zeroth-help
GPU 한 개만 있어도 시간은 오래걸리지만 돌아갑니다.

현재 로그로 볼때는 다른 프로세스가 GPU를 점유해서 사용가능한  GPU가 없어서 죽는 것으로 보이네요.

다른 프로세스가 점유한게 아니라면 GPU 가용 개수가 1개라는 것을 
local/chain/multi_condition/run_tdnn_1n.sh 에서
num_jobs_initial = 1
num_jobs_final = 1

로 설정하시기 바랍니다

이준기

unread,
Mar 25, 2018, 10:31:29 PM3/25/18
to zeroth-help
일단 stage 12 단계의 train.py의 매개변수 중 일부를 아래와 같이 수정하여 진행하였습니다.
수정 전 : --use-gpu true
수정 후 : --use-gpu wait

말씀하진 변수를 수정하지 않은 상태에서 아래와 같이 실행 된 것을 확인하였습니다. (고의적으로 stage 12만 실행하였음.)
------------------------------------
...
2018-03-26 11:17:41,805 [steps/nnet3/chain/train.py:499 - train - INFO ] Iter: 199/199    Epoch: 3.97/4.0 (99.2% complete)    lr: 0.001400    
2018-03-26 11:22:55,191 [steps/nnet3/chain/train.py:554 - train - INFO ] Doing final combination to produce final.mdl
2018-03-26 11:22:55,191 [steps/libs/nnet3/train/chain_objf/acoustic_model.py:525 - combine_models - INFO ] Combining set([192, 193, 194, 195, 196, 197, 198, 199, 200, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191]) models.
2018-03-26 11:23:23,483 [steps/nnet3/chain/train.py:576 - train - INFO ] Cleaning up the experiment directory exp/chain_rvb/tdnn1n_rvb
steps/nnet2/remove_egs.sh: Finished deleting examples in exp/chain_rvb/tdnn1n_rvb/egs
exp/chain_rvb/tdnn1n_rvb: num-iters=200 nj=2..7 num-params=18.6M dim=40+100->3048 combine=-0.043->-0.042 (over 6) xent:train/valid[132,199]=(-0.856,-0.740/-1.06,-0.950) logprob:train/valid[132,199]=(-0.055,-0.042/-0.083,-0.073)
------------------------------------

Lucas Jo

unread,
Mar 25, 2018, 11:26:39 PM3/25/18
to zeroth-help
--use-gpu wait  이렇게 하시면 --use-gpu no 를 설정하신 것과 같습니다. 

그 말은 트레이닝에 GPU를 사용하지 않으신 것과 같고요.

하나라도 쓰시는 편이 더 빠릅니다. 


이준기

unread,
Mar 27, 2018, 2:37:03 AM3/27/18
to zeroth-help
--use-gpu wait 로 설정하여 실행하였을 경우 --use-gpu no로 설정하여 실행한 것보다 처리 속도가 빨랐습니다. 비 정상적으로 트레이닝 되었을 가능성도 있을까요?

Lucas Jo

unread,
Mar 27, 2018, 3:08:17 AM3/27/18
to zeroth-help
아 아니군요. 제가 잘못알았네요. 

steps/nnet3/chain/train.py 보니 wait 역시 GPU 를 사용하는 옵션이네요.

트레이닝이 진행되셨다면 비정상적일 이유는 없습니다. 

이준기

unread,
Mar 27, 2018, 6:58:49 AM3/27/18
to zeroth-help
넵 감사합니다.
Reply all
Reply to author
Forward
0 new messages