pytorch/scripts
Tao Xu a277c097ac [iOS][GPU] Add Metal/MPSCNN support on iOS (#46112)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/46112

### Summary

This PR adds the support of running torchscript models on iOS GPU via Metal (Inference only). The feature is currently in prototype state, API changes are expected. The tutorial and the documents will be added once it goes to beta.

allow-large-files

- Users API

```
  auto module = torch::jit::load(model);
  module.eval();
  at::Tensor input = at::ones({1,3,224,224}, at::ScalarType::Float).metal();
  auto output = module.forward({input}).toTensor().cpu();
```
- Supported Models
    - Person Segmentation v106 (FB Internal)
    - Mobilenetv2

- Supported Operators
    - aten::conv2d
    - aten::addmm
    - aten::add.Tensor
    - aten::sub.Tensor
    - aten::mul.Tensor
    - aten::relu
    - aten::hardtanh
    - aten::hardtanh_
    - aten::sigmoid
    - aten::max_pool2d
    - aten::adaptive_avg_pool2d
    - aten::reshape
    - aten::t
    - aten::view
    - aten::log_softmax.int
    - aten::upsample_nearest2d.vec

- Supported Devices
    - Apple A9 and above
    - iOS 10.2 and above

- CMake scripts
    - `IOS_ARCH=arm64 ./scripts/build_ios.sh -DUSE_METAL=ON`

### Test Plan

- Circle CI

ghstack-source-id: 114155638

Test Plan:
1. Sandcastle CI
2. Circle CI

Reviewed By: dreiss

Differential Revision: D23236555

fbshipit-source-id: 98ffc48b837e308bc678c37a9a5fd8ae72d11625
2020-10-13 01:46:56 -07:00
..
appveyor
fbcode-dev-setup Fix typos (#30606) 2019-12-02 20:17:42 -08:00
model_zoo Remove py2 compatible future imports (#44735) 2020-09-16 12:55:57 -07:00
onnx [ONNX] Add dim_param support in export with onnx shape inference (#44920) 2020-09-30 21:56:24 -07:00
release ci: Add anaconda pruning to CI pipeline (#44651) 2020-09-15 10:51:05 -07:00
add_apache_header.sh
apache_header.txt
apache_python.txt
build_android.sh [pytorch] deprecate static dispatch (#43564) 2020-08-27 14:52:48 -07:00
build_host_protoc.sh
build_ios.sh [iOS][GPU] Add Metal/MPSCNN support on iOS (#46112) 2020-10-13 01:46:56 -07:00
build_local.sh Only set CCACHE_WRAPPER_PATH in the build scripts if it is not already passed in. 2019-11-01 18:39:12 -07:00
build_mobile.sh [pytorch] deprecate static dispatch (#43564) 2020-08-27 14:52:48 -07:00
build_pytorch_android.sh fix scripts (#44464) 2020-09-10 08:13:48 -07:00
build_raspbian.sh
build_tegra_x1.sh
build_tizen.sh
build_windows.bat Turn off warnings on Windows CI. (#24331) 2019-08-30 07:11:07 -07:00
diagnose_protobuf.py Remove py2 compatible future imports (#44735) 2020-09-16 12:55:57 -07:00
get_python_cmake_flags.py Remove __future__ imports for legacy Python2 supports (#45033) 2020-09-23 17:57:02 -07:00
proto.ps1
read_conda_versions.sh
README.md
remove_apache_header.sh
temp.sh
xcode_build.rb [iOS][CI] Upgrade xcode version to 12.0 (#45677) 2020-10-01 16:53:18 -07:00

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.