Analysis updated 2026-05-18
Train a Kolmogorov-Arnold Network on a GPU and convert it into integer lookup tables for hardware use.
Simulate bit for bit how a trained model would behave on real FPGA hardware before building it.
Test how well a deployed model adapts to shifting data using small online updates.
Run the included classification and digit recognition demos to see the full training to hardware pipeline.
| philtomson/kan_lut | fluxml/flux.jl | julialang/julia | |
|---|---|---|---|
| Stars | 15 | 4,725 | 48,666 |
| Language | Julia | Julia | Julia |
| Setup difficulty | hard | moderate | hard |
| Complexity | 5/5 | 3/5 | 5/5 |
| Audience | researcher | researcher | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires Julia, an AMD GPU for the accelerated training path, and familiarity with FPGA and quantization concepts to follow along fully.
KAN_LUT is a research framework, written in the Julia programming language, for building a type of neural network called a Kolmogorov-Arnold Network, or KAN, and running it efficiently on a special kind of reconfigurable chip called an FPGA. A regular neural network mostly moves numbers through fixed math operations, but a KAN instead learns curved functions along each connection between nodes, using a mathematical shape called a B-spline. According to the README, this can match or beat the accuracy of a regular network while using far fewer parameters, and because each learned function is simple and per connection, it can be turned into a lookup table on the chip instead of requiring heavy floating point math, which makes it fast and efficient in hardware. The project supports training these networks on an AMD graphics card using a machine learning library called Flux, then converting the trained model into small integer lookup tables that a chip can use directly. It also includes a simulator that mimics, bit for bit, how the real chip hardware would run the same lookup tables, plus support for training with very small numbers of bits per value and for updating the tables in small steps after the model has already been deployed, so it can adapt if the kind of data it sees changes over time. Setup involves cloning the repository and using Julia's package manager to install its dependencies. Two full worked examples are included: a simple two dimensional classification task with two curved, interleaving groups of points, and a handwritten digit recognition task using a shrunk down version of the classic MNIST dataset. Each example shows a full pipeline of training the network, converting it into lookup tables, running it as if it were on real hardware, and then testing how well it adapts when the data distribution shifts, with a script to draw the decision boundaries as an image for the two dimensional example. The programming language is Julia, and the project currently has 15 stars. No license is stated in the README, so its reuse terms are unclear.
A Julia framework for training a lookup table friendly type of neural network, called a KAN, and simulating how it would run fast and efficiently on FPGA chips.
Mainly Julia. The stack also includes Julia, Flux.jl, AMDGPU.jl.
No license information is given in the README, so by default you do not have permission to reuse, modify, or redistribute this code.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.