메뉴
HN
Hacker News 49일 전

콜모고로프-아놀드 네트워크를 활용한 FPGA 초고속 머신러닝

IMP
9/10
핵심 요약

최신 GPU 기반 머신러닝의 한계를 넘어 FPGA에서 나노초 단위의 초저지연 추론과 온라인 학습을 구현한 연구입니다. 콜모고로프-아놀드 네트워크(KAN) 구조와 FPGA의 룩업 테이블(LUT)을 결합하여 하드웨어 효율성을 극대화했습니다. FPGA 2026 및 ICML 2026 학회에서 최우수 논문으로 선정되는 등 하드웨어 가속 및 에지 AI 분야에서 중요한 진전을 보여줍니다.

번역된 본문

콜모고로프-아놀드 네트워크(KAN)를 활용한 FPGA 기반 초고속 머신러닝 2026년 6월 7일

이 글은 콜모고로프-아놀드 네트워크(KAN) 아키텍처를 사용하여 초고속 추론 및 온라인 학습을 위한 하드웨어 아키텍처를 설계한 저자의 석사 학위 논문에 대한 개괄적인 설명입니다. 이 글에서는 독자가 표준 머신러닝 개념과 하드웨어 및 디지털 회로에 대한 기본적인 이해를 갖추고 있다고 가정합니다. 후자에 대한 배경지식은 이전 포스팅을 참고하시기 바랍니다. 벤치마크와 주요 결과에 대한 자세한 내용은 아래의 두 논문을 읽어보시길 권장합니다.

[FPGA 2026 최우수 논문] 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 C. 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 *공동 제1저자

FPGA에서 머신러닝을 수행해야 하는 이유

대부분의 현대 머신러닝 워크로드는 학습이든 추론이든 관계없이 그래픽 처리 장치(GPU)에서 실행됩니다. 고도로 병렬화된 실행 모델을 지원하는 하드웨어 아키텍처를 통해 GPU는 대량의 데이터에 대해 단순한 연산을 매우 높은 처리량으로 수행할 수 있습니다. 이러한 특성 덕분에 대규모 아키텍처나 배치(Batch) 방식의 학습 및 추론이 필요한 머신러닝 문제에 GPU가 이상적입니다.

하지만 복잡한 GPU 아키텍처는 초저지연(예: 마이크로초 미만의 지연 시간)과 높은 하드웨어 효율성을 요구하는 애플리케이션의 요구를 충족할 수 없습니다. 프로세서(예: CPU 및 GPU)는 명령어 스케줄링 및 최적화, 동적 메모리 액세스 등에서 상당한 오버헤드를 발생시킵니다. 대신 나노초 수준의 초저지연 및 고효율성이 요구되는 매우 특수한 워크로드는 맞춤형 하드웨어 가속기가 더 잘 처리할 수 있습니다.

현장 프로그래밍 가능 게이트 어레이(FPGA)는 재구성 가능한 디지털 논리 장치로, 이러한 맞춤형 하드웨어 가속 방식에 매우 적합합니다. FPGA는 모든 이진 입력 조합에 대한 출력 값을 열거하여 디지털 함수를 나타내는 룩업 테이블(LUT), 상태를 저장하는 플립플롭(FF), 그리고 기타 메모리 및 연산 프리미티브(기본 요소)를 포함하고 있습니다. 이러한 구성 요소와 요소 간의 연결을 재구성하여 맞춤형 디지털 회로를 설계할 수 있으며, 이를 통해 저수준 하드웨어 아키텍처와 알고리즘의 공동 설계(Co-design)가 가능해져 초고속 머신러닝을 구현할 수 있습니다. 중요한 점은, 신경망이 프로세서에서 순차적으로 실행되는 명령어가 아니라 디지털 논리 자체로 직접 구현된다는 것입니다.

배경지식: 고정소수점 양자화(Fixed-point quantization)

FPGA 및 기타 디지털 장치는 근본적으로 연속적인 값이 아닌 비트(Bit) 단위로 작동합니다. 하지만 우리는 흔히 신경망의 산술 연산(예: 곱셈, 덧셈)이 실수(Real number) 체계에서 이루어진다고 생각합니다. 따라서 실수를 비트 문자열(비트의 나열)로 인코딩해야 하며, 이 과정을 **양자화(Quantization)**라고 합니다. 덧셈 및 곱셈과 같은 연산은 이후 이진 함수가 됩니다. 이를 수행하는 한 가지 방법이 고정소수점 양자화입니다.

