Kolmogorov‑Arnold 네트워크를 활용한 FPGA 초고속 머신러닝

발행: (2026년 6월 10일 AM 04:21 GMT+9)
9 분 소요

출처: Hacker News

07 Jun 2026

이 글은 내 석사 논문의 고수준 설명으로, Kolmogorov‑Arnold Network (KAN) 구조를 이용한 초고속 추론 및 온라인 학습을 위한 하드웨어 아키텍처 설계에 관한 내용이다. 표준 머신러닝 개념에 익숙하고, 하드웨어와 디지털 회로에 대한 어느 정도 이해가 있다고 가정한다; 뒤쪽 내용은 이전 글(여기)을 참고하라.

아래 두 논문을 읽어 자세한 정보, 특히 벤치마크와 주요 결과를 확인하길 바란다.

[FPGA 2026 Best Paper]

Duc Hoang*****, Aarush Gupta*****, and Philip C. Harris. “KANELÉ: Kolmogorov–Arnold Networks for Efficient LUT-based Evaluation.” Proceedings of the 2026 ACM/SIGDA International Symposium on Field Programmable Gate Arrays. ACM, 2026. https://dx.doi.org/10.1145/3748173.3779202

[ICML 2026]

Duc Hoang*****, Aarush Gupta*****, and Philip Harris. “Ultrafast on-FPGA Online Learning via Spline Locality in Kolmogorov-Arnold Networks.” arXiv preprint arXiv:2602.02056, 2026. https://arxiv.org/abs/2602.02056

*동등 기여

FPGA에서 머신러닝을 사용해야 하는 이유

현대의 대부분 머신러닝 워크로드(학습이든 추론이든)는 그래픽 처리 장치(GPU)에서 실행된다. GPU는 높은 수준의 병렬 실행 모델을 지원하는 하드웨어 아키텍처 덕분에 방대한 양의 데이터를 간단한 연산으로 매우 높은 처리량을 내며 처리할 수 있다. 따라서 대규모 모델이나 배치‑스타일 학습·추론에 이상적이다.

하지만 복잡한 GPU 아키텍처는 초저지연(예: 마이크로초 이하)과 높은 하드웨어 효율성을 요구하는 애플리케이션의 요구를 충족시키지 못한다. 프로세서(CPU·GPU)는 스케줄링·명령 최적화, 동적 메모리 접근 등에서 상당한 오버헤드를 발생시킨다. 나노초 수준의 초저지연과 효율성을 필요로 하는 매우 특수한 워크로드는 맞춤형 하드웨어 가속기가 더 적합하다.

필드‑프로그래머블 게이트 어레이, 즉 FPGA는 재구성 가능한 디지털 로직 장치로, 이러한 맞춤형 가속에 최적화되어 있다. FPGA는 입력 비트 조합마다 출력 값을 열거해 디지털 함수를 표현하는 룩업 테이블(LUT), 상태를 저장하는 플립플롭(FF), 그리고 기타 메모리·연산 원시소자를 포함한다. 이 구성 요소와 그 연결을 재구성해 맞춤형 디지털 회로를 설계함으로써, 초고속 머신러닝을 가능하게 하는 저수준 하드웨어 아키텍처와 알고리즘의 공동 설계가 가능해진다. 중요한 점은 신경망이 프로세서에서 순차적으로 실행되는 명령이 아니라 디지털 로직 자체로 구현된다는 것이다.

배경

고정소수점 양자화

FPGA와 기타 디지털 장치는 연속값이 아닌 비트 단위로 동작한다. 하지만 우리는 신경망의 산술 연산(예: $\times, +$)을 실수 집합 $\mathbb R$ 위에서 일어난다고 생각한다. 따라서 실수를 비트열(비트 시퀀스)로 인코딩해야 하는데, 이를 양자화라고 한다. 덧셈·곱셈과 같은 연산은 이제 이진 함수가 된다.

그 방법 중 하나가 고정소수점 양자화이다.

고정소수점 양자화는 숫자를 2진수 기반으로 표현하며, 소수점 뒤에 일부 비트를 소수 비트로 둔다. 예를 들어 전체 8비트 중 소수점 뒤에 4비트를 사용한다면, $(-2^7)/2^4 = -8$부터 $(2^7-1)/2^4 = 7.9375$까지 $2^8$개의 값을 $0.0625$ 간격으로 균등하게 표현할 수 있다. 여기서는 표현 가능한 구간이 0을 중심으로 대칭이라고 가정한다.

고정소수점 양자화 방식에서는 일정 구간 내에서 이산적인 값만 표현할 수 있기 때문에, 실수를 근사할 때 근사 오차가 발생한다. 자원 효율적인 머신러닝에서는 이 양자화 오차를 최소화해 안정적인 학습·추론을 가능하게 하는 것이 핵심 과제이다.

룩업 테이블 신경망 (LUT‑NN)

FPGA는 주로 룩업 테이블(LUT)을 통해 디지털 로직을 구현한다. LUT는 입력 비트 조합마다 출력을 저장함으로써 임의의 이진 함수를 표현하는 작은 구성 요소이다. 예를 들어 $\text{AND} : {0, 1}^2 \to {0, 1}$1은 다음과 같이 LUT로 나타낼 수 있다.

Input ($x,y$)$x\text{ AND }y$
000
010
100
111

따라서 이러한 이진 함수를 LUT 형태로 학습하는 것이 신경망의 핵심 원시소가 될 수 있다. 이런 네트워크를 **룩업 테이블 신경망(LUT‑NN)**이라고 부른다. 하지만 LUT를 직접 gradient descent 등으로 학습하는 것은 어렵다.

이를 해결하기 위해, 실수값 함수 $f:\mathbb R \to \mathbb R$를 gradient descent로 학습할 수 있다는 점을 떠올리자. 입력 비트 수 $b_i$, 출력 비트 수 $b_o$로 고정소수점 양자화를 하면 $f$는 이진 함수 $f_Q : {0,1}^{b_i} \to {0,1}^{b_o}$가 된다. 연속 함수 $f$를 학습한 뒤 양자화하면 원하는 LUT를 얻을 수 있다!

$f$를 LUT로 변환하려면 함수 정의역과 치역을 각각 $N_i = 2^{b_i}$, $N_o = 2^{b_o}$개의 값으로 이산화한다. $f_Q$의 룩업 테이블은 각 입력값 $I \in {I_0, I_1, \ldots, I_{N_i-1}}$에 대해 대응되는 출력을 저장한다.

LUT quantization process 연속 함수 $f$(점선)를 이진 함수 $f_Q$(주황색 점)로 양자화하는 과정.

위 예시 함수 $f$에서, $q_{l-1}$와 $q_{l}$은 각각 입력·출력의 양자화를 의미하며, 다음과 같은 LUT를 갖는 이진 함수 $f_Q$를 만든다.

(q_{l-1}(x_l))(q_l(x_{l+1}))
00000
01011
10100
11111

다변량 함수를 LUT로 표현하는 방식도 확장할 수 있다. $f_m:\mathbb{R}^{d_i} \to \mathbb{R}^{d_o}$는 입력 비트 $d_i b_i$, 출력 비트 $d_o b_o$를 갖는 이진 함수가 된다.

이 LUT에서는 $2^{d_i b_i}$개의 가능한 입력 조합마다 $d_o b_o$ 크기의 엔트리를 저장한다.

0 조회
Back to Blog

관련 글

더 보기 »

생물학적 진화와 정보 획득

A few weeks ago we lookedhttps://www.construction-physics.com/p/information-and-technological-evolution at a simulation of technological evolutionhttps://sites....

단순 HTML의 놀라운 효과 (2021)

I've told this story at conferences - but due to the general situation I thought I'd retell it here. A few years ago I was doing policy research in a housing be...