Project-MONAI / Project-MONAI/monai-deploy-app-sdk

App SDK Packager and Runner needs to support AArch64/ARMv8

Open
#172 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.