pytorch/tools
Joel Schlosser 525bec804c NJT <-> padded dense conversions (#125947)
This PR:
* Implements the pre-existing `nt.to_padded_tensor(padding_val)` ATen op via the FBGEMM kernel + appropriate view gymnastics (since that kernel only handles 2D values)
* Introduces a new `_nested_from_padded_tensor` op for the reverse conversion, implemented via the reverse FBGEMM kernel + view gymnastics
    * Note: there is currently no public API for this; design booted to a future PR

TODO:
* ~~Propagate min / max sequence length via the new factory function `_nested_from_padded_tensor`~~
* ~~Verify that Inductor does computation fusion via test logic~~

Pull Request resolved: https://github.com/pytorch/pytorch/pull/125947
Approved by: https://github.com/soulitzer
2024-09-12 17:54:25 +00:00
..
alerts [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
amd_build [Inductor] Rename cpp_wrapper_cuda.py as cpp_wrapper_gpu.py (#135313) 2024-09-11 23:59:54 +00:00
autograd NJT <-> padded dense conversions (#125947) 2024-09-12 17:54:25 +00:00
bazel_tools
build/bazel Bump setuptools from 69.5.1 to 70.0.0 in /tools/build/bazel (#130893) 2024-07-25 03:32:08 +00:00
build_defs [lint] Remove unnecessary BUCKRESTRICTEDSYNTAX suppressions 2024-07-19 07:19:11 -07:00
code_analyzer [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
code_coverage [BE][Easy] fix ruff rule needless-bool (SIM103) (#130206) 2024-07-14 08:17:52 +00:00
config
coverage_plugins_package [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
dynamo [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
flight_recorder [FR] Automatically infer a common filename prefix (#135158) 2024-09-06 21:44:27 +00:00
gdb
github [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
iwyu [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
jit [9/N] Replace c10::optional with std::optional (#130674) 2024-07-15 00:48:43 +00:00
linter [ONNX] Opt into ruff fmt (#134120) 2024-08-22 22:44:03 +00:00
lite_interpreter [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
lldb [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
onnx [BE][Easy] replace import pathlib with from pathlib import Path (#129426) 2024-06-30 01:36:07 +00:00
pyi Track base of FunctionalTensor in inference mode. (#135141) 2024-09-06 00:10:25 +00:00
rules
rules_cc
setup_helpers [CMake] Remove BUILDING_WITH_TORCH_LIBS (#134434) 2024-08-27 01:48:21 +00:00
shared
stats Move slow tests to be in repo (#132379) 2024-08-07 18:42:56 +00:00
test [ET] codegen: bool array as array ref (#134886) 2024-09-01 01:33:43 +00:00
testing [CI] Fix update slow tests (#135390) 2024-09-11 17:02:17 +00:00
__init__.py
bazel.bzl
BUCK.bzl [lint] Remove unnecessary BUCKRESTRICTEDSYNTAX suppressions 2024-07-19 07:19:11 -07:00
BUCK.oss
build_libtorch.py [BE][Easy][5/19] enforce style for empty lines in import segments in tools/ and torchgen/ (#129756) 2024-07-17 06:44:35 +00:00
build_pytorch_libs.py Revert "Remove Caffe2 code from tool scripts (#134941)" 2024-09-05 21:12:54 +00:00
build_with_debinfo.py [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
download_mnist.py [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
extract_scripts.py [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
gen_flatbuffers.sh
gen_vulkan_spv.py [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
generate_torch_version.py [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
generated_dirs.txt
git_add_generated_dirs.sh
git_reset_generated_dirs.sh
nightly.py Refactor nightly checkout tool (#131134) 2024-07-25 11:20:43 +00:00
nvcc_fix_deps.py [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
README.md
render_junit.py [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
substitute.py
update_masked_docs.py Use strict to toggle strict options in MYPYSTRICT (#118479) 2024-01-28 19:22:22 +00:00
vscode_settings.py [BE][Easy][5/19] enforce style for empty lines in import segments in tools/ and torchgen/ (#129756) 2024-07-17 06:44:35 +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.

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: