티스토리 뷰

일반적으로 Depthwise Convolutional Layer는 CNN 모델의 연산량과 파라미터 수를 줄이기 위하여 제안되었으나, 실제로 이를 사용하여 모델을 구현한 뒤에 속도를 측정해보면 줄어드는 연산량 대비 고속화의 정도가 크지 않습니다.

 

특히, 저의 경우 Depthwise Convolutional Layer가 포함된 CNN 모델을 학습시키려하니, Forward 및 Backward 과정에서 비정상적으로 긴 시간이 걸리는 것을 확인하였습니다. 이러한 경우 코드상에서 Forward 및 Backward 과정 이전에 아래의 코드를 작성해주면 소요시간을 단축시킬 수 있습니다.

 

torch.backends.cudnn.deterministic = False
torch.backends.cudnn.benchmark = True

 

torch.backends.cudnn.deterministic = True인 경우, Reproducibility를 보장하도록 연산이 실행됩니다.

torch.backends.cudnn.deterministic = False인 경우, Reproducibility를 보장하지못하나 보다 빠른 속도로 연산이 실행될 수 있습니다.

 

torch.backends.cudnn.benchmark = True인 경우, 보다 최적화된 알고리즘으로 연산을 실행하게 되어 속도를 향상시킬 수 있습니다.

 

Reproducibility를 보장해야하는 경우 위 방법은 권장되지 않습니다.

 

저의 경우, 위 코드를 추가했을때 Forward 및 Backward 과정에 소요되는 속도가 약 3배 가량 증가되는 것을 확인할 수 있었습니다.

 

 

torch.backends.cudnn.benchmark 만 True로 세팅해줘도 속도 향상이 크니 시도해보시길 권장드립니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함