SAVANT
What is SAVANT?
We will understand about SAVANT Project.
SAVANT
폰 노이만 병목의 답으로서의 시스톨릭 배열
아두이노 나노 보드로 구현한 폰 노이만 구조와 2×2 시스톨릭 배열 아키텍처를 비교한 고등학교 연구 프로젝트입니다.
What?
SAVANT는 두 가지 컴퓨팅 패러다임을 물리적으로 구성하고 측정하는 실습 실험입니다:
- 대조군 — 공유 배열에 순차적으로 접근하는 단일 아두이노 나노로 폰 노이만 스타일의 메모리 병목 현상을 모델링
- 실험군 — 2×2 그리드로 연결된 네 개의 아두이노 나노로, 각 보드는 소형 시스톨릭 배열의 처리 요소(PE)로 동작
시스톨릭 배열에서는 두 가지 데이터 흐름 모드인 Output Stationary(OS)와 Weight Stationary(WS)를 테스트합니다.
저장소 구조
SAVANT/
├── single_board.ino # 대조군 (순차)
├── OS_PE00.ino # Output Stationary — 왼쪽 위
├── OS_PE01.ino # Output Stationary — 오른쪽 위
├── OS_PE10.ino # Output Stationary — 왼쪽 아래
├── OS_PE11.ino # Output Stationary — 오른쪽 아래
├── WS_PE00.ino # Weight Stationary — 왼쪽 위
├── WS_PE01.ino # Weight Stationary — 오른쪽 위
├── WS_PE10.ino # Weight Stationary — 왼쪽 아래
├── WS_PE11.ino # Weight Stationary — 오른쪽 아래
└── README.md실행 방법
- PE(1,1) → PE(0,1) → PE(1,0) → 마지막으로 PE(0,0) 업로드
- PE(0,0)과 PE(1,1)에서 시리얼 모니터를 9600 baud로 열기
- 시작하려면 PE(0,0)의 리셋 버튼을 누르기
- 시리얼 모니터에서 처리 시간(µs)과 통신 횟수 기록
- 조건별로 ≥5회 반복
측정 변수
| 유형 | 변수 |
|---|---|
| 독립 변수 | 처리 구조, 데이터 흐름(OS/WS), 행렬 크기 (M×N×P) |
| 종속 변수 | 처리 시간(µs), 메모리/통신 접근 횟수 |
이론적 사이클 수는 Raja(2024)의 공식을 사용하여 계산됩니다:
참고문헌
Tejas Raja, "Systolic Array Data Flows for Efficient Matrix Multiplication in Deep Neural Networks", arXiv:2410.22595, 2024.