"Automatic DNN generation for fuzzing and more."
Project description
NNSmith
🌟NNSmith🌟 is a random DNN generator and a fuzzing infrastructure, primarily designed for automatically validating deep-learning frameworks and compilers.
Support Table
Models | tvm |
onnxruntime |
tensorrt |
tflite |
xla |
torchjit |
---|---|---|---|---|---|---|
ONNX | ✅ | ✅ | ✅ | |||
TensorFlow | 🔨 | ✅ | ✅ | |||
PyTorch | 🔨 | 🔨 | ✅ |
✅: Supported; 🔨: Coming soon;
Quick Start
Install latest code (GitHub HEAD):
pip install "git+https://github.com/ise-uiuc/nnsmith@main#egg=nnsmith[torch,onnx]" --upgrade
# [optional] add more front- and back-ends such as [tensorflow] and [tvm,onnxruntime,xla,...] in "[...]"
Install latest stable release [click]
pip install "nnsmith[torch,onnx]" --upgrade
Install latest pre-release [click]
pip install "nnsmith[torch,onnx]" --upgrade --pre
Setting up graphviz for debugging [click]
Graphviz provides dot
for visualizing graphs in nice pictures. But it needs to be installed via the following methods:
sudo apt-get install graphviz graphviz-dev # Linux
brew install graphviz # MacOS
conda install --channel conda-forge pygraphviz # Conda
choco install graphviz # Windows
pip install pygraphviz # Final step.
Also see pygraphviz install guidance.
# Generate a random model in "nnsmith_outputs/*"
nnsmith.model_gen model.type=onnx debug.viz=true
Learning More
- Bugs: links to reports.
- Documentation: CLI, concept, logging, and known issues.
- Contributions:
doc/CONTRIBUTING.md
- We use hydra to manage configurations. See
nnsmith/config/main.yaml
.
Papers
📜 NNSmith: Generating Diverse and Valid Test Cases for Deep Learning Compilers. [click :: citation]
@inproceedings{liu2023nnsmith,
title={Nnsmith: Generating diverse and valid test cases for deep learning compilers},
author={Liu, Jiawei and Lin, Jinkun and Ruffy, Fabian and Tan, Cheng and Li, Jinyang and Panda, Aurojit and Zhang, Lingming},
booktitle={Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2},
pages={530--543},
year={2023}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nnsmith-0.1.0.tar.gz
(131.4 kB
view details)
Built Distribution
nnsmith-0.1.0-py3-none-any.whl
(90.5 kB
view details)
File details
Details for the file nnsmith-0.1.0.tar.gz
.
File metadata
- Download URL: nnsmith-0.1.0.tar.gz
- Upload date:
- Size: 131.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 606f463b66d8f8fe0cce8103885204b64ed0689c6867ad83df76bbd138d4c433 |
|
MD5 | 6fd72aec55383f5cbbdaa429cc3099f5 |
|
BLAKE2b-256 | bd0a8bbb6c4c26f30eefbb25c11699cf9b3f6a784088f2ed67b969d872745182 |
File details
Details for the file nnsmith-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: nnsmith-0.1.0-py3-none-any.whl
- Upload date:
- Size: 90.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 251d5c0cc9b7f77ed336006c8818e9879372e8afff64c620b0b595a569e40084 |
|
MD5 | 30b1b63fd80d9d37043b268198a29271 |
|
BLAKE2b-256 | de49e6c8452992e4a1d530eef4034366b262cae969c311450da5ad419b3956a0 |