Welcome!

Information regarding the fwX project will be available on this page. This project is developed by members of the Hong Group in the Department of Physics and Astronomy and collaborators.

What is fwX

  • Its full name is ''firmware ex machina,'' a play of the phrase in Latin / Greek deus ex machina / θεὸς ἐκ μηχανῆς. Since it's a mouthful to say, we refer to it as fwX.
  • It is a software package to design nanosecond implementation of machine learning / artificial intelligence algorithms on FPGA for use in high energy physics.

Where to find information

  • Papers
    # Short description Paper title Links Author list
    1 Classification with flat trees in HLS Nanosecond machine learning event classification with boosted decision trees in FPGA for high energy physics (2021-08-04) T.M. Hong,* B.T. Carlson, B.R. Eubanks, S.T. Racz, S.T. Roche, J. Stelzer and D.C. Stumpp
    2 Regression with end-to-end decision trees in HLS Nanosecond machine learning regression with deep boosted decision trees in FPGA for high energy physics (2022-09-07) B.T. Carlson, Q. Bayer, T.M. Hong* and S.T. Roche
    3 Anomaly detection with end-to-end decision tree-based autoencoder in HLS Nanosecond anomaly detection with decision trees and real-time application to exotic Higgs decays (2024-04-11) S.T. Roche, Q. Bayer, B.T. Carlson, W.C. Ouligian, P. Serhiayenka, J. Stelzer, T.M. Hong*

  • Data samples / code
    # Short description Data sample Code / testbench
    1 Classification with flat tree architecture in HLS
    2 Regression with end-to-end tree architecture in HLS
    • fwXmachina example: Missing transverse energy regression, Mendeley Data, doi:10.17632/d4c94r9254.1 (2022-07-13)
    • Python: Available upon request
    • IP testbench: Available upon request
    3 Anomaly detection with end-to-end decision tree-based autoencoder in HLS
    • fwXmachina example: Anomaly detection, Mendeley Data, doi: 10.17632/y698s5kscs.1 (2023-04-11). This sample is used in v1 of the paper draft [arXiv:2304.03836v1]
    • fwXmachina example: Anomaly detection for two photons and two jets, Mendeley Data, doi: 10.17632/44t976dyrj.1 (2024-02-05). This sample is used in the final version of the paper.

  • Talks / Posters
    # Date Type: Title Venue / Link Speaker
    1 2021-05-24 Talk: Comparisons to hls4ml's boosted decision tree results Phenomenology Symposium, Pheno 2021, indico T.M. Hong
    2 2021-06-06 Poster: Nanosecond machine learning with BDT for high energy physics Virtual HEP conference on Run4@LHC, Offshell 2021, indico B.T. Carlson
    3 2021-07-13 Talk: Nanosecond machine learning with BDT for high energy physics Division of Particles and Fields (DPF) in the American Physical Society (APS), indico B.T Carlson
    4 2021-09-28 Seminar: Invisible Higgs decays & trigger challenges at the LHC University of Geneva, Switzerland T.M. Hong
    5 2021-10-18 Talk: Presentation of fwX BDT 18th Int'l Conf. on Accelerator and Large Experimental Physics Control Systems, ICALEPCS 2021, indico S.T. Roche
    6 2021-10-22 Seminar: Machine learning in real-time triggers at the LHC: A discussion on Machine learning, Boosted decision trees, Real-time trigger, and ML on FPGA Department of Physics, University of Tennessee, Knoxville T.M. Hong
    7 2021-10-20 Poster: Presentation of fwX BDT IEEE Nuclear Science Symposium and Medical Imaging Conference, 2021 IEEE NSS MIC, link S.T. Racz
    8 2021-12-04 Talk: Comparisons of fwX's BDT to hls4ml's neural network results PIKIMO 11, indico T.M. Hong
    9 2023-05-12 Talk: Decision tree autoencoder anomaly detection on FPGA at L1 triggers Phenomenology Symposium, Pheno 2023, indico S.T. Roche
    10 2023-09-25 Talk: fwXmachina part 1: Classification with boosted decision trees on FPGA for L1 trigger Fast Machine Learning for Science Workshop 2023, indico T.M. Hong
    11 2023-09-25 Talk: fwXmachina part 3: Anomaly detection with decision tree autoencoder on FPGA for L1 trigger Fast Machine Learning for Science Workshop 2023, indico S.T. Roche
    12 2024-02-28 Seminar: Exotic Higgs decays & AI triggers at the LHC (ATLAS) University of Pennsylvania, webpage T.M. Hong
    13 2024-04-10 Talk: Nanosecond anomaly detection with decision trees for high energy physics and real-time application to exotic Higgs decays (HEP L1 trigger) Workshop on Fast Realtime Systems and Realtime Machine Learning, indico T.M. Hong
    14 2024-05-13 Talk: Decision tree autoencoder anomaly detection on FPGA at L1 triggers - take 2 Division of Particles and Fields Meeting + Phenomenology Symposium, DPF-Pheno 2024, indico T.M. Hong
    15 2024-06-10 Talk: Anomaly detector using decision tree-based autoencoder 1st FPGA Developers' Forum (FDF) meeting, indico T.M. Hong
    16 2024-06-24 Poster: Nanosecond AI for anomaly detection with decision trees on FPGA 42nd Int'l Conf. on High Energy Physics, ICHEP 2024, indico T.M. Hong
    17 2024-11-07 Colloquium: TBD Department of Physics, University of Florida, webpage T.M. Hong

FAQ

  1. How to run test vectors on the FPGA.
    • Question: In the article I saw that you tested your model on a physical FPGA using a test vector and ILA unit of Vivado. Can you elaborate how you implemented the test vector in Vivado IP integrator and how you synchronized everything with the clock? I would be happy to know what is the best way to test the IP block model created on FPGA.
    • Answer 1: We generated the clock from one of the clocks we have on-board our development board (VCU118) using the clock wizard. We only wanted to test specific vectors to verify that the output was what we expected and that the timing was what HLS had estimated, so we implemented the test vectors as constants in the block design. We implemented MUXes, using bits from a binary counter as select bits to switch between different sets of test vectors in order to verify the latency.
    • Answer 2: If you have access a Zynq then it’s pretty easy to run as many test vectors as you want using just an AXI-Lite register file. The method in Answer 1 works for basic verification, but for more robust verification you’d probably want to use a Microblaze soft processor.
    • Answer 3: Another option is to store the test vectors as ROM and then write a simple controller to cycle through the addresses and pass it to the fwX module. This wouldn’t be too difficult either.
  2. Pycharm not working.
    • Question: I'm trying to install the fwX package and run into some issues, when I try to run the hello_world.py from pycharm I get an error message. It seems that it doesn't recognize the library root, which is probably cern root source that I already installed. What can be the problem here?
    • Answer: We experienced that issue before. Because pycharm is meant for python packages, it doesn’t like dealing with pyroot, which uses python bindings to C++. Make sure pycharm is using the python on your system (as opposed to a virtual environment, which pycharm often offers to setup for a new project). Also make sure it’s using the right version of python (the one that you compiled ROOT with). This should fix your issue. If not, try setting up and running the hello_world all from the command line. If this doesn’t work, then your issue is likely with your pyroot setup and not fwX.

Communicate with us