nnsmith

Automatic DNN generation for fuzzing and more

APACHE-2.0 License

Downloads
84
Stars
117
Committers
5

Bot releases are hidden (Show)

nnsmith - NNSmith 0.1.0 Latest Release

Published by ganler over 1 year ago

Overview

In this release, NNSmith is made more robust, systematic and extensible. It also supports a wider range of operators, data types and frontends/backends. We upstreamed the main infrastructure improvements done during the NeuRI project (algorithmic parts will be upstreamed in incoming releases), making it "a fuzzer infrastructure" in addition to simply "a fuzzer" for DL frameworks. Open-source developers can easily build or extend their own fuzzers based on NNSmith now. The documentation and GitHub experience are also improved to make it more approachable.

Notable Changes

  • Adding more ops for TF (#55)
  • Add UB and vulnerable ops filter (#56)
  • Resuming coverage instrumentation (#60)
  • GraphIR for systematic model manipulation (#61, #64, #66)
  • Adding versioning information for nnsmith/model/backend (#63)
  • Concolic generation (#66)
  • Sharpening and testing user-defined constraints (#72)
  • Include and exclude ops by name and data types (#72)
  • Adding more complete data types (#74, #76)
  • Deprecate support for iree (#74)
  • Supporting torchjit as backend (#79)
  • Run eager mode on GPU if the backend target is CUDA (#89)
  • Fixing or improving operator rules: Pool2d, InterpBase, ReduceBase (#66), Reshape (11a29efee2f4ffddf6acaa8840d484af45a498e4), broadcast, Abs, ReflectPad, ArgMin/Max (#74), TFMatMul (#95)
  • Adapting TF's naming convention in GraphIR's var names (#66)
  • Harnessing hydra dependencies (#66, #68)
  • Documentation (#57, #58, #60, bf1f59298f20f74959f827aeeae4b0c5b65e1c4e, dce784ae31a57e24dab8fb1c274a805b679a746e, ba486ca4ec7846b089dcee40201d5cf94820b03e)
  • Fixing and supporting fp16 (#85, #89)
  • Contribution guidance (#86)
  • Code of conduct (#82)
  • Issue templates (#80)
  • Bug report links are being listed and maintained (#90)
  • Defaultify to symbolic-cinit as generation mode (#96)

See the full commit list: https://github.com/ise-uiuc/nnsmith/compare/a8307f2b8043eb64b413a9b68ba2e6a2646cae8a...b4b9fac81cd3b1befae28d17a28f20be3a7ebf77

PyPI Release

https://pypi.org/project/nnsmith/0.1.0/

Contributors

@Co1lin @ganler @jakc4103

Thanks, @soodoshll and many others for issue reporting.

nnsmith - NNSmith 0.1.0-rc2

Published by ganler over 1 year ago

Notable Improvements

  • Adding more ops for TF (#55)
  • Add UB and vulnerable ops filter (#56)
  • Resuming coverage instrumentation (#60)
  • GraphIR for systematic model manipulation (#61, #64, #66)
  • Adding versioning information for nnsmith/model/backend (#63)
  • Concolic generation (#66)
  • Sharpening and testing user-defined constraints (#72)
  • Include and exclude ops by name and data types (#72)
  • Adding more complete data types (#74, #76)
  • Deprecate support for iree (#74)
  • Supporting torchjit as backend (#79)
  • Run eager mode on GPU if the backend target is CUDA (#89)
  • Fixing or improving operator rules: Pool2d, InterpBase, ReduceBase (#66), Reshape (11a29efee2f4ffddf6acaa8840d484af45a498e4), broadcast, Abs, ReflectPad, ArgMin/Max (#74), TFMatMul (#95)
  • Adapting TF's naming convention in GraphIR's var names (#66)
  • Harnessing hydra dependencies (#66, #68)
  • Documentation (#57, #58, #60, bf1f59298f20f74959f827aeeae4b0c5b65e1c4e, dce784ae31a57e24dab8fb1c274a805b679a746e, ba486ca4ec7846b089dcee40201d5cf94820b03e)
  • Fixing and supporting fp16 (#85, #89)
  • Contribution guidance (#86)
  • Code of conduct (#82)
  • Issue templates (#80)

See the full commit list: https://github.com/ise-uiuc/nnsmith/compare/a8307f2b8043eb64b413a9b68ba2e6a2646cae8a...8cee6f6a760a4e8b91a910462986c968aaddb01c

PyPI Release

https://pypi.org/project/nnsmith/0.1.0rc2/

Contributors

@Co1lin @ganler @jakc4103

Thanks, @soodoshll and many others for issue reporting.

nnsmith - NNSmith 0.1.0-rc1

Published by ganler over 1 year ago

Notable Improvements

  • Adding more ops for TF (#55)
  • Add UB and vulnerable ops filter (#56)
  • Resuming coverage instrumentation (#60)
  • GraphIR for systematic model manipulation (#61, #64, #66)
  • Adding versioning information for nnsmith/model/backend (#63)
  • Concolic generation (#66)
  • Sharpening and testing user-defined constraints (#72)
  • Include and exclude ops by name and data types (#72)
  • Adding more complete data types (#74, #76)
  • Deprecate support for iree (#74)
  • Supporting torchjit as backend (#79)
  • Run eager mode on GPU if the backend target is CUDA (#89)
  • Fixing or improving operator rules: Pool2d, InterpBase, ReduceBase (#66), Reshape (11a29efee2f4ffddf6acaa8840d484af45a498e4), broadcast, Abs, ReflectPad, ArgMin/Max (#74)
  • Adapting TF's naming convention in GraphIR's var names (#66)
  • Harnessing hydra dependencies (#66, #68)
  • Documentation (#57, #58, #60, bf1f59298f20f74959f827aeeae4b0c5b65e1c4e, dce784ae31a57e24dab8fb1c274a805b679a746e, ba486ca4ec7846b089dcee40201d5cf94820b03e)
  • Fixing and supporting fp16 (#85, #89)
  • Contribution guidance (#86)
  • Code of conduct (#82)
  • Issue templates (#80)

See the full commit list: https://github.com/ise-uiuc/nnsmith/compare/a8307f2b8043eb64b413a9b68ba2e6a2646cae8a...8cee6f6a760a4e8b91a910462986c968aaddb01c

PyPI Release

https://pypi.org/project/nnsmith/0.1.0rc1/

Contributors

@Co1lin @ganler @jakc4103

Thanks, @soodoshll and many others for issue reporting.

nnsmith - NNSmith 0.0.1

Published by ganler about 2 years ago

Release 0.0.1

This release mainly stabilizes the v0.0.0 (which is a huge refactor for code quality and extensibility from research code) and improves the usability of NNSmith.

Major enhancements

  • Support IREE backend;
  • Backend-oriented spec constraint patching and rewriting;
  • Extensible filtering rules;
  • Fuzzing loop crash safety and timeout oracle;
  • Adaptive GPU allocation in TF;
  • Remove default backend and model types -- specify them explicitly;

Bug fixes

  • Fix (Fuzzing Loop) and enhance (others) determinism;
  • Remove "ints" in torch.mean signature spec as it is not supported.
  • Replace unstable PyTorch GEMM spec (actually addmm) with MatMul spec (torch.matmul).
  • Fix tf.Variable device placement consistency requirement.
  • Fix by adapting torch.sum(int32) -> int64;
  • Fix time budge/constraint syntax sugar of "s/m/min/h/hr" in CLI;

Other noticeable changes

  • Suppress warnings from tvm;
  • Improve argument type checking;
  • Use setuptools_scm to determine package versioning;
  • Option to check input/output types during executing PyTorch SymbolNet;
  • NNSmith LOGO;

Other releases

Contributors

@Co1lin @ganler

Package Rankings
Top 14.02% on Pypi.org
Badges
Extracted from project README
Related Projects