디지털 라이브러리[ 검색결과 ]
Hierarchical N:M Sparsity를 통한 DNN 모델 가속화
http://doi.org/10.5626/JOK.2024.51.7.583
N:M sparsity pruning은 NVIDIA의 Sparse Tensor Core 기술을 활용하여 심층 신경망을 압 축하는 강력한 기법입니다. 하지만 이 기법은 하드웨어에 제한으로 인해 압축률이 고정되고 불필요한 입력 데이터 접근이 늘어나며 불균형한 중요 파라미터의 분포를 해결하지 못한다. 본 논문은 vector sparsity를 먼저 적용한 후 N:M sparsity를 적용하는 Hierarchical N:M(HiNM) sparsity를 제안하고, 이 sparsity를 위해 설계된 2-axis channel permutation (2CP) 기법을 제안한다. 실험 결과, HiNM sparsity은 기존 N:M sparsity보다 2배 높은 압축률에서 latency가 평균적으로 37% 감소하였다.
Tensor-Train Decomposition을 적용한 임베딩 레이어를 위한 연산 최적화 기법
http://doi.org/10.5626/JOK.2023.50.9.729
개인 맞춤형 추천 시스템은 일상에 녹아 들어있다. 하지만 딥 러닝 기반 추천 시스템 모델에서 임베딩 레이어는 과거 유저가 상호 작용하는 아이템 수가 늘어남에 따라, 임베딩 테이블의 메모리 사용량이 늘어 산업용 AI 데이터 센터의 리소스 대부분을 차지하고 있다. 이 문제를 극복하기 위한 해결책 중 하나는 심층 신경망에서 유망한 압축 기법인 Tensor-Train (TT) 분해이다. 본 연구에서는 TT-분해 기법이 적용된 임베딩 레이어의 연산인 Tensor-Train Gather and Reduce (TT-GnR)에서 발생하는 불필요한 연산에 관해 분석하고 이를 해결하기 위해 아이템 벡터들을 하나로 묶는 연산 단위인 그룹을 정의하고 그룹 단위로 연산하여 불필요한 연산을 줄이는 Group Reduced TT-Gather and Reduce (GRT-GnR) 연산을 제안한다. 실험을 통해 기존 TT-GnR 연산에 비해 latency가 41% 감소한다.
Processing-in-Memory를 위한 코드 생성 및 데이터 레이아웃 변형 기법
http://doi.org/10.5626/JOK.2023.50.8.639
Processing-in-Memory(PIM)은 메모리 내부의 병렬성과 대역폭을 활용하여 메모리 집약적인 연산에서 CPU 또는 GPU와 비교하여 좋은 성능을 달성한다. 그러나, 다양한 PIM 구조가 제안된 것에 비해 PIM 컴파일러에 대한 연구는 부족한 상황이다. 다양한 PIM의 구조를 고려하여 코드를 생성하기 위해서는 일반적인 PIM 스케줄 프리미티브와 PIM 메모리에 데이터를 저장하는 레이아웃을 고려해야 한다. 또한, PIM과 호스트 사이에 발생하는 데이터 이동을 최소화해야 한다. 본 논문에서 제안하는 PIM 컴파일러는 일반적인 PIM 구조를 정의하여 이러한 고려 사항을 해결하고, 추가로 레지스터 재사용 최적화를 통해 다양한 GEMV 연산에서 최대 2.49배 성능 개선을 달성한다.
ARM 기반 IoT 장치에서 효율적인 딥 러닝 수행을 위한 BLAS 및 신경망 라이브러리의 성능 및 에너지 비교
http://doi.org/10.5626/JOK.2019.46.3.219
기존에 IoT 장치에서 딥 러닝을 수행하기 위해 주로 클라우드 컴퓨팅을 사용했다. 그러나 클라우드 컴퓨팅을 사용할 경우 연결을 보장할 수 없고, 통신을 위한 에너지 소모, 그리고 보안에 대한 취약성이 문제가 된다. 이와 같은 문제점을 해결하기 위해 최근 IoT 장치 내에서 딥 러닝을 수행하기 위한 시도가 진행되고 있다. 이 시도들은 주로 IoT 장치를 위한 연산량이 적은 딥 러닝 모델 또는 압축 기법 등을 제안하지만, 실제 IoT 장치에서 수행될 때의 영향에 대한 분석이 부족했다. IoT 장치마다 연산 장치의 구성과 지원되는 라이브러리가 다르기 때문에, 최적의 딥 러닝 수행을 위해 각 IoT 장치에서 다양한 수행환경에 대한 분석이 필요하다. 본 논문에서는 다양한 하드웨어 구성을 가진 IoT 장치에서 수행 환경에 따른 성능 및 에너지를 측정하고 분석한다. 또한, 적절한 라이브러리를 사용하는 것만으로도 속도와 에너지 효율이 최대 9.43배, 26.78배까지 상승하는 것을 보여준다.