Skip to content

Parameters, FLOPs and memory access profiler

Compare
Choose a tag to compare
@frgfm frgfm released this 21 Mar 14:23
7ac9c83

This release adds a module crawler to pick up relevant inference information.

Note: torchscan 0.1.0 requires PyTorch 1.1 or newer.

Highlights

Modules

In-hook information extraction for supported torch.nn.Module
New

  • Add FLOPs, MACs and DMAs estimation support for the following torch.nn.Module: Identity, Linear, Identity, ReLU, ELU, LeakyReLU, ReLU6, Tanh, Sigmoid, _ConvTransposeMixin, _ConvNd, _BatchNorm, _MaxPoolNd, _AvgPoolNd, _AdaptiveMaxPoolNd, _AdaptiveAvgPoolNd, Dropout (#1, #6, #7).

Process

Python process information related
New

  • Add get_process_gpu_ram to retrieve GPU RAM usage of the current Python process (#1).

## Crawler
Module hooking agent
New

  • Add crawl_module to store all module information in a python dict (#1, #6)
  • Add summary for high-level console-printed information (#1)

Test

Verifications of the package well-being before release
New

  • Add test for torchscan.modules (#1 , #6, #7)
  • Add test for torschscan.process (#1, #6)
  • Add test for torschscan.crawler (#6)
  • Add test for torschscan.utils (#1, #6)

Documentation

Online resources for potential users
New

  • Add sphinx automatic documentation build for existing features (#1)
  • Add contribution guidelines (#1)
  • Add installation, usage, and benchmark in readme (#1, #2, #8)

Others

Other tools and implementations

  • Add ̀format_infoto generate a string output from thecrawl_module` returned dictionary (#1).
  • Add aggregate_info to aggregate crawl_module output to a specific depth (#1).
  • Add scripts/benchmark.py to display crawl_module information on all torchvision classification models (#1 )

Notes: upon the next torch release, _ConvTransposeMixin will be renamed to _ConvTransposeNd