Deep learning has gained significant success in video applications such as classification, analytics, and self-supervised learning. However, when scaling out to a large volume of videos, existing approaches suffer from a fundamental limitation; they cannot efficiently utilize GPUs for training deep neural networks (DNNs). This is because video decoding in data preparation incurs a prohibitive amount of computing overhead, making GPU idle for the majority of training time. Otherwise, caching raw videos in memory or storage to bypass decoding is not scalable as they account for from tens to hundreds of terabytes. This paper proposes SAND, a system that enables deep learning frameworks to directly access training data by a storage abstraction. This abstraction effectively hides the data preprocessing delay, enabling GPUs to be fully utilized for DNN training. To accomplish this, SAND operates an in-storage cache and manages the cache by ahead-of-time scheduling to guarantee that requested training data can be always retrieved immediately from the cache. This scheduling considers the future data accesses of deep learning frameworks for cache replacement. Compared to the existing approach, our evaluation using emulated environments shows that SAND improves the GPU utilization by 6.0× and reduces the training time by 75.9% on average.
딥 러닝은 분류, 분석, 그리고 자기 지도 학습과 같은 비디오 응용 분야에서 상당한 성공을 거두었다. 그러나 대규모 비디오로 확장할 때, 기존 접근 방식은 기본적인 한계에 부딪힌다. 기존 방식은 GPU를 효율적으로 활용하지 못하기 때문이다. 데이터 준비 과정에서의 비디오 디코딩은 계산 오버헤드가 많이 발생하여 대부분의 학습 시간 동안 GPU가 유휴 상태에 머물게 된다. 그리고 디코딩을 우회하기 위해 메모리나 저장 공간에 원본 비디오를 캐싱하는 것은, 수십 테라바이트에서 수백 테라바이트에 이르는 용량으로 확장하기 어렵다. 본 논문에서는 SAND 라는 시스템을 제안한다. 이 시스템은 딥 러닝 프레임워크가 저장소 추상화를 통해 직접 학습 데이터에 액세스할 수 있도록 한다. 이 추상화는 데이터 전처리 지연을 효과적으로 숨겨주어 GPU가 DNN 학습에 완전히 활용될 수 있게 한다. 이를 위해 SAND는 저장소 내 캐시를 운영하고, 캐시를 미리 스케줄링하여 요청된 학습 데이터가 항상 캐시에서 즉시 검색될 수 있도록 보장한다. 이 스케줄링은 캐시 대체를 위해 딥 러닝 프레임워크의 미래 데이터 액세스를 고려한다. 기존 방법과 비교하여 에뮬레이션 환경에서의 평가 결과, SAND는 GPU 활용률을 평균 6.0배 향상시키고 학습 시간을 75.9% 줄였다.