콘텐츠로 이동

RBLN NPU 아키텍처

ATOM™ 아키텍처

ATOM™은 인공신경망을 구동하는 데 필요한 모든 핵심 구성 요소들을 단일 칩으로 집적한 멀티코어 시스템 온 칩 (System-on-Chip, SoC)입니다. ATOM™은 Neural Engines, Command Processor, 온칩 로컬/글로벌 스크래치패드 메모리 계층, 네트워크 온 칩 (Network-on-Chip, NoC) 버스, PCIe 5.0 및 GDDR6 고속 입출력 인터페이스 등으로 구성되어 있습니다. ATOM™의 각 Neural Engine은 4MB의 로컬 SRAM (Scratch Pad)을 포함하고 있으며, 모든 Neural Engine이 공유할 수 있는 32MB의 글로벌 SRAM (Shared Memory)과 16GB의 오프칩 GDDR6 DRAM을 포함하고 있습니다. 이러한 온칩 및 오프칩 메모리 계층 구조는 메모리 접근으로 인해 소모되는 에너지를 최소화하면서 실행 성능을 최적화할 수 있도록 설계되었습니다.

16GB 이상의 메모리가 요구되는 대형 언어 모델(LLMs)과 같은 대규모 모델의 경우, 전체 모델을 단일 ATOM™ 디바이스로 구동할 수 없는데, 이 경우 리벨리온의 Rebellions Scalable Design (RSD) 아키텍처를 통해, 대규모 모델을 다수의 ATOM™ 디바이스에 분할하여 병렬적으로 처리할 수 있습니다. 이 과정에서 ATOM™ 디바이스 간의 데이터 통신 및 동기화가 필요하고, 이를 통해 적절한 실행을 보장할 수 있습니다.

보다 자세한 내용은 리벨리온이 제공하는 백서를 참고하시길 바랍니다:

명령어

RBLN 프로파일러는 다음과 같은 총 7개의 명령어를 제공합니다. [Host, Neural Engine Clusters, Neural DMA, Task DMA, External HDMA, Device HDMA, Device Sync]. 각 명령어는 연산, ATOM™ 구성 요소들 간 데이터 및 신호 전송 등을 나타냅니다. RBLN 프로파일러는 이러한 명령어들을 시간 순서대로 기록하고, 이 결과를 Perfetto를 통해 시각화하는 기능을 제공합니다. Perfetto에 대한 더 자세한 설명은 Perfetto 소개 문서에서 확인할 수 있습니다. 프로파일링 결과를 효과적으로 분석하기 위해 ATOM™의 하드웨어 구성요소 및 상단의 명령어 간 연결을 시각화한 아래의 그림을 참고하시기 바랍니다.

Host

Host 커맨드는, NPU에서 구동하는 것보다 host CPU에서 구동하는 것이 더 유리한 작업들 혹은 NPU에서 지원하지 않는 작업들에 대해 host CPU로 오프로드된 작업들을 의미합니다.

Neural Engine Clusters

Neural Engine Clusters 커맨드는 Neural Engine에서 구동되는 작업들을 의미합니다. Neural Engine은 낮은 지연 시간, 높은 자원 효율, 유연함 등에 초점을 맞춰 설계되어 다양한 연산작업을 효율적으로 처리할 수 있습니다. Neural Engine에서 지원되는 연산작업들은 지원하는 연산에 정리되어있습니다.

Neural DMA

Neural DMA 커맨드는 디바이스 DRAM과 Neural Engine의 Scratch Pad 사이의 데이터 전송을 의미하며, 프로그램 바이너리(Neural Engine 구동을 위한 프로그램 명령어 집합), 입력 텐서 데이터, 커널 가중치 등을 포함합니다. Neural DMA 커맨드는 다른 커맨드들과 동시에 수행될 수 있기 때문에, 필요에 따라 RBLN 컴파일러가 커맨드들 사이에 dependency 신호를 생성하여 올바른 실행을 보장할 수 있도록 하고, 이러한 dependency 신호는 Neural Engine의 Task Manager를 통해 관리됩니다.

Task DMA

Task DMA 커맨드는 디바이스 DRAM과 Shared Memory 사이의 데이터 전송을 의미하며, 입력 텐서 데이터, 중간 텐서 데이터, 커널 가중치 등을 포함합니다. RBLN 컴파일러는 Task DMANeural DMA 두 중류의 DMA 작업을 활용하여 타겟 워크로드의 최적의 성능을 달성할 수 있습니다.

External/Device HDMA

External HDMA 커맨드는 host DRAM과 디바이스 DRAM 사이의 데이터 전송을 의미하며, Device HDMA 커맨드는 RSD 구성하에서의 서로다른 디바이스 DRAM 사이 혹은 Shared Memory 사이의 데이터 전송을 의미합니다.

Device Sync

Device Sync 커맨드는 RSD 구성하에서의 서로다른 디바이스 사이의 동기화를 의미합니다. RBLN 컴파일러는 서로다른 디바이스 간의 올바른 동기화를 보장하며, 이 과정에서 데이터 통신 부하를 최소화 하고, 메모리 대역폭을 효율적으로 사용할 수 있도록 스케줄링 합니다. RBLN 컴파일러에 의해 생성된 Device Sync 커맨드들은 Command Processor에 의해 관리되며, 데이터 통신이 성공적으로 완료되었는지 검증하고 이후의 연속된 커맨드들을 즉시 실행할 수 있도록 합니다.