Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 안녕하세요 F조입니다.
- 저희 조의 주제는 DSSTNE의 딥러닝 클라우드 이미지 만들기입니다.
- 먼저, 간단히 Overview를 한 뒤, 문제점과 목표를 짚고 나서 어떻게 접근할 것인지,
- 어떤 환경에서 개발할 것인지 보고 이 프로젝트의 구조와 스펙을 말씀드리겠습니다.
- 그 뒤 현재 작업 상황과 남은 작업들, 일의 분배와 스케쥴에 대해서 말씀드리겠습니다.
- DSSTNE는 아마존 웹서비스에서 개발한 딥러닝 라이브러리입니다.
- 다른 딥러닝 라이브러리와 다르게 1개 이상의 GPU를 사용한다는 장점이 있습니다.
- 아래는, 구글에서 개발한 딥러닝 라이브러리인 Tensorflow와의 비교 그래프입니다.
- 첫번째 항목은 Tensorflow의 한 epoch에 소요되는 시간을 보여주고 있습니다.
- 두번째 항목부터는 DSSTNE에서 single GPU, double GPU, quad GPU, 8 GPU에서의 수행시간입니다.
- Single gpu에서도 Tensorflow보다 두 배 가량 빠르며, GPU의 수가 늘 수록 더 빨라지는 모습을 확인할 수 있습니다.
- 그러나 우수한 수행능력에도 불구하고, DSSTNE의 인지도 및 실 사용자 수는 Tensorflow에 비하여 한참 부족합니다.
- 이는 낮은 사용성 및 부족한 예시에 기인합니다.
- 따라서 이 프로젝트에서는 부족한 사용성을 개선하고, 예시 프로젝트를 추가하는 것을 주요한 목표로 삼고 있습니다.
- 더불어 챌린징한 부분으로 DSSTNE 프로젝트의 성능을 개선하고, 이에 대한 벤치마크 테스트를 수행할 예정입니다.
- 성능 개선에 대해서는 세 가지로 접근해보고자 합니다.
- 우선, 비동기적으로 코드를 복사하는 것을 구현할 예정입니다.
- 현재 DSSTNE는 GPU를 통하여 행렬 곱셈을 수행하는데, 이를 위하여 CPU에서 GPU로 값을 복사합니다.
- 그러나 복사한 값을 즉시 사용하는 것이 아니라면 비동기적으로 값을 복사할 수 있습니다.
- 따라서 오른쪽과 같이 비동기적으로 복사해오도록 개선하여 수행 시간을 단축시킬 예정입니다.
- 두번째로, 병렬화를 구현하고자 합니다.
- 한 epoch은 이 그림과 같이 forward propagation과 backward propagation으로 구성됩니다.
- 레이어간의 계산에 디펜던시가 있기 때문에 현재 DSSTNE에서는 순차적으로 계산하고 있는데
- 이를 부분적으로 병렬화할 수 있을 것 같습니다.
- 세번째로, 멀티스트림을 구현할 예정입니다.
- CUDA 7.0에는 멀티 스트림 기능이 구현되어 있습니다.
- 그러나 현재 DSSTNE는 순차적으로 계산을 수행하고 있기 때문에 멀티 스트림 기능을 사용하고 있지 않습니다.
- 하지만 앞서 말한 것처럼 병렬화를 구현한다면, 각 GPU에 task를 분배하여 시간 단축을 도모할 수 있을 것 같습니다.
- 현재 개발 환경은 다음과 같습니다.
- 저희 프로젝트의 아키텍쳐는 이 다이어그램과 같습니다.
- 기본적으로 EC2의 instance에서 계산을 수행하고 이 인스턴스들은 AMI로 구성합니다.
- 예시 프로젝트의 데이터는 S3에 저장하고, 이것들을 Cloud Formation Template로 묶어 편하게 이용할 수 있도록 제공합니다.
- 한편 DSSTNE의 아키텍쳐는 다음과 같습니다.
- NNNetwork는 Neural Network를, NNLayer에서는 뉴런의 출력 값을, NNWeight는 레이어 간 시냅스의 weigh을 관리합니다.
- 현재 아키텍쳐는 흰색 글씨로 표현된 부분인데요,
- 개선이 이루어진 후에는 주황색으로 표현된 것과 같이 병렬화 가능한 부분과 불가능한 부분으로 세분하고, Backpropagation 함수도 Delta와 Gradient를 계산하는 부분으로 세분하여 최적화를 진행할 예정입니다.
- 현재 진행된 부분은 다음과 같습니다.
- DSSTNE와 그 prerequisite로 구성된 AMI, 거기에 추가로 Tensorflow를 이용할 수 있는 AMI를 구성하였습니다.
- iris flower 및 mnist dataset을 이용한 예시 프로젝트를 구성하였고요,
- 앞서 설명드린 바와 같이 코드를 분석하고 이에 따라 성능을 개선할 계획을 수립했습니다.
- 따라서 남은 기간 동안에는 사용성 개선을 위해서 S3, Cloud Formation을 이용할 계획이구요,
- 성능을 개선하고 이에 따른 성능을 테스트할 예정입니다.
- 저희 업무 분배는 이와 같고요,
- 스케줄은 이와 같습니다.
- 감사합니다.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement