Dependencies

This document catalogues the tools, libraries and packages that AMD Inference Server depends on and are installed in the AMD Inference Server Docker containers. The information here is derived from the Dockerfile and source files used in AMD Inference Server. If there is a conflict, the source takes precedence.

Docker Image

There are two kinds of images: development and production. Dev images are larger in size and contain all the tools and dependencies to compile, lint and test the inference server. In contrast, the production image is much smaller and only includes specific files from a subset of these packages that are needed at runtime. In these two images, multiple flavors of Docker images may be created based on which optional features are enabled and how the server is compiled. In the tables below, note the following symbols to indicate where a package (or a subset of the package) or its dependencies are used:

Symbol

Meaning

a

Used by all images

d

Used by dev images only

0

Used always (subject to compilation options)

1

Used if Vitis AI is added

2

Used if TF+ZenDNN is added

3

Used if PT+ZenDNN is added

Base Image

The base image for both dev and production images is Ubuntu 18.04 and it includes a number of packages by default.

Ubuntu Bionic Repositories

The following packages (and any dependencies) are installed from Ubuntu’s repositories using Ubuntu’s package manager apt.

Name

Version

License

Usage

bash-completion

1:2.8-1ubuntu1

GPL-2+

Scripts used to auto-complete bash commandsd 0

clang-format-10

1:10.0.0-4ubuntu1~18.04.2

Apache 2.0 with LLVM exceptions + others

Executable used to apply formattingd 0

clang-tidy-10

1:10.0.0-4ubuntu1~18.04.2

Apache 2.0 with LLVM exceptions + others

Executable used for lintingd 0

curl

7.58.0-2ubuntu3.14

Curl

Executable used for transferring dataa 0

doxygen

1.8.13-10

GPL-2 with Qt exception + others

Executable used for building documentationd 0

gcc

4:7.4.0-1ubuntu2.3

GPL-2 + others

Executable used for compiling source coded 0

gdb

8.1-0ubuntu3

LGPL-2.1+ + others

Executable used for debuggingd 0

git

1:2.17.1-1ubuntu0.8

GPL-2 + others

Executable used for source controld 0

graphviz

2.40.1-2

EPL-1.0 + others

Executable used to draw graphs in documentationd 0

libboost1.65-dev

1.65.1+dfsg-0ubuntu5

Boost

Used to build AKS kernelsa 1

libboost-filesystem1.65.1

1.65.1+dfsg-0ubuntu5

Boost

Dynamically linked by AKSa 1

libboost-serialization1.65.1

1.65.1+dfsg-0ubuntu5

Boost

Dynamically linked by AKSa 1

libboost-system1.65.1

1.65.1+dfsg-0ubuntu5

Boost

Dynamically linked by AKSa 1

libboost-thread1.65.1

1.65.1+dfsg-0ubuntu5

Boost

Dynamically linked by AKSa 1

libbrotli-dev

1.0.3-1ubuntu1.3

MIT

Dynamically linked by Drogona 0

libc-ares-dev

1.14.0-1ubuntu0.1

MIT + others

Dynamically linked by Drogona 0

libgoogle-glog-dev

0.3.5-1

BSD-3

Dynamically linked by VARTa 1

libjson-c-dev

0.12.1-1.3ubuntu0.3

MIT

Dynamically linked by rt-enginea 1

libjsoncpp-dev

1.7.4-3

MIT + others

Dynamically linked by proteus-server and Drogona 0

libssl-dev

1.1.1-1ubuntu2.1~18.04.13

Dual OpenSSL/SSLeay

Dynamically linked by Drogona 0

locales

2.27-3ubuntu1.2

GPL-2 + others

Executable used to set localea 0

make

4.1-9.1ubuntu1

GPL-3+

Executable used to build executablesd 0

net-tools

1.60+git20161116.90da8a0-1ubuntu1

GPL-2+

Executable used to query used portsa 1

openssh-client

1:7.6p1-4ubuntu0.5

OpenSSH + others

Executable used for remote connectionsd 0

pkg-config

0.29.1-0ubuntu2

GPL-2+

Executable used for configuring unilogd 0

python3

3.6.5-3

PSF License

Executable used for scripting and testing proteus-serverd 0

python3-dev

3.6.7-1~18.04

PSF License

Used to build Python bindingsd 0

sudo

1.8.21p2-3ubuntu1.4

ISC license + others

Executable used to grant elevated permissions to the usera 0

symlinks

1.4-3build1

Freely distributable

Executable used to convert absolute symlinks to relative onesd 0

tzdata

2021a-0ubuntu0.18.04

Public Domain

Used for setting the timezonea 0

uuid-dev

2.31.1-0.4ubuntu3.7

GPL-2+ + others

Dynamically linked by Drogona 0

valgrind

1:3.13.0-2ubuntu2

GPL-2+ + others

Executable used for for debuggingd 0

vim

2:8.0.1453-1ubuntu1.4

Vim + others

Executable used for text editing in terminald 0

wget

1.19.4-1ubuntu2.2

GPL-3 with OpenSSL exception

Executable used to retrieve files from the internetd 0

zlib1g-dev

1:1.2.11.dfsg-0ubuntu2

Zlib

Dynamically linked by proteus-servera 0

Ubuntu PPAs

The following packages (and any dependencies) are installed from a Personal Package Archive (PPA) using Ubuntu’s package manager apt.

Name

Version

License

Usage

gcc-9

9.4.0-1ubuntu1~18.04

GPL-3 + others

Executable used for compiling source coded 0

g++-9

9.4.0-1ubuntu1~18.04

GPL-3 + others

Executable used for compiling source coded 0

PyPI

The following packages (and any dependencies) are installed from the Python Package Index (PyPI) using pip.

Name

Version

License

Usage

black

latest

MIT

Formatting Python filesd 0

breathe

latest

BSD-3

Connect Doxygen to Sphinx for documentationd 0

cmakelang

latest

GPL-3

CMake linter and formatterd 0

cpplint

latest

BSD-3

C++ linterd 0

fastcov

latest

MIT

Reporting test coveraged 0

numpy

latest

BSD-3

Scientific computing package for Pythond 0

opencv-python-headless

latest

MIT

Python bindings for OpenCVd 0

pip

latest

MIT

Python package installerd 0

pre-commit

latest

MIT

Pre-commit hook frameworkd 0

pybind11_mkdoc

latest

MIT

Used to extract function documentation for Python bindingd 0

pybind11-stubgen

latest

BSD-3

Used to generate type stubs for Python bindingd 0

pytest

latest

MIT

Python testing infrastructured 0

pytest-benchmark

latest

BSD-2

Plugin for Pytest to add benchmarkingd 0

pytest-cpp

latest

MIT

Plugin for Pytest to run C++ testsd 0

pytest-xprocess

latest

MIT

Plugin for Pytest to run external processesd 0

requests

latest

Apache-2.0

Making REST requestsd 0

rich

latest

MIT

Printing tables when benchmarkingd 0

setuptools

latest

MIT

Manage Python packagesd 0

sphinx

latest

BSD-2 + others

Building documentationd 0

sphinx-argparse

latest

MIT

Sphinx plugin for documenting CLIsd 0

sphinx_copybutton

latest

MIT

Adds copy button for code blocksd 0

sphinx-issues

latest

MIT

Sphinx plugin for links to the project’s Github issue trackerd 0

sphinxcontrib-confluencebuilder

latest

BSD-2

Sphinx plugin to export documentation to Confluenced 0

wheel

latest

MIT

Support wheels for Python packagesd 0

Github

The following packages are installed from Github.

Name

Version

License

Usage

Kitware/CMake

3.21.1

BSD-3 + others

Executable used to generate build systemsd 0

cameron314/concurrentqueue

1.0.3

Dual BSD-2/Boost + others

Statically linked by proteus-server for an efficient multi-producer queuea 0

jarro2783/cxxopts

2.2.1

MIT

Statically linked by proteus-server for command-line argument parsinga 0

gdraheim/docker-systemctl-replacement

1.5.4505

EUPL

Executable created by pyinstaller for starting XRMa 0

drogonframework/drogon

1.7.5

MIT

Dynamically linked by proteus-server for an HTTP and websocket servera 0

SpartanJ/efsw

latest

MIT

Dynamically linked by proteus-server for directory monitoringa 0

FFmpeg/FFmpeg

3.4.8

LGPL-2.1+ + others

Dynamically linked by proteus-server for video processinga 0

tschaub/gh-pages

latest

MIT

Executable used to publish documentation to gh-pages branchd 0

git-lfs/git-lfs

2.13.3

MIT + others

Executable used to manage large files in gitd 0

tianon/gosu

1.12

Apache 2.0

Executable used to drop down to user when starting containera 0

google/googletest

1.11.0

BSD-3

Statically linked by proteus’s test executablesd 0

grpc/grpc

1.44

Apache 2.0

Statically linked by proteus-server for gRPC supporta 0

include-what-you-use/include-what-you-use

0.14

LLVM License

Executable used to check C++ header inclusionsd 0

jemalloc/jemalloc

5.3.0

BSD-2

Dynamically linked by proteus-server for memory allocation implementationa 3

json-c/json-c

0.15

MIT

Dynamically linked by Vitis librariesa 1

libb64/libb64

2.0.0.1

Public Domain Certification

Statically linked by proteus-server for base64 codeca 0

linux-test-project/lcov

1.15

GPL-2

Executable used for test coverage measurementd 0

nodejs/node

14.16.0

MIT + others

Executable used for web GUI developmentd 0

opencv/opencv

3.4.3

Apache 2.0

Dynamically linked by proteus-server for image and video processinga 0

open-telemetry/opentelemetry-cpp

1.1.0

Apache 2.0

Dynamically linked by proteus-servera 0

pybind/pybind11

2.9.1

BSD-3

Headers used to build Python bindingsd 0

jupp0r/prometheus-cpp

0.12.2

MIT

Dynamically linked by proteus-server for metricsa 0

protocolbuffers/protobuf

3.19.4

BSD-3

Dynamically linked by proteus-server and Vitis librariesa 0

gabime/spdlog

1.8.2

MIT

Statically linked by proteus-server for logginga 0

Xilinx/Vitis-AI

latest

Apache 2.0

VART is dynamically linked by proteus-servera 1

wg/wrk

4.1.0

modified Apache 2.0

Executable used for benchmarking proteus-serverd 0

Xilinx

The following packages are installed from Xilinx.

Name

Version

License

Usage

XRM

1.3.29

Apache 2.0

Used for FPGA resource managementa 1

XRT

2.12.427

Apache 2.0

Used for communicating to the FPGAa 1

AMD

The following packages are downloaded from AMD.

Name

Version

License

Usage

TF_v2.9_ZenDNN_v3.3_C++_API.zip

3.3

AMD ZenDNN EULA

Used by TF+ZenDNN workera 2

PT_v1.11.0_ZenDNN_v3.3_C++_API.zip

3.3

AMD ZenDNN EULA

Used by PT+ZenDNN workera 3

Included

The following files are included in the AMD Inference Server repository under the terms of their original licensing. This information is duplicated in the LICENSE.

Name

Source

Original File

License

Usage

bicycle-384566_640.jpg

Pixabay

bicycle-384566_640.jpg

Pixabay License

Used for testingd 0

CodeCoverage.cmake

bilke/cmake-modules

CodeCoverage.cmake

BSD-3

CMake module for test coverage measurementd 0

ctpl.h

vit-vit/CTPL

ctpl.h

Apache 2.0

C++ Thread pool librarya 0

dog-3619020_640.jpg

Pixabay

dog-3619020_640.jpg

Pixabay License

Used for testingd 0

nine_9273.jpg

Keras MNIST dataset

?

CC BY-SA 3.0

Used for testingd 0

proteusConfig.cmake

alexreinking/SharedStaticStarter

SomeLibConfig.cmake

MIT

CMake module for installing librariesd 0

Queue.js

Kate Rose Morley

Queue.src.js

CC0 1.0 Universal

JavaScript class for a queued 0

sport-1284275_640.jpg

Pixabay

sport-1284275_640.jpg

Pixabay License

Used for testingd 0

Downloaded Files

The following files can be optionally downloaded by scripts and may be needed by examples and tests.

Name

Source

License

Usage

densebox_320_320-u200-u250-r1.4.0.tar.gz

Xilinx Inc.

Apache 2.0

Used for testingd 0

girl-1867092_640.jpg

Pixabay

Pixabay License

Used for testingd 0

Physicsworks.ogv

Wikimedia

CC Attribution 3.0 Unported

Used for testingd 0

pt_resnet50_imagenet_224_224_8.2G_2.5_1.0_Z3.3.zip

Xilinx Inc.

Apache 2.0

Used for testingd 3

resnet_v1_50_tf-u200-u250-r1.4.0.tar.gz

Xilinx Inc.

Apache 2.0

Used for testingd 0

tf_resnetv1_50_imagenet_224_224_6.97G_2.5_1.0_Z3.3.zip

Xilinx Inc.

Apache 2.0

Used for testingd 2

vitis_ai_runtime_r1.3.0_image_video.tar.gz

Xilinx Inc.

Apache 2.0

Used for testingd 0

yolov3_adas_pruned_0_9-u200-u250-r1.4.0.tar.gz

Xilinx Inc.

Apache 2.0

Used for testingd 0

yolov3_voc-u200-u250-r1.4.0.tar.gz

Xilinx Inc.

Apache 2.0

Used for testingd 0