pytorch/tools
Hansong Zhang 93ff71ec37 [ET] Add RuntimeContext to ET Aten mode (#96084)
Summary:
In ATen mode, we add the RuntimeContext arg, so we have something like
```
TORCH_API inline at::Tensor & gelu_outf(torch::executor::RuntimeContext & context, const at::Tensor & self, c10::string_view approximate, at::Tensor & out) {
    return at::gelu_outf(self, approximate, out);
}
```
and user can use `<namespace like aten>::gelu_outf` and we will automatically dispatch the registered function in aten kernel using `at::gelu_outf` (dispatched by ATen/Functions.h header)

In optimized kernel tests, we can now automatically handle between aten kernel and optimized kernel.

The implication is that the test must depend on the correctness of codegen; an error in codegen can break the kernel tests.

Test Plan: CI

Differential Revision: D43777848

Pull Request resolved: https://github.com/pytorch/pytorch/pull/96084
Approved by: https://github.com/larryliu0820
2023-03-08 02:51:47 +00:00
..
amd_build
autograd SymIntify a few more relatively non-controversial schemas (#96100) 2023-03-06 23:12:40 +00:00
bazel_tools
build_defs
code_analyzer
code_coverage
config
coverage_plugins_package
dynamo Raise error if torch.compile is called from windows or py 3.11 (#94940) 2023-02-16 23:34:52 +00:00
fast_nvcc USE_FAST_NVCC Windows (#95206) 2023-03-06 15:04:24 +00:00
gdb
iwyu
jit
linter Remove SHA checksum for bazel http_archive from GitHub (#95039) 2023-02-22 04:39:19 +00:00
lite_interpreter
lldb
onnx [ONNX] Update diagnostics system (#94565) 2023-02-10 20:45:01 +00:00
pyi [torchgen] Prettify generated type annotations (#95877) 2023-03-03 07:08:40 +00:00
rules
rules_cc [bazel] enable sccache+nvcc in CI (#95528) 2023-02-28 03:51:11 +00:00
setup_helpers Improve ASAN and TSAN handling in cmake (#93147) 2023-03-07 14:10:13 +00:00
shared
stats Upload torch dynamo perf stats to Rockset (#95675) 2023-03-06 05:28:20 +00:00
test [ET] Add RuntimeContext to ET Aten mode (#96084) 2023-03-08 02:51:47 +00:00
testing
__init__.py
bazel.bzl
BUCK.bzl [ET] Add RuntimeContext to ET Aten mode (#96084) 2023-03-08 02:51:47 +00:00
BUCK.oss
build_libtorch.py
build_pytorch_libs.py
download_mnist.py
extract_scripts.py
gen_flatbuffers.sh
gen_vulkan_spv.py
generate_torch_version.py
generated_dirs.txt
git_add_generated_dirs.sh
git_reset_generated_dirs.sh
nightly.py
nvcc_fix_deps.py
pytorch.version
README.md
render_junit.py
substitute.py
update_masked_docs.py
vscode_settings.py [1/3] Recognize .py.in and .pyi.in files as Python in VS Code (#95200) 2023-03-01 19:16:56 +00: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.

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: