Skip to main content

"Automatic DNN generation for fuzzing and more."

Project description

logo

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

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


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.0rc2.tar.gz (131.4 kB view details)

Uploaded Source

Built Distribution

nnsmith-0.1.0rc2-py3-none-any.whl (90.6 kB view details)

Uploaded Python 3

File details

Details for the file nnsmith-0.1.0rc2.tar.gz.

File metadata

  • Download URL: nnsmith-0.1.0rc2.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

Hashes for nnsmith-0.1.0rc2.tar.gz
Algorithm Hash digest
SHA256 7001b9f79a890477e3acc1de9a52c496a2decf0b7427c2ce59c8d36a62cd722e
MD5 54cff9590948d17051904b48afe2ee5c
BLAKE2b-256 5db261f467400be09471ab1384a9aebb13f4b9eaf66490b8d4c7aa4b636eedc8

See more details on using hashes here.

File details

Details for the file nnsmith-0.1.0rc2-py3-none-any.whl.

File metadata

  • Download URL: nnsmith-0.1.0rc2-py3-none-any.whl
  • Upload date:
  • Size: 90.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.13

File hashes

Hashes for nnsmith-0.1.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 66f597d5f4fde535444aba4c6e48867dbbb88175c31219bad981e6f58721c49a
MD5 a59f54f4154afbc3b247f802b3b83e63
BLAKE2b-256 e46ce8087969044fccd84a371b0f0730bf2e6c65f26614888ba062c066550834

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page