Version 1.0.0 (April 2024)¶
What’s new in 1.0.0¶
App SDK has been migrated to be dependent on NVIDIA Holoscan SDK since Version v0.6 when breaking changes were introduced in some core class APIs. This version is a simple update of the App SDK to make use of the newly released Holoscan SDK v1.0.3, as well as bug fixes of a few known issues.
Key changes and migration guide¶
CUDA 12 is required along with a supported NVIDIA GPU with at least 8GB of video RAM. If AI inference is not used in the example application and a GPU is not installed, at least CUDA 12 runtime is required, as this is one of the requirements of Holoscan SDK, in addition, the
LIB_LIBRARY_PATH
must be set to include the installed shared library, e.g. in a Python 3.8 env,export LD_LIBRARY_PATH=`pwd`/.venv/lib/python3.8/site-packages/nvidia/cuda_runtime/lib:$LD_LIBRARY_PATH
Ubuntu 22.04 on X86-64 is required, similarly required by Holoscan SDK
The following is repeated from the V0.6 release note, for readers’ convenience.
In App SDK core module,
monai.deploy.core
, instead of through a wrapper layer, Holoscan SDK core sub modules are all directly imported and exposed undermonai.deploy.core
, mixed in with the ones original to the App SDK. The same also applies to those modules, e.g.,conditions
,executors
,graphs
,logger
, andresources
. As such, the Modudle API documentation may show a mixture ofmonai.deploy
andholoscan
.For
monai.deploy.operators
, Holoscan SDK built-in operators are selectively imported and exposed, with the main reason being to avoid introducing extra dependencies on system packages. All of the original and existing App SDK built-in operators are still present and migrated to be based on Holoscan SDK baseoperator
class.Python decorator support for
Application
andOperator
class is absent in this release, so alternative approaches must be usedOperator
input(s) and output(s) now must be defined in thesetup()
method of this classApplication
andOperator
cannot decorate or serve out the resource and package dependencies, which are required when packaging the application into MONAI Application Package. So the application developer must now provide the Python package requirement file and application configuration file when creating a MAP
Derived
Operator
class must first assign its attributes before calling the constructor of the baseOperator
.Application
’srun()
method can no longer pass the file I/O paths, e.g.input
,output
, andmodels
, to the execution context of each operator when itscompute()
method is called. For operators depending on them, the I/O paths need to be passed in as arguments in the constructor.App SDK CLI,
monai-deploy
, no longer supportexec
sub-command. However, when directly running the application with Python, command line options for--input
,--output
, and--model
, are supported if the application make use of theApplication
’s class method,init_app_context(argv)
.App SDK CLI packaging command,
monai-deploy package
, requires additional command line parameters, namely, application configuration yaml file, Python requirements file, and the platform configuration (as it supports both x86-64 and ARMv8 AArch64 targets). Details can be found in the tutorials and Users Guide.
Please also see the closed issues on Github and the closed pull requests on Github.
Additional information¶
Please visit GETTING STARTED guide and follow the tutorials.
You can learn more about SDK usage through DEVELOPING WITH SDK.
Please let us know how you like it and what could be improved by submitting an issue or asking questions