Project-MONAI / Project-MONAI/monai-deploy-app-sdk
App SDK Packager and Runner needs to support AArch64/ARMv8
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 138
- Forks
- 70
- PR merge metrics
- No merged PRs in 30d
Description
Is your feature request related to a problem? Please describe.
Deploy applications built with MONAI Deploy App SDK needs to extend the support to run on AArch64/ARMv8.
PoC has been done to show that the example applications successful run on AArch64 once the dependencies packages, e.g. torch, are installed, via a AArch64 base image, e.g. Nvidia nvcr.io/nvidia/clara-agx/agx_pytorch:21.05-1.7-py3, or other.
The App SDK Packager, though, currently limits the supported base image to X86 PyTorch images, in addition, it injects a executable module (built from C# code) that only supports X86 and presents it as the app Docker entry point. Hence, the Packager needs to be updated to allow AArch64 PyTorch base image, e.g. Nvidia nvcr.io/nvidia/clara-agx/agx_pytorch:21.05-1.7-py3,
The App SDK Runner, which should run itself on X86 and AArch64, but runs the app Docker with the entry point injected by the Packager, that currently does not support AArch64. So the Runner may choose to directly run the app's main while the inject executable still does not support AArch64.
Describe the solution you'd like
See above.
Key functionalities are AArch64 base image, as well as AArch64 compatible module serving as the entrypoint which is used to integrate with the App Server (App Server is not yet available).
Describe alternatives you've considered
PoC has been done. The app is built into a Docker image with nvcr.io/nvidia/clara-agx/agx_pytorch:21.05-1.7-py3 as base along with pip installing required PyPi packages. On running docker, the application's main is called directly. This has been proven successful on Nvidia AGX server, Ubuntu 18.04 LTS on AArch64.
Additional context
There is a strong user and business needs for supporting AArch64
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the App SDK Packager and Runner entry points, especially the injected C# executable and the path that invokes an app's main. Compare the existing X86 PyTorch image assumptions with the reported AArch64 base-image PoC. Done means packaging and running an AArch64 app with an AArch64-compatible entry point, while preserving X86 support.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, docker, python, pytorch
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100