고정소수점 양자화는 소수점 뒤에 일부 비트(소수부 비트)가 오는 2진법 기수(Base-2)로 숫자를 표현합니다. 예를 들어, 총 8비트를 사용하고 소수점 이하 4비트(소수부)를 사용하는 경우, -8($(-2^7) / 2^4$)부터 7.9375($(2^7 - 1) / 2^4$)까지 $2^8$개의 값을 표현할 수 있으며, 이 값들은 $0.0625$($1/2^4$) 간격으로 균일하게 배치됩니다. 여기서는 표현 가능한 범위가 0을 기준으로 대칭이라고 가정하겠습니다.

고정소수점 양자화 방식에서는 고정된 범위 내의 이산적인(불연속적인) 값 집합만 표현할 수 있으므로, 실수를 표현하려고 할 때 근사 오차가 발생합니다. 자원 효율적인 머신러닝의 핵심 중 하나는 이러한 근사 오차, 즉 **양자화 오차(Quantization error)**를 최소화하는 것입니다.

원문 보기
원문 보기 (영어)
Ultrafast machine learning on FPGAs via Kolmogorov-Arnold Networks 07 Jun 2026 This post is a high-level explainer for my Master’s thesis, which involves designing hardware architectures for ultrafast inference and online learning using the Kolmogorov-Arnold Network (KAN) architecture. I’ll assume familiarity with standard machine learning concepts, as well as some understanding of hardware and digital circuits; read my previous post here for the latter. Please read the two papers below for more information, particularly for details on benchmarks and notable results. [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 *equal contribution The case for machine learning on FPGAs Most modern machine learning workloads, whether training or inference, run on graphics processing units (GPUs). Through hardware architectures that support a highly parallel execution model, GPUs can perform simple operations on large amounts of data with extremely high throughput. This makes them ideal for machine learning problems involving large architectures or batch-style training and inference. However, complex GPU architectures cannot meet the demands of applications that require ultra-low latency (e.g. sub-microsecond latency) and high hardware efficiency. Processors (e.g. CPUs and GPUs) incur significant overhead from scheduling and optimizing instructions, dynamically accessing memory, and so on. Extremely specialized workloads with ultralow latency (e.g. $\sim$nanoseconds) and efficiency requirements are instead better served by custom hardware accelerators . Field-programmable gate arrays, or FPGAs, are reconfigurable digital logic devices that are extremely well-suited for this style of custom hardware acceleration. FPGAs contain lookup tables (LUTs), which represent digital functions by enumerating the output value for every combination of binary inputs; flip-flops (FFs), which store state; and other memory and computation primitives. These components and the connections between them are reconfigured to design a custom digital circuit, allowing for low-level hardware architecture and algorithm co-design that enables ultrafast machine learning. Importantly, neural networks are implemented directly as digital logic , rather than as instructions that are sequentially executed on a processor. Background Fixed-point quantization FPGAs and other digital devices fundamentally operate on bits rather than continuous values. However, we often think about arithmetic operations in neural networks (e.g. $\times, +$) as happening over the real numbers $\mathbb R$. We thus need to encode real numbers as bitstrings (sequences of bits), a process known as quantization . Operations like addition and multiplication then become binary functions. One method for doing this is fixed-point quantization . Fixed-point quantization represents numbers in base-2, where some bits (fractional bits) come after the decimal point. To illustrate, if we use 8 bits total with 4 fractional bits after the decimal point, we can represent $2^8$ values from $(-2^7) / 2^4 = -8$ to $(2^7 - 1) / 2^4 = 7.9375$, spaced evenly in increments of $1/2^4 = 0.0625$. We will assume here that the representable range is symmetric about zero. In a fixed-point quantization scheme, we can only represent a discrete set of values in some fixed range, which will lead to approximation error when trying to represent real values. One focus of resource-efficient machine learning is minimizing this approximation error, or quantization error , to enable stable training and inference. Lookup-table neural networks (LUT-NNs) FPGAs implement digital logic primarily through lookup tables (LUTs), which are small components that represent arbitrary binary functions by storing their output for each combination of binary inputs. For example, $\text{AND} : \{0, 1\}^2 \to \{0, 1\}$ 1 is represented with a lookup table Input ($x,y$) $x\text{ AND }y$ 00 0 01 0 10 0 11 1 It then makes sense to learn these binary functions, represented as lookup tables, as core primitives of a neural network: such a network is known as a lookup-table neural network (LUT-NN). However, learning lookup tables through gradient descent or similar approaches is difficult. To address this issue, recall that we can learn real-valued functions $f: \mathbb R \to \mathbb R$ through gradient descent. If we perform fixed-point quantization with $b_i$ input bits and $b_o$ output bits, $f$ becomes a binary function $f_Q : \{0, 1\}^{b_i} \to \{0, 1\}^{b_o}$. We can then learn continuous $f$ and quantize to get our desired lookup tables! To convert $f$ into a LUT, we discretize the function domain and range into $N_i = 2^{b_i}$ and $N_o = 2^{b_o}$ values. The lookup table of $f_Q$ stores, for each of the input values $I \in \{I_0, I_1, \ldots, I_{N_i-1}\}$, the corresponding output. Quantizing a continuous $f$ (dashed line) to a binary function $f_Q$ (orange dots). The example function $f$ above, where $q_{l-1}$ and $q_{l}$ represent quantization of the inputs and outputs, produces a binary function $f_Q$ with LUT: \(q_{l-1}(x_l)\) \(q_l(x_{l+1})\) 00 000 01 011 10 100 11 111 We could also extend this approach to represent multivariate functions as lookup tables, where $f_m: \mathbb{R}^{d_i} \to \mathbb{R}^{d_o}$ would turn into a binary function with $d_i b_i$ input bits and $d_o b_o$ output bits. In this lookup table, we store entries of size $d_o b_o$ for each of the $2^{d_i b_i}$ possible combinations of inputs. This is clearly impractical for any reasonable $d_i$. LUT-based networks therefore combine smaller lookup tables with arithmetic operations to enable architectures that are expressive, resource efficient, and easily trainable. Kolmogorov-Arnold Networks (KANs) KANs replace the learnable weights and fixed activation functions in MLP (multi-layer perceptron) architectures with learnable activation functions . In this work, we demonstrate that KANs are a natural architecture for efficient, expressive LUT-NNs. In a KAN layer, each edge carries a learnable univariate function instead of a scalar weight. For a KAN layer with $n_{\mathrm{in}}$ inputs and $n_{\mathrm{out}}$ outputs, the activation of the $q$-th output is \[y_q = \sum_{p=1}^{n_{\mathrm{in}}} \phi_{q,p}(x_p),\] where $\phi_{q,p} \colon \mathbb{R} \to \mathbb{R}$ are the learned edge activations. Compared to an MLP, which uses \[y_q = \sigma\left( \sum_{p=1}^{n_{\mathrm{in}}} w_{q,p} x_p + b_q \right)\] with fixed $\sigma$, the KAN places the nonlinearity in the edge functions $\{ \phi_{q,p} \}$ and keeps the node operation as a simple sum. The next question is how to learn the KAN activations $\{ \phi_{q,p} \}$. To do so, we parametrize them as linear combinations of some functional basis: \[\phi_{q,p}(x) = \sum_{i=1}^n c_{q,p,i}B_i(x),\] which allows us to treat the coefficients $c_{q,p,i}$ as trainable parameters for gradient descent. The original KAN paper uses B-splines , which form a polynomial basis that is smooth and also local , i.e. only a subset of basis functions are nonzero for any given input. Additionally, B-splines, and therefore the activations $\{ \phi_{q,p} \}$, are defined over a small, finite domain (e.g. $[-1, 1]$), which turns out to be important. Terminology: B-splines refer to the basis functions ${B_i}$, whereas activations refer to the learned $\phi_{q,p}(x) = \sum_{i=1}^n c_{q,p,i}B_i(x)$. While the complete behavior of the KAN architecture has yet to be fully explored, it offers potential improvements over MLPs in scaling