AMD
United Kingdom
During my placement at AMD Research and Advanced Development, I worked on FINN, an open-source system that converts compact artificial-intelligence models into custom hardware for FPGAs. My project focused on Vision Transformers, a type of model used for image understanding. I developed the missing software and hardware support needed to take two transformer models, TinyDeiT and SigLIP, from their trained PyTorch form through compiler checks, hardware simulation and FPGA design generation. The work demonstrated a reusable route for supporting transformer models rather than a one-off implementation for a single network.
I led the vision transformer-focused development within the project. I identified parts of the models that FINN could not previously handle and created reusable components for adding and selecting image tokens, choosing values within a model, and implementing complex activation functions efficiently in hardware. The largest individual contribution was PWPolyF, which approximates functions used inside transformers with small piecewise polynomials and is integrated into the compiler flow. I also utilised an existing hardware-reuse method so repeated transformer blocks could share one implementation, fixed compiler and simulation issues found during integration, and developed an automated method for selecting hardware parallelism. I prepared a poster for the FINN Community Workshop at FPL 2026 explaining PWPolyF and its use in TinyDeiT.
I developed skills across machine learning, software and digital hardware. These included Python and PyTorch; model quantisation; ONNX-based graph transformation; compiler design; creating and testing reusable FINN operators; RTL and SystemVerilog development; FPGA simulation, synthesis and implementation with AMD Vivado; performance and resource estimation; automated hardware design-space search; Git-based development; and writing tests and documentation for an open-source research codebase. I also learned how to distinguish model correctness, cycle-accurate hardware verification, synthesis feasibility and real board measurements.
The placement developed my independence, technical judgement and project planning because I had to decide whether each problem should be solved in the model, compiler or hardware. Detailed pull-request reviews improved how I respond to feedback, justify design choices and write maintainable code for other contributors. I collaborated with researchers specialising in machine learning, compilers and hardware, while taking responsibility for the overall transformer flow. I also gave an extended presentation to the wider research group, including non-FPGA specialists. This taught me to define unfamiliar terms, use clear system-level diagrams and explain why engineering trade-offs matter without relying on specialist vocabulary.