6 TOPS × 3 NPU Cluster: 과연 18 TOPS일까? 421번 재고, 틀린 것까지 공개한 이야기

유형
발표
트랙
기타
언어
한국어

6 TOPS짜리 NPU가 달린 보드 세 대를 평범한 이더넷으로 묶으면 18 TOPS가 될까요.

데이터시트의 산술은 그렇다고 합니다. 실제로 재 보면 그 질문 자체가 서로 다른 두 질문이 겹쳐 있는 것이었습니다.

NanoPi R76S(Rockchip RK3576, 6 TOPS) 세 대를 표준 2.5GbE와 평범한 gRPC로 묶어 요청 단위 데이터 병렬 추론 런타임을 Rust로 만들고, 2주 동안 421건을 실측했습니다. 보드는 개당 USD 110이었는데, 정작 스위치와 10G NIC이 보드값의 절반을 넘었습니다. 처리량은 112.9에서 338.4 inf/s로, 3.00배 거의 선형으로 확장했습니다.

그런데 이건 TOPS가 더해졌다는 뜻이 아닙니다. 이미 “클러스터로 묶이는 비용”을 치른 기준선에서 출발한 수치입니다. 발표의 앞부분은 이 둘을 분리하는 데 씁니다.

발표의 절반은 답이 아니라 답을 낸 과정입니다

421건을 재는 동안 결론의 부호가 뒤집힌 적이 네 번, 계기가 거짓말한 적이 여섯 번 있었습니다.

여섯 번의 오측정은 전부 성공처럼 보였습니다. 숫자가 나왔고, 그럴듯했고, 아무도 멈추지 않았습니다. 네 건은 다른 측정과 대조해서, 두 건은 도구가 시끄럽게 굴어서 잡혔습니다. 그리고 그중 셋은 뿌리가 하나였습니다 — 계기가 틀렸고, 그 위에 설명이 세워졌고, 그 설명이 다른 문서로 번졌습니다.

틀린 것을 지우지 않았습니다

이 발표에서 제일 하고 싶은 이야기입니다.

철회한 주장, 잘못 잰 온도, 취소선 친 결론, 계기가 거짓말한 여섯 건의 목록까지 저장소에 그대로 남아 있습니다. 421건 원본 데이터도, 실험 보고서 12건도, “이건 아직 설명하지 못했다”고 적어 둔 잔차 16.1%도 공개돼 있습니다. 발표에 쓰는 숫자는 전부 원본 데이터로 역추적되고, 각 숫자가 어떤 조건에서 나왔는지도 함께 공개돼 있습니다.

제 발표를 듣고 그 자리에서 반박하실 수 있습니다. 그게 이 프로젝트에서 제일 값어치 있는 부분이라고 생각합니다.

다루는 것

다루지 않는 것

이런 분께

엣지에서 추론을 굴리거나 굴릴 예정인 분, 저가 SBC와 NPU 생태계를 보고 계신 분, 그리고 벤치마크를 만들거나 남의 벤치마크 숫자를 믿어야 하는 모든 분.

NPU나 RKNN 사전 지식은 필요 없습니다. 필요한 만큼 앞에서 깝니다. 뒷부분의 측정 방법론 이야기는 NPU와 무관하게 성립하므로 도메인이 달라도 가져가실 수 있습니다.

런타임과 421건의 원본 데이터, 실험 보고서, 아키텍처 결정 기록은 모두 오픈소스로 공개돼 있습니다. 저장소와 프로젝트 페이지 주소는 요청하시면 바로 드리겠습니다.

발표자