희소 컨볼루션 신경망(Sparse convolutional neural network, SCNN) 가속기는 0으로 값이 정해진 활성화 픽셀과 필터 가중치를 활용함으로써 불필요한 계산과 메모리 접근을 제거한다. 그러나 곱셈기 어레이와 누산기(accumulator) 버퍼 사이의 데이터 이동은 성능 병목이 되는 경향이 있다. 구체적으로, SCNN 가속기의 핵심 블록인 scatter 네트워크는 누산기 버퍼에 카르테시안 곱을 전달하며, 버스 경합(bus contention)으로 인해 일부 곱은 즉시 전달되지 못한다. 이전의 SCNN 기반 아키텍처는 서로 다른 데이터플로우를 활용함으로써 버스 경합을 제거하고 성능을 유의미하게 향상시켰다. 그러나 이 방식은 가중치 희소성(weight sparsity)에만 의존하며, 성능이 작업량(workload)에 크게 좌우된다. 본 논문에서는 SCNN 가속기를 위한 새로운 scatter 네트워크 아키텍처를 제안한다. 첫째, window 및 split queuing과 같은 네트워크 토폴로지(network topologies)를 제안하며, 이는 scatter 네트워크에서 FIFO와 크로스바 버스(crossbar buses) 사이의 연결을 정의한다. 둘째, 고정 우선순위(fixed priority), 라운드 로빈(round-robin), 최장 대기열 우선(longest-queue-first)과 같은 중재(arbitration) 알고리즘을 조사하며, 이는 누산기 버퍼로 전달되는 곱의 우선순위를 정의한다. 그러나 scatter 네트워크 아키텍처의 최적화만으로는 버스 경합 자체를 감소시키지 않기 때문에 충분한 성능 향상을 제공하지 못할 수 있다. 이에 본 논문에서는 누산기 버퍼에 대해 입방체 제약(cubic-constrained) 뱅크 할당(bank allocation)을 제안하며, 이는 하드웨어 면적의 증가 없이 버스 경합을 줄인다. 사이클 정확(cycle-accurate) 시뮬레이션, 레지스터-전송 수준(register-transfer-level, RTL) 설계, 논리 합성(logic synthesis) 결과를 바탕으로, 본 연구는 SCNN 가속기의 성능과 복잡성 간의 트레이드오프를 고찰한다. 구체적으로, 최적화된 SCNN 가속기를 AlexNet에 적용했을 때 제안된 scatter 네트워크 아키텍처가 버스 경합으로 인한 성능 저하의 대부분을 제거하여 가속기 성능을 72% 향상시키며, 면적은 18% 증가하는 것으로 검증된다. 또한 제안된 뱅크 할당은 SqueezeNet에 적용할 경우 최대 31%의 추가 성능 이득을 제공함이 나타난다. 제안된 scatter 네트워크 아키텍처와 뱅크 할당은 scatter 네트워크를 제외한 다른 가속기 구성요소를 변경하지 않고도, 작업량과 무관하게 대부분의 카르테시안 곱 기반 가속기에서 버스 경합을 제거할 수 있다.
*본 초록은 AI를 통해 원문을 번역한 내용입니다. 정확한 내용은 하기 원문에서 확인해주세요.