아마존의 딥러닝 프레임워크 데스트니(DSSTNE)와 텐서플로우의 벤치마크 내용이 공개되었습니다. 이 벤치마크를 위한 코드는 데스트니 깃허브에서 확인하실 수 있습니다. 데스트니가 처음 공개되었을 때 온라인상에서 데스트니 프로젝트의 리더였었다며 여러 의견을 피력했었던 Scott Le Grand가 미디엄에 이번 벤치마킹과 관련된 글을 올렸습니다.
AWS g2.8xlarge 인스턴스의 싱글 GPU에서 무비렌즈 20M 데이터셋을 이용하여 오토인코더를 위한 피드 포워드(Feed Forward) 뉴럴네트워크를 훈련시키는데 데스티가 텐서플로우보다 2배정도 빨랐다고 합니다. 위 그림에서 맨 왼쪽(TensorFlow Single GPU)과 왼쪽에서 두번째(DSSTNE Single GPU)의 노란색 막대 그래프입니다. 또한 두 패키지 모두 AWS에 있는 K520 GPU(2012년 출시) 보다 물리 서버에 장착한 M40 GPU(2015년 출시)에서 더 높은 성능을 내었지만 차이가 있었습니다. 텐서플로우는 M40을 사용해서 약 1.4배 정도 빨라 졌지만 데스트니는 3.4배 더 빨라 졌습니다.(푸른색 막대 그래프) 데스트니가 최신의 GPU의 성능을 더 잘 활용하고 있다고 볼 수 있습니다.
이런 성능의 차이가 나는 점은 텐서플로우가 GPU에 데이터를 로드시키는 데 더 많은 시간을 들이고 있기 때문이라고 합니다. 텐서플로우는 데이터를 numpy의 CSR 포맷과 유사한 형태로 관리하고 있고 데스트니는 파스칼 GPU가 제공하는 자동 메모리 관리 기능을 사용하고 있기 때문이라고 합니다. 데스트니의 또 하나의 장점은 모델 병렬화를 자동으로 해주는 것으로 여러개의 GPU에 연산을 자동으로 분배해 줍니다(데스트니 FAQ에서: DSSTNE can automatically distribute each computation across all available GPUs…). Quad GPU에서 데스트니는 Single GPU의 텐서플로우보다 무려 15배나 더 빠르다고 합니다. 텐서플로우에는 자동으로 모델을 병렬화해 주진 않기 때문에 이번 벤치마크에서는 직접 비교는 안되었지만 추후 텐서플로우 팀에서 이에 대응하는 실험을 할 수 있을 것 같습니다. 아마존이 데스트니를 공개한 것이 심심해서는 아니겠지만 생각보다 세게 나오네요.
Scott 는 Nvidia 출신으로 구글에 입사했으나 자기에게 GPU 코딩을 시키지 않아 금새 그만두고 아마존으로 이직했다고 합니다. 구글에 대한 시각이 그리 좋지는 않은 것 같습니다. TPU를 공개할 때 무어의 법칙의 3세대를 앞섰다고한 구글의 발언을 비꼬아 텐서플로우보다 데스트니를 사용하는게 3년은 더 무어의 법칙을 앞설 수 있을거라고 합니다 : )