Code Monkey home page Code Monkey logo

pytorch-jit-paritybench's Introduction

A test suite to measure TorchScript parity with PyTorch on many nn.Modules crawled from popular GitHub projects.

Running ParityBench

conda install pip
pip install -r requirements.txt
conda install pytorch torchvision cpuonly -c pytorch-nightly
  • Run python main.py, you should see an output like:
TorchScript ParityBench:
          total  passing  score
projects   1172      346  29.5%
tests      8292     4734  57.1%

A file errors.csv is generated containing the top error messages and example generated/* files to reproduce those errors.

Regenerate ParityBench

WARNING: this will download 10+ gigabytes of code from crawling github and take days to complete. It is likely not necessary for you to do this.

python main.py --download
python main.py --generate-all

Download, generate, evaluate

You can limit number of github projects to download for testing and running on a smaller set of github repos

python main.py --download --download-dir <folder path> --limit 10

You can generate tests for one project folder -g. This will extract nn modules from that project and generate a test script --tests-dir

python main.py -g <folder path> --tests-dir <folder path>

You can evaluate one generated test script -e and try export the module to onnx --onnxdir

python main.py -e <test.py file> --onnxdir <folder path>

You can evaluate using different compile mode, e.g, dynamo(default) or torchscript.

python main.py -e <test.py file> --compile_mode dynamo

You can evaluate using different dynamo backends provided in torch._dynamo, please refer torch._dynamo.list_backends().

python main.py -e <test.py file> --backend eager

You can evaluate using cuda(default) or cpu.

python main.py -e <test.py file> --device cuda

pytorch-jit-paritybench's People

Contributors

andrechang avatar desertfire avatar guangy10 avatar jansel avatar makslevental avatar shunting314 avatar tugsbayasgalan avatar yanboliang avatar zhxchen17 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pytorch-jit-paritybench's Issues

Failed to generate Test scripts for 649453932_Chinese_Text_Classification_Pytorch.zip

Hi,

I tried to generate Test Scripts for "649453932_Chinese_Text_Classification_Pytorch.zip" but it failed with Error as Below:
The script is like: python main.py -g ./649453932_Chinese_Text_Classification_Pytorch.zip --tests-dir ./

Is there anything I'm overlooking?

Error from subprocess
Traceback (most recent call last):
File "/home/pytorch/molly/paritytest/pytorch-jit-paritybench/paritybench/utils.py", line 51, in call_with_timeout_subproc
result = fn(*args, *kwargs)
File "/home/pytorch/molly/paritytest/pytorch-jit-paritybench/paritybench/generate.py", line 42, in generate_zipfile_subproc
extractor.main(path)
File "/home/pytorch/molly/paritytest/pytorch-jit-paritybench/paritybench/module_extractor.py", line 308, in main
self.test_modules()
File "/home/pytorch/molly/paritytest/pytorch-jit-paritybench/paritybench/module_extractor.py", line 262, in test_modules
self.test_nn_module(name, value)
File "/home/pytorch/molly/paritytest/pytorch-jit-paritybench/paritybench/module_extractor.py", line 281, in test_nn_module
stats, errors, testcases = call_with_timeout(
File "/home/pytorch/molly/paritytest/pytorch-jit-paritybench/paritybench/utils.py", line 26, in call_with_timeout
proc.start()
File "/home/pytorch/anaconda3/envs/torch20_parity/lib/python3.8/multiprocessing/process.py", line 121, in start
self._popen = self._Popen(self)
File "/home/pytorch/anaconda3/envs/torch20_parity/lib/python3.8/multiprocessing/context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "/home/pytorch/anaconda3/envs/torch20_parity/lib/python3.8/multiprocessing/context.py", line 284, in _Popen
return Popen(process_obj)
File "/home/pytorch/anaconda3/envs/torch20_parity/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 32, in init
super().init(process_obj)
File "/home/pytorch/anaconda3/envs/torch20_parity/lib/python3.8/multiprocessing/popen_fork.py", line 19, in init
self._launch(process_obj)
File "/home/pytorch/anaconda3/envs/torch20_parity/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 47, in _launch
reduction.dump(process_obj, fp)
File "/home/pytorch/anaconda3/envs/torch20_parity/lib/python3.8/multiprocessing/reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <class 'paritybench.module_extractor.output.Encoder'>: import of module 'paritybench.module_extractor.output' failed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.