pytorch/scripts
Zhengxu Chen 2d37a046e7 [export] Enforce serialization BC/FC with updater script. (#118424)
Summary:
This diff implements a mechanism for safely update torch.export serialization schema, aka schema.py, which is the API surface having the strongest compatibility guarantee.

The diff is consist of 3 changes:
- Added a script to "build" or "materialize" schema.py into a platform neutral format (yaml), which serves as the committed form of the seialization schema.
- Added unittest to compare against schema.py and schema.yaml, so that it forces developers to execute the updater script when there is mismatch between two files.
- Added a checker inside the updater script, so that all the compatible change will result in a minor version bump, and all the incompatible changes will result in a major version bump.

torch.export's serialization BC/FC policy is (tentatively) documented here: https://docs.google.com/document/d/1EN7JrHbOPDhbpLDtiYG4_BPUs7PttpXlbZ27FuwKhxg/edit#heading=h.pup7ir8rqjhx , we will update the

As noted in the code doc, people should be able to run the following command to update schema properly from now on:

```
    python scripts/export/update_schema.py --prefix <path_to_torch_development_diretory>
or
    buck run caffe2:export_update_schema -- --prefix /data/users/$USER/fbsource/fbcode/caffe2/
```

Test Plan:
buck test mode/opt caffe2/test:test_export -- -r test_schema
buck run caffe2:update_export_schema -- --prefix /data/users/$USER/fbsource/fbcode/caffe2/

Differential Revision: D52971020

Pull Request resolved: https://github.com/pytorch/pytorch/pull/118424
Approved by: https://github.com/angelayi
2024-01-31 05:37:58 +00:00
..
analysis
appveyor
compile_tests Update update_failures.py given feedback (#118237) 2024-01-25 15:42:01 +00:00
export [export] Enforce serialization BC/FC with updater script. (#118424) 2024-01-31 05:37:58 +00:00
fbcode-dev-setup
jit
model_zoo
onnx [ONNX] Add sanity check in CI for onnxbench (#110178) 2023-12-02 00:17:07 +00:00
release [RelEng] Pin disabled and slow test for release (#114515) 2023-11-27 15:15:19 +00:00
release_notes
add_apache_header.sh
apache_header.txt
apache_python.txt
buck_setup.sh
build_android.sh Update PocketFFT (#117595) 2024-01-18 17:08:44 +00:00
build_android_gradle.sh [EZ][BE] Move build_android_gradle.sh (#117795) 2024-01-19 02:14:28 +00:00
build_host_protoc.sh
build_ios.sh
build_local.sh
build_mobile.sh
build_pytorch_android.sh
build_raspbian.sh
build_tegra_x1.sh
build_tizen.sh
build_windows.bat
diagnose_protobuf.py
get_python_cmake_flags.py
install_triton_wheel.sh
proto.ps1 [buck2][win] fix caffe2 protobuf_rule (#115954) 2023-12-18 21:41:10 +00:00
read_conda_versions.sh
README.md
remove_apache_header.sh
temp.sh
xcode_build.rb

This directory contains the useful tools.

build_android.sh

This script is to build PyTorch/Caffe2 library for Android. Take the following steps to start the build:

  • set ANDROID_NDK to the location of ndk
export ANDROID_NDK=YOUR_NDK_PATH
  • run build_android.sh
#in your PyTorch root directory
bash scripts/build_android.sh

If succeeded, the libraries and headers would be generated to build_android/install directory. You can then copy these files from build_android/install to your Android project for further usage.

You can also override the cmake flags via command line, e.g., following command will also compile the executable binary files:

bash scripts/build_android.sh -DBUILD_BINARY=ON

build_ios.sh

This script is to build PyTorch/Caffe2 library for iOS, and can only be performed on macOS. Take the following steps to start the build:

  • Install Xcode from App Store, and configure "Command Line Tools" properly on Xcode.
  • Install the dependencies:
brew install cmake automake libtool
  • run build_ios.sh
#in your PyTorch root directory
bash scripts/build_ios.sh

If succeeded, the libraries and headers would be generated to build_ios/install directory. You can then copy these files to your Xcode project for further usage.