태그 보관물: Scott Le Grand

DSSTNE is Faster than TensorFlow

12pbkhxz60gfierig1slclg

아마존의 딥러닝 프레임워크 데스트니(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년은 더 무어의 법칙을 앞설 수 있을거라고 합니다 : )