pytorch/tools
Elias Ellison bfae3789ba Move conv to mkldnn (#51483)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/51483

This PR moves the conv weights of a frozen model to MKLDNN, and AOT reorders the weights. When the weights are already in MKLDNN, just computing a single conv by converting the input and output from/to mkldnn provides large speedups. I benchmark'd the results of the top 200 shapes in predictor [here](https://www.internalfb.com/phabricator/paste/view/P171537938), as well as verified that it sped up popular models in torchvision.

Test Plan: Imported from OSS

Reviewed By: navahgar

Differential Revision: D26696703

Pulled By: eellison

fbshipit-source-id: 0b4441bee4f6e0890a4540fbca3bb5e58b8c5adf
2021-03-01 21:19:27 -08:00
..
amd_build [ROCm] rename HIP_HCC_FLAGS to HIP_CLANG_FLAGS (#50917) 2021-01-22 07:24:05 -08:00
autograd Revert D26375734: Implemented torch.linalg.multi_dot 2021-02-25 00:43:57 -08:00
clang_format_hash [tools] Update clang-format linux hash (#50520) 2021-01-13 20:50:56 -08:00
code_analyzer [pytorch][bot] update mobile op deps (#52110) 2021-02-12 14:50:29 -08:00
code_coverage [reland] Report test time regressions (#50171) 2021-02-08 15:35:21 -08:00
codegen structured kernels - error check when structured_delegate is not marked structured (#52227) 2021-02-24 13:17:52 -08:00
config
docker
fast_nvcc Abort node in fast_nvcc if ancestor fails (#51043) 2021-01-25 18:12:51 -08:00
jit Remove generated_unboxing_wrappers and setManuallyBoxedKernel (#49251) 2021-01-06 14:22:50 -08:00
pyi Updates rounding_mode documentation to remove "true" (#52202) 2021-02-12 09:19:39 -08:00
rules
setup_helpers Generate header with version #defines for LibTorch (#50073) 2021-02-03 22:18:53 -08:00
shared Introducing TORCH_CUDA_CPP_API and TORCH_CUDA_CU_API to the code (#50627) 2021-01-21 19:09:11 -08:00
__init__.py
build_libtorch.py
build_pytorch_libs.py
build_variables.bzl Move conv to mkldnn (#51483) 2021-03-01 21:19:27 -08:00
clang_format_all.py
clang_format_ci.sh
clang_format_utils.py Type-annotate tools/generate_torch_version (#51637) 2021-02-03 18:07:01 -08:00
clang_tidy.py
download_mnist.py
flake8_hook.py
generate_torch_version.py Fix local version generation (#52898) 2021-02-26 10:57:07 -08:00
generated_dirs.txt
git-clang-format
git-pre-commit
git_add_generated_dirs.sh
git_reset_generated_dirs.sh
nightly.py Bugfix nightly checkout tool to work on Windows (#49274) 2021-01-06 16:14:51 -08:00
pytorch.version
README.md Add script to display history for a single test across multiple jobs over time (#52000) 2021-02-11 13:27:49 -08:00
test_history.py Use --delta=0 by default for tools/test_history.py (#52877) 2021-02-26 08:58:08 -08:00
update_disabled_tests.sh

This folder contains a number of scripts which are used as part of the PyTorch build process. This directory also doubles as a Python module hierarchy (thus the __init__.py).

Overview

Modern infrastructure:

  • autograd - Code generation for autograd. This includes definitions of all our derivatives.
  • jit - Code generation for JIT
  • shared - Generic infrastructure that scripts in tools may find useful.
    • module_loader.py - Makes it easier to import arbitrary Python files in a script, without having to add them to the PYTHONPATH first.

Legacy infrastructure (we should kill this):

  • cwrap - Implementation of legacy code generation for THNN/THCUNN. This is used by nnwrap.

Build system pieces:

  • setup_helpers - Helper code for searching for third-party dependencies on the user system.
  • build_pytorch_libs.py - cross-platform script that builds all of the constituent libraries of PyTorch, but not the PyTorch Python extension itself.
  • build_libtorch.py - Script for building libtorch, a standalone C++ library without Python support. This build script is tested in CI.
  • fast_nvcc - Mostly-transparent wrapper over nvcc that parallelizes compilation when used to build CUDA files for multiple architectures at once.
    • fast_nvcc.py - Python script, entrypoint to the fast nvcc wrapper.

Developer tools which you might find useful:

Important if you want to run on AMD GPU:

  • amd_build - HIPify scripts, for transpiling CUDA into AMD HIP. Right now, PyTorch and Caffe2 share logic for how to do this transpilation, but have separate entry-points for transpiling either PyTorch or Caffe2 code.
    • build_amd.py - Top-level entry point for HIPifying our codebase.

Tools which are only situationally useful: