Holoscan Debian Packages

Holoscan Debian Packages

Logo for Holoscan Debian Packages
Description
The debian packages for the Holoscan SDK
Publisher
NVIDIA
Latest Version
v0.6.0-amd64
Modified
February 13, 2024
Compressed Size
55.61 MB

Disclaimer: this NGC resource is deprecated as of the Holoscan SDK 1.0 release. Refer to the user guide for instructions on how to install the SDK debian package from NVIDIA's package repositories.

Overview

The Holoscan SDK Debian package is part of NVIDIA Holoscan, the AI sensor processing platform that combines hardware systems for low-latency sensor and network connectivity, optimized libraries for data processing and AI, and core microservices to run streaming, imaging, and other applications, from embedded to edge to cloud. It can be used to build streaming AI pipelines for a variety of domains, including Medical Devices, High Performance Computing at the Edge, Industrial Inspection and more.

The Holoscan Debian package includes the libraries, headers, example applications and CMake configurations needed for both C++ and Python developers. It does not include sample datasets.

Getting Started

Visit the Holoscan User Guide to get started with the Holoscan SDK.

Prerequisites

  • Prerequisites for each supported platform are documented in the user guide.
  • Additionally, on x86_64, install the latest cuda-keyring package to automatically install NVIDIA debian dependencies (CUDA, cuDNN, TensorRT...). This should already be installed on NVIDIA developer kits with IGX Software or JetPack.

Installing the Debian package

Either use the UI:

  1. Select your version and download the adequate resource
  2. Extract the debian package within the downloaded files.zip
  3. Open the debian package with Software Install application

Or this command (just select the version tag):

version="v0.6.0-amd64" # for x86_64, or v0.6.0-arm64 on aarch64
name="holoscan_dev_deb"
folder="${name}_${version}"
zip="${folder}.zip"
wget -O ${zip} https://api.ngc.nvidia.com/v2/resources/nvidia/clara-holoscan/${name}/versions/${version}/zip
unzip ${zip} -d ${folder} && rm ${zip}
deb=$(find ${folder} -name '*.deb' -type f)
sudo apt install ./${deb}
rm -r ${folder}

Using the installed libraries and headers

The content of the Debian package is installed under /opt/nvidia/holoscan. It exports a CMake configuration file inside lib/cmake/holoscan, allowing you to import holoscan in your CMake project (link libraries + include headers):

find_package(holoscan REQUIRED CONFIG PATHS "/opt/nvidia/holoscan")
target_link_libraries(yourTarget PUBLIC holoscan::core)

Alternatives to hardcoding PATHS inside find_package in CMake are listed under the Config Mode Search Procedure documentation.

Examples

Python, C++, and GXF examples are installed in /opt/nvidia/holoscan/examples alongside their source code, and run instructions (also available on the GitHub repository).

Running the examples

Example to run the Hello World example:

# Python
export PYTHONPATH=/opt/nvidia/holoscan/python/lib
python3 /opt/nvidia/holoscan/examples/hello_world/python/hello_world.py

# C++
cd /opt/nvidia/holoscan/examples
./hello_world/cpp/hello_world

Building the examples

You can rebuild the C++ and GXF examples as-is or copy them anywhere on your system to experiment with.

Requirement: CMake 3.20+

Example to build all the C++ and GXF examples:

export src_dir="/opt/nvidia/holoscan/examples/" # Add "<example_of_your_choice>/cpp" to build a specific example
export build_dir="</path/of/your/choice/>"
cmake -S $src_dir -B $build_dir \
  -D Holoscan_ROOT="/opt/nvidia/holoscan"
cmake --build $build_dir -j

If you build a C++ or GXF example that depends on external data, make sure to edit any relative path in the yaml config if you want to run from a different working directory.

Also see the HoloHub repository for a collection of Holoscan operators and applications which you can use in your pipeline or for reference.

Uninstalling the Debian package

To uninstall the Holoscan debian package from your system, run:

sudo apt remove holoscan

Troubleshooting

Unmet dependencies

The following packages have unmet dependencies: holoscan : Depends: libnvinfer-bin (>= 8.2.3) but it is not installable ...

You have installed holoscan without the CUDA Linux GPG Repository Key. You can either:

  • Install CUDA, cuDNN, and TensorRT manually, or
  • Install the cuda-keyring mentioned above, then run apt --fix-broken install

Permission issue

N: Download is performed unsandboxed as root as file 'holoscan_x.x.x.deb' couldn't be accessed by user '_apt'. pkgAcquire::Run (13: Permission denied)

Make sure both the .deb package and its containing directory have read/write access for the group (not only the current user):

chmod 777 <dir> <dir>/<holoscan_package.deb>