Skip to content

GoldenEye is a functional simulator with fault injection capabilities for common and emerging numerical formats, implemented for the PyTorch deep learning framework.

License

Notifications You must be signed in to change notification settings

ma3mool/goldeneye

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

381b9be · Feb 3, 2024

History

39 Commits
Jun 29, 2022
Jan 18, 2024
Jan 18, 2024
Jul 28, 2021
Jan 18, 2024
Jan 18, 2024
Jan 18, 2024
Feb 7, 2022
Jul 5, 2021
Jun 28, 2022
Jun 27, 2022
Feb 3, 2024
Apr 14, 2022

Repository files navigation

GoldenBox

OverviewInstallingCodeAcknowledgementsLicense

Overview

GoldenEye Object Detection is an extension of the original GoldenEye functional simulator with fault injection capabilities for common and emerging numerical formats. Previously the simulator was only supported image classification models. Now, we have extended our use case to object detection models as well.

Installing

Ubuntu-20.04 or later

  1. Clone the goldeneye repository.
git clone https://github.com/sajidahmed12/goldeneye-object-detection
  1. Download ninja-build, which is needed for qtorch.
sudo apt install ninja-build
  1. Install the other project dependencies from the requirements.txt file.
pip install -r requirements.txt

Testing

pytest val/test_num_sys.py

Code

Structure

The scripts folder includes wrappers around the goldeneye-obj framework to simplify its use. The src folder contains all of the core components, such as number system implementation, error injection routines, dataloaders, etc. The val folder is used for unit testing the code. You can run it using pytest to check that the installation process was successful.

Example Outputs are saved in this Google Drive link

Example Commands

Pre-processing

python preprocess.py -b 16 -n frcnn -d COCO -w 8 -P FP32 -f fp_n  -C 0 [MS-COCO FP32](MS-COCO FP32])

Profiling

python profiling.py -b 16 -n frcnn -d COCO -w 16 -P FP32 -f fp_n -B 32 -R 23

Split Data

python split_data.py -b 16 -n frcnn -d COCO -o -w 16 -P FP32 -f fp_n -B 32 -R 23

Error Injections

python injections.py -b 16 -n frcnn -d COCO -w 16 -P FP32 -i 102400 -I 1 -f fp_n -B 32 -R 23

Post-processing

python postprocess.py -b 16 -n frcnn -d COCO -w 16 -P FP32 -i 102400 -I 1 -f fp_n -B 32 -R 23

Acknowledgements

License

MIT License