Research project
TileCNN
A reproducible model-to-FPGA framework for running different quantized CNNs on one reusable INT8 accelerator, without rebuilding the FPGA for each network.
TileCNN is my current FPGA-accelerator research platform. It is an open hardware–software framework that maps quantized convolutional neural networks onto a reusable FPGA accelerator. It connects model export, target-aware compilation, tiled execution, deployment, validation, and measurement, so that the FPGA implementation does not have to be regenerated for every network it runs.
Research problem
Neural-network accelerators are often built around one dataflow or a narrow set of layer shapes. That specialization can deliver excellent peak performance, but it makes the design expensive to retarget as networks change: a new model often means a new bitstream. Useful deployment needs both efficiency and enough flexibility to handle layers with different spatial sizes, channel counts, kernel sizes, and strides.
Approach
TileCNN separates the reusable hardware target from the model-specific mapping. The accelerator, its kernel ABI, and the host configuration are fixed once a target is built. Changing networks changes the compiled schedule, parameters, and tensor layout, not the FPGA design.
The framework has four parts:
- FixQuant exports a quantized model in a hardware-independent form. It is the model-preparation side of TileCNN and is described on its own project page.
- The TileCNN compiler validates and lowers the network graph, selects legal tiles, partitions channels, builds schedules, and emits kernel descriptors for a specific target.
- The host runtime packs tensors, allocates device memory, runs the graph through XRT, collects outputs, and records measurements.
- The FPGA kernel executes the descriptor stream on a signed-INT8 tiled datapath that supports both dense and depthwise-separable CNNs.
Three versioned artifacts hold the workflow together and make runs reproducible:
| Artifact | Contents |
|---|---|
| ModelPackage | Quantized graph, tensors, fixed-point metadata, checksums, a validation input, and its integer reference output |
| TargetPackage | Matching host program, FPGA binary, boot image identity, kernel ABI, capabilities, and build provenance |
| RunRecord | Model and target identities, dataset and preprocessing, runtime settings, accuracy or reference status, timing |
Current scope
| Property | Current support |
|---|---|
| FPGA platform | AMD/Xilinx ZCU104 (XCZU7EV), Vitis/Vivado 2024.2, 200 MHz kernel clock |
| Arithmetic | Signed INT8 activations and weights with wider accumulation |
| Execution | Batch-one, descriptor-driven tiled inference |
| Validated networks | ResNet-50 and MobileNetV2 |
| Convolutions | Dense 1×1, 3×3, and 7×7 (stride 1 or 2) and depthwise |
| Other operations | Residual add, max pooling, global average pooling, activation, output quantization |
Results
The framework was evaluated on 3,923 ImageNet-mini validation images with two structurally different CNNs. Three hardware targets were built. They differ in the number of parallel spatial lanes and in how partial sums are buffered. Each target runs both networks without a model-specific FPGA rebuild.
Kernel latency per image and DSP use for each target. The number in each target’s name is its count of spatial lanes. PP means ping-pong partial-sum buffering, and S means a single buffer.
| Target | ResNet-50 | MobileNetV2 | DSP use |
|---|---|---|---|
| P2-PP | 54.97 ms | 9.49 ms | 25.8% |
| P4-PP | 34.65 ms | 8.18 ms | 40.6% |
| P8-S | 28.34 ms | 8.12 ms | 70.4% |
ResNet-50 keeps benefiting from wider targets, while MobileNetV2 gains little beyond P4-PP. This is the framework’s central finding: a reusable target should be chosen for the workload mix it will actually serve, not for theoretical peak throughput alone.
Status
This is active PhD research at the DeepHERO Lab, Mälardalen University. A manuscript describing the complete framework is in preparation, and a separate study examines layer-dependent scheduling bottlenecks in tiled FPGA CNN acceleration and the schedule optimizations that address them.