Compute Simulation Infrastructure

  • RISC-V Scalable Simulation Tutorial — Getting started with gem5 for RISC-V simulations and ML workload analysis. Includes hands-on examples and slides.

  • SST — The Structural Simulation Toolkit was developed to explore innovations in highly concurrent systems where the ISA, microarchitecture, and memory interact with the programming model and communications system.

  • Sparta — A toolkit for modeling/simulation engineers to build CPU, GPU, and platform simulations.

  • Accelergy — An energy/area estimation methodology for accelerators that allows design specifications comprised of user-defined high-level compound components and user-defined low-level primitive components, which can be characterized by external tools/plugins.

  • FlameGraph — Tool to visualize perf events.

  • Trace Viewer — This trace viewer from Chromium uses JSON-based trace logging for visualization. It has a relatively simple interface and a well-documented trace format.

  • Microsoft NNI — This framework can be used for systematically performing Design Space Exploration (with relatively low effort), even though it is originally intended for neural network exploration.

Command Line Programs

  • ABC — A popular tool in the design automation community. It provides a comprehensive command-line system for logic synthesis as well as verification.

  • trash-cli — An alternative to rm for deleting files on Linux. Deleted files are cached and can be retrieved if needed.

Neural Network Tools

  • Netron — A viewer for neural networks capable of visualizing models generated by a variety of deep learning frameworks, including ONNX, Caffe2, MXNet, etc.

Python Libraries

  • igraph — A graph library with multiple bindings (Python, R, etc.). Well-documented and easy to pick up.

  • z3-solver — A theorem prover from Microsoft Research with support for bitvectors, booleans, arrays, floating point numbers, strings, and other data types. Great for solving SAT and other optimization problems.

  • Dash — Can be used to build interactive graphs and visualizations from statistics generated by architectural simulators.