You are viewing a plain text version of this content. The canonical link for it is here.
Posted to discuss-archive@tvm.apache.org by echuraev via Apache TVM Discuss <no...@discuss.tvm.ai> on 2021/05/18 05:13:11 UTC

[Apache TVM Discuss] [Questions] Compile Pytorch model for iOS


Hello @L1onKing!

My colleague is working now on upstreaming some patches for ios support and ios-rpc, so I'll ask him, and maybe he will be able to extend my answer with some additional details.

First, lets start from your script for building the model. You should do `export_library` differently:
1. Import xcode utility: `from tvm.contrib import xcode`
2. Use `xcode.create_dylib` in `export_library`:
    ```python
   arch = "arm64"
   sdk = "iphoneos"
   libpath = model_folder_path + "/" + model_name + ".dylib"
   lib.export_library(libpath, xcode.create_dylib, arch=arch, sdk=sdk)
   ```
3. It is not necessary to dump your `graph_json` and params to a separate files.
4. Add `rpath` to the library. Run in the terminal: `install_name_tool -id @rpath/<model_name>.dylib <model_name>.dylib`

After these changes your model should be ready to run it on a device.

Second, we need to compile `TVM` runtime for `iOS`:
1. Use the following cmake flags:
   ```
   -DUSE_GRAPH_RUNTIME_DEBUG=ON # if you are interested in per layer performance statistic 
   -DUSE_LLVM=OFF 
   -DCMAKE_SYSTEM_NAME=iOS
   -DCMAKE_OSX_ARCHITECTURES=arm64
   -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0  # compatibility with old version of iOS 
   -DUSE_THREADS=OFF
   -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE # |
   -DCMAKE_INSTALL_NAME_DIR="@rpath"     # | to make it portable without cmake install step  
   ```
   You can change `DCMAKE_OSX_DEPLOYMENT_TARGET` to your target version.

2. `make -j<num_threads> tvm_runtime`
3. `install_name_tool -id @rpath/libtvm_runtime.dylib libtvm_runtime.dylib`

You can use these libraries in your iOS project.





---
[Visit Topic](https://discuss.tvm.apache.org/t/compile-pytorch-model-for-ios/9995/5) to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click here](https://discuss.tvm.apache.org/email/unsubscribe/0474cffd5ed67fb3b15da4234f0cfcdf40a808d568be0a83cb3601e7b7731875).