pytorch/tools
Yanli Zhao ab39a55331 python udf over rpc (#23569)
Summary:
This diff is to support python user defined function over rpc for https://github.com/pytorch/pytorch/issues/23110, work flow is like this:
1. pickle python udf
2. pass pickle to C++
3. C++ pass over rpc from client to server
4. server call runPythonUDF() python function to unpickle and run python udf and pickle the udf result using python embedder
6. pass back serialized result from server to client
7. client call loadPythonUDFResult() python function to unpickle result
7. return it to python

right now, put rpc_sync_builtin() and rpc_async_builtin() as temporary interfaces for builtin operator remote calls, they accept qualified name string, this interface can execute builtin operators in C++ land.

rpc_sync() and rpc_async() accept python callables only right now, it could be user define python functions or builtin operator python functions, the python functions will be executed in python land.

once we can resolve builtin operator python callables to qualified name string, we can merge rpc_sync_builtin() into rpc_sync() then
Pull Request resolved: https://github.com/pytorch/pytorch/pull/23569

Test Plan: unit tests

Differential Revision: D16390764

Pulled By: zhaojuanmao

fbshipit-source-id: 2cf2c22a979646830b5581bd75eabf8b3cca564c
2019-08-14 23:13:33 -07:00
..
amd_build Improve hip-clang support in build_amd.py (#23835) 2019-08-07 07:49:07 -07:00
autograd Revert D15920763: Move TensorOptions to ATen/core 2019-08-13 12:07:18 -07:00
cwrap Fixed deprecated use of yaml.load 2019-07-22 13:25:27 -07:00
docker clean up runtime dockerfile, use cuda 9 package (#7230) 2018-05-02 23:54:05 -07:00
jit Add overload names to native_functions.yaml (#23532) 2019-08-01 02:08:37 -07:00
nnwrap Turn on F401: Unused import warning. (#18598) 2019-03-30 09:01:17 -07:00
pyi Implement tensor.align_to(names), torch.align_tensors(*tensors) (#23804) 2019-08-14 09:40:27 -07:00
setup_helpers Remove escape_path in our build system. (#24044) 2019-08-13 20:38:19 -07:00
shared Turn on F401: Unused import warning. (#18598) 2019-03-30 09:01:17 -07:00
__init__.py python 2 support 2016-06-08 19:14:57 -04:00
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 escape_path in our build system. (#24044) 2019-08-13 20:38:19 -07:00
build_variables.py python udf over rpc (#23569) 2019-08-14 23:13:33 -07:00
clang_format.py clang-format by line (#21531) 2019-06-07 13:42:44 -07:00
clang_tidy.py print clang tidy output to stderr (#24052) 2019-08-08 17:42:24 -07:00
download_mnist.py Turn on F401: Unused import warning. (#18598) 2019-03-30 09:01:17 -07:00
flake8_hook.py Add missing shebangs to Python files with executable permissions. 2019-06-06 10:53:40 -07:00
generated_dirs.txt Add simple scripts for checking if generated code changed. (#12835) 2018-10-22 07:33:32 -07:00
git_add_generated_dirs.sh Add simple scripts for checking if generated code changed. (#12835) 2018-10-22 07:33:32 -07:00
git_reset_generated_dirs.sh Add simple scripts for checking if generated code changed. (#12835) 2018-10-22 07:33:32 -07:00
git-pre-commit Remove THD (#22065) 2019-06-25 12:19:13 -07:00
pytorch.version Convert all tabs to spaces, add CI. (#18959) 2019-04-09 08:12:26 -07:00
README.md Unify build_caffe2_amd.py and build_pytorch_amd.py (#14769) 2018-12-05 09:26:12 -08:00
run-clang-tidy-in-ci.sh PyTorch export to ONNX Opset 7 and 8 - Cont (#22421) 2019-07-12 14:52:48 -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):

  • nnwrap - Generates the THNN/THCUNN wrappers which make legacy functionality available. (TODO: What exactly does this implement?)
  • 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: