pytorch/tools
Huy Do 371f587c92 Dockerize lint jobs (#94255)
This is to minimize network flakiness when running lint jobs.  I create a new Docker image for linter and install all linter dependencies there.  After that, all linter jobs are converted to use Nova generic Linux job https://github.com/pytorch/test-infra/blob/main/.github/workflows/linux_job.yml with the new image.

For the future task: I encounter this issue with the current mypy version we are using and Python 3.11 https://github.com/python/mypy/issues/13627.  Fixing this requires upgrading mypy to a newer version, but that can be done separately (require formatting/fixing `*.py` files with the newer mypy version)

`collect_env` linter job is currently not included here as it needs older Python versions (3.5).  It could also be converted to use the same mechanism (with another Docker image, probably).  This one rarely fails though.

### Testing

BEFORE
https://github.com/pytorch/pytorch/actions/runs/4130366955 took a total of ~14m

AFTER
https://github.com/pytorch/pytorch/actions/runs/4130712385 also takes a total of ~14m
Pull Request resolved: https://github.com/pytorch/pytorch/pull/94255
Approved by: https://github.com/ZainRizvi
2023-02-11 21:56:19 +00:00
..
amd_build [NVFUSER] refactor nvfuser build (#89621) 2023-01-26 02:50:44 +00:00
autograd Fix div by fp64 scalar issue on xla device (#94459) 2023-02-10 17:57:47 +00:00
bazel_tools
build_defs
code_analyzer [BE] Prefer dash over underscore in command-line options (#94505) 2023-02-09 20:16:49 +00:00
code_coverage
config
coverage_plugins_package
dynamo [BE] [2/3] Rewrite super() calls in functorch and torch (#94588) 2023-02-10 21:16:33 +00:00
fast_nvcc [BE] Import Literal, Protocol, and Final from standard library typing as of Python 3.8+ (#94490) 2023-02-09 19:17:49 +00:00
gdb
iwyu
jit [BE] Prefer dash over underscore in command-line options (#94505) 2023-02-09 20:16:49 +00:00
linter Dockerize lint jobs (#94255) 2023-02-11 21:56:19 +00:00
lite_interpreter [BE] Prefer dash over underscore in command-line options (#94505) 2023-02-09 20:16:49 +00:00
lldb
onnx [ONNX] Update diagnostics system (#94565) 2023-02-10 20:45:01 +00:00
pyi [SDPA] update type hint for scaled_dot_product_attention and documentation (#94008) 2023-02-10 18:02:43 +00:00
rules
setup_helpers [BE] Prefer dash over underscore in command-line options (#94505) 2023-02-09 20:16:49 +00:00
shared Cleaning up some logic in tools/shared/cwrap_common.py (#94475) 2023-02-10 17:49:11 +00:00
stats [BE]: Apply pyupgrade yield from and unit test alias upgrades (#94309) 2023-02-07 20:08:58 +00:00
test [BE]: pyupgrade Python to 3.8 - imports and object inheritance only (#94308) 2023-02-07 21:10:56 +00:00
testing [BE] Modernize PyTorch even more for 3.8 with pyupgrade (#94520) 2023-02-10 18:02:50 +00:00
__init__.py
bazel.bzl [bazel] Add @pytorch in tools/bazel.bzl (#91424) 2023-01-04 18:28:19 +00:00
BUCK.bzl [Vulkan] Remove GLSL Code Gen (#91912) 2023-01-10 20:29:47 +00:00
BUCK.oss
build_libtorch.py
build_pytorch_libs.py
download_mnist.py
extract_scripts.py [BE] Import Literal, Protocol, and Final from standard library typing as of Python 3.8+ (#94490) 2023-02-09 19:17:49 +00:00
gen_flatbuffers.sh
gen_vulkan_spv.py [BE]: pyupgrade Python to 3.8 - imports and object inheritance only (#94308) 2023-02-07 21:10:56 +00:00
generate_torch_version.py [BE] Prefer dash over underscore in command-line options (#94505) 2023-02-09 20:16:49 +00:00
generated_dirs.txt
git_add_generated_dirs.sh
git_reset_generated_dirs.sh
nightly.py [BE] Modernize PyTorch even more for 3.8 with pyupgrade (#94520) 2023-02-10 18:02:50 +00:00
nvcc_fix_deps.py
pytorch.version
README.md Remove print_test_stats, test_history, s3_stat_parser (#92841) 2023-01-27 18:11:42 +00:00
render_junit.py Fix exception causes all over the codebase (#90271) 2022-12-07 04:29:00 +00:00
substitute.py [BE] Prefer dash over underscore in command-line options (#94505) 2023-02-09 20:16:49 +00:00
update_masked_docs.py
vscode_settings.py

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: