pytorch/tools
Peter Bell 585a5975fb Return NotImplemented from tensor arithmetic operators (#26507)
Summary:
Fixes https://github.com/pytorch/pytorch/issues/26333

This effectively rewrites all infix arithmetic operators *op* as:
```python
def __op__(self, other):
    try:
        return self.op(other)
    except TypeError:
        return NotImplemented
```

Where `TypeError` is raised from the argument parser when `other` is not a `Tensor`. This should be okay, so long as `TypeError` isn't raised by the function for any other reasons. I couldn't find any examples where this was an issue.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/26507

Differential Revision: D17669097

Pulled By: ezyang

fbshipit-source-id: 2c1a1087057c9298915d713d3fea7d682d014c72
2019-09-30 11:18:21 -07:00
..
amd_build Fix compiler unwrapping step in jenkins build scripts for Caffe2/PyTorch on ROCm (#25409) 2019-09-17 13:50:42 -07:00
autograd Return NotImplemented from tensor arithmetic operators (#26507) 2019-09-30 11:18:21 -07:00
docker
jit remove backward functions from jit-op-registry for mobile build (#26851) 2019-09-25 23:17:25 -07:00
pyi Port new_full to ATen. (#25583) 2019-09-04 14:34:43 -07:00
setup_helpers remove backward functions from jit-op-registry for mobile build (#26851) 2019-09-25 23:17:25 -07:00
shared Kill declared_type and ignore_check from THFormal. (#26284) 2019-09-17 07:40:33 -07:00
__init__.py
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/cudnn.py (#25876) 2019-09-24 07:44:33 -07:00
build_variables.py Bytecode export flow (#25187) 2019-09-25 16:35:45 -07:00
clang_format.py clang-format by line (#21531) 2019-06-07 13:42:44 -07:00
clang_tidy.py Fix clang-tidy script (#25652) 2019-09-04 09:46:26 -07:00
download_mnist.py
flake8_hook.py Add missing shebangs to Python files with executable permissions. 2019-06-06 10:53:40 -07:00
generated_dirs.txt
git-pre-commit Remove THD (#22065) 2019-06-25 12:19:13 -07:00
git_add_generated_dirs.sh
git_reset_generated_dirs.sh
pytorch.version
README.md Stop doing nn wrap. (#25353) 2019-08-30 07:42:20 -07:00
run-clang-tidy-in-ci.sh fix clang-tidy failing on master (#25121) 2019-08-23 13:50:24 -07: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.sh - Script that builds all of the constituent libraries of PyTorch, but not the PyTorch Python extension itself. We are working on eliminating this script in favor of a unified cmake build.
  • build_pytorch_libs.bat - Same as above, but for Windows.
  • 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: