논문 한글 요약 - arXiv:1608.07249v7
최신 딥러닝 소프트웨어 성능 비교
May 10, 2017
이 글은 "Benchmarking State-of-the-Art Deep Learning Software Tools"라는 제목의 논문(arXiv:1608.07249v7) 내용을 아주 간단하게 요약한 것입니다. 논문에서는 최신 딥러닝 소프트웨어 5가지Caffe, CNTK, MXNet, TensorFlow, Torch의 단위 학습량 당 걸리는 시간을 크게 3가지CPU only, single GPU, multi-GPU 상황에서 3가지 신경망Fully Connected Network (FCN), Convolutional Neural Network (CNN), Recurrent Neural Network (RNN)을 단위 학습량 규모를 바꾸면서 비교합니다. 내용 요약은 다음과 같습니다.
1. CPU only: BEST - TensorFlow
TensorFlow가 가장 좋았습니다. 비교할 때 16개의 물리적인 CPU core까지 늘리면서 진행했다고 합니다.
2. Single GPU
- Fully Connected Network (FCN): Caffe, CNTK, Torch > MXNet, TensorFlow 라고 합니다.
- Convolutional Neural Network (CNN): network가 큰 경우는 MXNet, 작은 경우는 Caffe와 CNTK도 좋았다고 합니다.
- Recurrent Neural Network (RNN): CNTK가 다른 4가지에 비해 LSTM을 이용하는 RNN자세한 내용은 이 글을 참조하시길 바랍니다.을 5-10배 빠르게 학습시킨다고 합니다.
위의 그림은 arXiv:1608.07249v7의 Figure 1입니다.
3. Multi-GPU
- FCN: CNTK와 MXNet의 경우에, 학습량 규모를 고정하고 GPU 수를 1, 2, 4로 늘릴 때 처리 시간이 가장 잘 줄어든다고 합니다. GPU 개수를 늘릴 때 처리 시간이 잘 줄어들수록 여러개의 GPU를 더 효율적으로 사용한다는 의미입니다.
- CNN(AlexNet): MXNet과 Torch의 경우에, GPU 수를 위와 같이 늘리면 처리 시간이 가장 잘 줄어든다고 합니다. CNTK는 MXNet과 Torch에 비해 줄어드는 정도가 살짝 작지만 Caffe나 TensorFlow보다는 훨씬 더 잘 줄어든다고 합니다.
- CNN(ResNet): GPU를 1개만 사용했을 때는 MXNet이 가장 좋았지만, 여러개를 사용했을 때는 Torch가 더 효율적인 것으로 나타났다고 합니다.
기타 사항
- NVIDIA® GTX 980, NVIDIA® GTX 1080, NVIDIA® Tesla K80 GK210 중에서 NVIDIA® GTX 1080이 가장 좋았다고 합니다.
- GPU를 사용할 때는 cuDNN을 꼭 설치하여 소프트웨어가 사용할 수 있도록 하기를 권장하고 있습니다.
- Convolution을 직접 계산하기보다는 FFT 하기를 권장하고 있습니다.
- Multi-GPU 경우에 TensorFlow는 GPU 숫자를 1, 2, 4개로 늘려도 눈에 띄게 빨라지지는 않는다고 합니다.