The project aimed to build a compiler pipeline in MLIR that automatically quantizes floating-point neural network models, eg. FP32 to INT8/INT4, and includes a testing framework to benchmark accuracy vs. performance tradeoffs. Research Intern: Aaron Gabayoyo Project supervisor: Ajitha Rajan, Jackson Woodruff PhD Tutor: Eymen Unay Quantisation is the process of reducing the precision of the numbers inside a neural network — for example, converting 32-bit floating point numbers to 8-bit integers. This makes models smaller and faster to run, at the cost of a small drop in accuracy. The project aimed to build a compiler pipeline in MLIR that automatically quantizes floating-point neural network models, eg. FP32 to INT8/INT4, and includes a testing framework to benchmark accuracy vs. performance tradeoffs. Steps: MLIR Dialect & PassesDefine a simple quant dialect or extend the existing mlir::quant dialect Write analysis passes to identify quantization-sensitive layers (e.g. skip first/last layers) Implement a lowering pass: FP32 ops → quantized integer ops Quantization Strategies Implement post-training quantization (PTQ) — quantize a pre-trained model without retraining Add per-channel vs per-tensor quantization modes as a comparison (time permitting) Calibrate scale factors using a small representative dataset Testing & Evaluation Framework Write unit tests for each MLIR pass using mlir-opt + FileCheck Build an end-to-end benchmark: run a small model (e.g. MobileNet) through your pipeline Measure and report: model size, inference latency, and accuracy degradation Analysis Compare INT8 vs INT4 results Discuss which layers are most sensitive to quantization Reflect on MLIR's strengths/limitations for this task This article was published on Friday 30 October 2026