pytorch/tools
Pritam Damania 7065c46ea2 Respect dist autograd context in torch.jit._fork. (#34360)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/34360

The distributed autograd context sets up a thread local context id
which is used to perform appropriate book keeping and autograd recording of RPC
functions in the forward pass.

However, if we use torch.jit._fork within the distributed autograd context, the
code executed within torch.jit._fork will lose this context since it is run in
a separate JIT thread and the thread local is not set in that thread.

To fix this problem, we pass in the distributed autograd context to
torch.jit._fork similar to what we did in
https://github.com/pytorch/pytorch/pull/16101.
ghstack-source-id: 100445465

Test Plan: waitforbuildbot

Differential Revision: D20301352

fbshipit-source-id: aa3fffe69c2b40722c66213351a4e0d77484a621
2020-03-19 14:12:28 -07:00
..
amd_build Move torch.cuda's atfork handler into C++ (#29101) 2019-11-11 07:34:27 -08:00
autograd Deprecates current torch.full integral type inference, adds torch.full complex type inference (#34709) 2020-03-18 12:19:31 -07:00
clang_format_hash [PyTorch][tools] Add linux64 clang-format hash 2020-03-13 14:22:17 -07:00
code_analyzer [pytorch][mobile] support for custom mobile build with dynamic dispatch (#34055) 2020-03-03 19:25:16 -08:00
docker
jit Delete OperatorOptions, absorb AliasAnalysisKind into FunctionSchema. (#34588) 2020-03-11 20:59:46 -07:00
pyi Makes floor_divide a method, adds sparse floor division (#34552) 2020-03-18 15:00:53 -07: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
aten_mirror.sh
build_libtorch.py
build_pytorch_libs.py Remove tools/setup_helpers/cuda.py. (#28617) 2019-11-06 07:12:01 -08:00
build_variables.bzl Respect dist autograd context in torch.jit._fork. (#34360) 2020-03-19 14:12:28 -07:00
clang_format.py Enable EXE001 flake8 check. (#27560) 2019-10-09 09:15:29 -07:00
clang_format_new.py [tools] Parallelize tools/clang_format_new.py (#34750) 2020-03-18 17:27:02 -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
generated_dirs.txt
git-pre-commit [jit] do the code reorg (#33851) 2020-02-27 13:02:51 -08:00
git_add_generated_dirs.sh
git_reset_generated_dirs.sh
pytorch.version
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: