5월, 2026의 게시물 표시

[Embedded System Lab] Chapter 6 - Systolic Array Theory

이미지
"Systolic Array Theory" [Objective] HW Architecture의 연산 Mechanism을 SW(Python) Simulation을 통해 분석하고 이해하기 [Theory] ▣ 1D Systolic Array > Algorithm Intensity · High Operational Intensity : Deep Learning의 핵심인 GEMM 연산은 연산 횟수(Ops)가 데이터 양에 비해 압도적으로 많음 · 이론적으로 GEMM은 Compute-Bound에 해당 → But, 실제 HW에서는 메모리 대역폭의 한계로 인해 'Memory-Bound' 구간에 머물며 최대 성능을 낼 수 없음 ※ Memory-Bound (메모리 대역폭 제한) · HW의 성능이 메모리 대역폭(Bandwidth)의 한계로 인해 제한되는 상태 · 연산 장치는 매우 빠르지만, 데이터를 메모리에서 가져오는 속도가 느려 ALU(연산 Unit)가 데이터를 기다리며 노는 시간 발생 → 데이터 전송에 소모되는 에너지와 지연 시간이 실제 연산 비용보다 월등히 크기 때문에 발생 → Von Neumann Bottleneck ※ Compute-Bound (연산 중심적) · HW의 최대 성능이 Processor의 연산 속도(FLOPS)에 의해 제한되는 상태 · 데이터 공급 속도가 충분히 빨라서, ALU가 쉬지 않고 돌아갈 때 발생 → GEMM은 이론적으로 이 구간에 해당 > 데이터 이동 비용의 비대칭성 (Energy & Latency) · Data Movement Cost : 데이터 전송에 소모되는 에너지가 연산에 사용되는 에너지에 비해 월등히 큼 · Von Neumann Bottleneck : CPU와 메모리가 분리된 구조에서는 매 연산마다 발생하는 Bus Traffic이 에너지 효율과 성능의 근본적인 한계로 작용 > HW적 설계 목표 - Data Locality 최적화 · Temporal & Spatial Localit...