pytorch/tools
Jie 2b79bab029 [CUDA_FUSER] Fork CUDA fuser (#33527)
Summary:
Separating CUDA fuser from CPU fuser.

1. New node in IR - prim::CudaFusionGroup:
   This enables the cuda fuser to co-exist along side the old fuser. Allows us
   to incrementally build and expand cuda fuser.

2. copied FuseGraph optimization passes to CudaFuserGraph:
   We will re-factor & reuse Chunk/Concat in the old fuser logic, which is
   handled in the optimization pass at this moment. Unfortunately many code in
   the pass is tightly binded with the legacy fuser, which makes code sharing
   difficult.
   The CudaFusionGraph will support only a subset of operations comparing to
   legacy fuser (CUDA only). It is registered as a custom pass post fusion via
     ```torch._C._jit_register_cuda_fuser()```
   To have it in effect, you should also turn off fusion on GPU via
     ```torch._C._jit_override_can_fuse_on_gpu(False)```

3. We don't have codegen in this PR yet (WIP). Currently we just fall back to
   the old fuser.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/33527

Differential Revision: D20171598

Pulled By: ZolotukhinM

fbshipit-source-id: 9a3c0f06f46da7eaa80ae7551c04869f5b03ef71
2020-03-04 20:25:08 -08:00
..
amd_build Move torch.cuda's atfork handler into C++ (#29101) 2019-11-11 07:34:27 -08:00
autograd Fix Lint (#34218) 2020-03-04 09:48:57 -08:00
code_analyzer [pytorch][mobile] support for custom mobile build with dynamic dispatch (#34055) 2020-03-03 19:25:16 -08:00
docker clean up runtime dockerfile, use cuda 9 package (#7230) 2018-05-02 23:54:05 -07:00
jit Revert D18672405: Use codegen'ed unboxing wrappers 2020-02-29 15:27:54 -08:00
pyi fix type stub errors (#33762) 2020-02-27 06:58:53 -08:00
setup_helpers Fix Lint (#34218) 2020-03-04 09:48:57 -08:00
shared Ignore F401 in all __init__.py without putting noqa (#25823) 2019-10-23 15:28:13 -07:00
__init__.py python 2 support 2016-06-08 19:14:57 -04:00
aten_mirror.sh Restore TBB module (#20454) 2019-05-28 02:49:36 -07:00
build_libtorch.py Specify build dir as a global variable in BUILD_DIR in the build system. 2019-07-25 07:19:47 -07:00
build_pytorch_libs.py Remove tools/setup_helpers/cuda.py. (#28617) 2019-11-06 07:12:01 -08:00
build_variables.bzl [CUDA_FUSER] Fork CUDA fuser (#33527) 2020-03-04 20:25:08 -08:00
clang_format.py Enable EXE001 flake8 check. (#27560) 2019-10-09 09:15:29 -07:00
clang_tidy.py Fix typos (#30606) 2019-12-02 20:17:42 -08:00
download_mnist.py Make use of our S3 mirror if Yann Lecunn's website is not accessible (#34215) 2020-03-04 11:35:34 -08:00
flake8_hook.py Add missing shebangs to Python files with executable permissions. 2019-06-06 10:53:40 -07:00
generated_dirs.txt Add simple scripts for checking if generated code changed. (#12835) 2018-10-22 07:33:32 -07:00
git_add_generated_dirs.sh Add simple scripts for checking if generated code changed. (#12835) 2018-10-22 07:33:32 -07:00
git_reset_generated_dirs.sh Add simple scripts for checking if generated code changed. (#12835) 2018-10-22 07:33:32 -07:00
git-pre-commit [jit] do the code reorg (#33851) 2020-02-27 13:02:51 -08:00
pytorch.version Convert all tabs to spaces, add CI. (#18959) 2019-04-09 08:12:26 -07:00
README.md no more build_pytorch_libs.sh/.bat (#32319) 2020-01-23 14:45:54 -08:00
update_disabled_tests.sh we should have a config-based way to skip flaky tests (#30978) 2019-12-17 11:58:43 -08:00

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.

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: