Dependencies

This document catalogues the tools, libraries and packages that AMD Inference Server depends on and are installed in the Docker images. 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 deployment. Dev images are larger in size and contain all the tools and dependencies to compile, lint and test the inference server. In contrast, the deployment 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

4

Used if MIGraphX is added

Base Image

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

Ubuntu Focal 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.10-1ubuntu1

GPL-2+

Scripts used to auto-complete bash commandsd 0

clang-format-10

1:10.0.0-4ubuntu1

Apache 2.0 with LLVM exceptions + others

Executable used to apply formattingd 0

clang-tidy-10

1:10.0.0-4ubuntu1

Apache 2.0 with LLVM exceptions + others

Executable used for lintingd 0

curl

7.68.0-1ubuntu2.14

Curl

Executable used for transferring dataa 0

doxygen

1.8.17-0ubuntu2

GPL-2 with Qt exception + others

Executable used for building documentationd 0

gcc

4:9.3.0-1ubuntu2

GPL-2 + others

Executable used for compiling source coded 0

gdb

9.2-0ubuntu1~20.04.1

LGPL-2.1+ + others

Executable used for debuggingd 0

git

1:2.25.1-1ubuntu3.6

GPL-2 + others

Executable used for source controld 0

gnupg2

2.2.19-3ubuntu2.2

GPL-3+ + others

Executable used for signing commitsd 0

graphviz

2.42.2-3build2

EPL-1.0 + others

Executable used to draw graphs in documentationd 0

libboost1.71-dev

1.71.0-6ubuntu6

Boost

Used to build AKS kernelsa 1

libboost-filesystem1.71.0

1.71.0-6ubuntu6

Boost

Dynamically linked by AKSa 1

libboost-serialization1.71.0

1.71.0-6ubuntu6

Boost

Dynamically linked by AKSa 1

libboost-system1.71.0

1.71.0-6ubuntu6

Boost

Dynamically linked by AKSa 1

libboost-thread1.71.0

1.71.0-6ubuntu6

Boost

Dynamically linked by AKSa 1

libbrotli-dev

1.0.7-6ubuntu0.1

MIT

Dynamically linked by Drogona 0

libgoogle-glog-dev

0.4.0-1build1

BSD-3

Dynamically linked by VARTa 1

libnuma1

2.0.12-1

LGPL-2

Dependency of migraphxa 4

libssl-dev

1.1.1f-1ubuntu2.16

Dual OpenSSL/SSLeay

Dynamically linked by Drogona 0

locales

2.31-0ubuntu9.9

GPL-2 + others

Executable used to set localea 0

make

4.2.1-1.2

GPL-3+

Executable used to build executablesd 0

net-tools

1.60+git20180626.aebd88e-1ubuntu1

GPL-2+

Executable used to query used portsa 1

openssh-client

1:8.2p1-4ubuntu0.5

OpenSSH + others

Executable used for remote connectionsd 0

pkg-config

0.29.1-0ubuntu4

GPL-2+

Executable used for configuring unilogd 0

python3

3.8.2-0ubuntu2

PSF License

Executable used for scripting and testing amdinfer-serverd 0

python3-dev

3.8.2-0ubuntu2

PSF License

Used to build Python bindingsd 0

sudo

1.8.31-1ubuntu1.2

ISC license + others

Executable used to grant elevated permissions to the usera 0

symlinks

1.4-4

Freely distributable

Executable used to convert absolute symlinks to relative onesd 0

tzdata

2022f-0ubuntu0.20.04.1

Public Domain

Used for setting the timezonea 0

uuid-dev

2.34-0.1ubuntu9.3

GPL-2+ + others

Statically linked by Drogona 0

valgrind

1:3.15.0-1ubuntu9.1

GPL-2+ + others

Executable used for for debuggingd 0

vim

2:8.1.2269-1ubuntu5.9

Vim + others

Executable used for text editing in terminald 0

wget

1.20.3-1ubuntu2

GPL-3 with OpenSSL exception

Executable used to retrieve files from the internetd 0

zlib1g-dev

1:1.2.11.dfsg-2ubuntu1.5

Zlib

Dynamically linked by amdinfer-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

migraphx-dev

2.4.0.50401-84~20.04

MIT

Dynamically linked by amdinfer-server for AMD GPU supporta 4

miopen-hip-dev

2.19.0.50401-84~20.04

MIT

Dependency of migraphxa 4

rocblas-dev

2.46.0.50401-84~20.04

MIT

Dependency of migraphxa 4

rocm-device-libs

1.0.0.50401-84~20.04

MIT

Dependency of migraphxa 4

PyPI

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

Name

Version

License

Usage

black

23.3.0

MIT

Formatting Python filesd 0

breathe

4.35.0

BSD-3

Connect Doxygen to Sphinx for documentationd 0

cmakelang

0.6.13

GPL-3

CMake linter and formatterd 0

cpplint

1.6.1

BSD-3

C++ linterd 0

exhale

0.3.6

BSD-3

Documentation generatord 0

fastcov

1.14

MIT

Reporting test coveraged 0

numpy

1.24.2

BSD-3

Scientific computing package for Pythond 0

opencv-python-headless

4.7.0.72

MIT

Python bindings for OpenCVd 0

pip

latest

MIT

Python package installerd 0

pre-commit

3.2.2

MIT

Pre-commit hook frameworkd 0

pybind11_mkdoc

2.6.2

MIT

Used to extract function documentation for Python bindingd 0

pybind11-stubgen

0.13.0

BSD-3

Used to generate type stubs for Python bindingd 0

pytest

7.3.1

MIT

Python testing infrastructured 0

pytest-benchmark

4.0.0

BSD-2

Plugin for Pytest to add benchmarkingd 0

pytest-cpp

2.3.0

MIT

Plugin for Pytest to run C++ testsd 0

pytest-xprocess

0.22.2

MIT

Plugin for Pytest to run external processesd 0

requests

2.28.2

Apache-2.0

Making REST requestsd 0

rich

13.3.4

MIT

Printing tables when benchmarkingd 0

setuptools

latest

MIT

Manage Python packagesd 0

Sphinx

4.5.0

BSD-2 + others

Building documentationd 0

sphinx-argparse

0.4.0

MIT

Sphinx plugin for documenting CLIsd 0

sphinx-copybutton

0.5.2

MIT

Adds copy button for code blocksd 0

sphinx-issues

3.0.1

MIT

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

sphinx-tabs

3.4.0

MIT

Sphinx plugin to create tabsd 0

sphinx_tippy

0.4.1

MIT

Sphinx plugin to create tooltipsd 0

sphinxcontrib-confluencebuilder

2.0.0

BSD-2

Sphinx plugin to export documentation to Confluenced 0

sphinxcontrib-jquery

4.1

BSD-0

Sphinx plugin to add JQueryd 0

sphinxcontrib-openapi

0.8.1

BSD-2

Sphinx plugin to build OpenAPI docsd 0

sphinxemoji

0.2.0

BSD-3

Sphinx plugin for enabling emojid 0

wheel

latest

MIT

Support wheels for Python packagesd 0

Github

The following packages are installed from Github.

Name

Version

License

Usage

c-ares/c-ares

1.14

c-ares license

Dynamically linked by Drogona 0

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 amdinfer-server for an efficient multi-producer queuea 0

jarro2783/cxxopts

2.2.1

MIT

Statically linked by amdinfer-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.8.1

MIT

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

SpartanJ/efsw

latest

MIT

Dynamically linked by amdinfer-server for directory monitoringa 0

FFmpeg/FFmpeg

3.4.8

LGPL-2.1+ + others

Dynamically linked by amdinfer-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 amdinfer’s test executablesd 0

grpc/grpc

1.44

Apache 2.0

Statically linked by amdinfer-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 amdinfer-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 amdinfer-server for base64 codeca 0

linux-test-project/lcov

1.15

GPL-2

Executable used for test coverage measurementd 0

opencv/opencv

3.4.3

Apache 2.0

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

open-telemetry/opentelemetry-cpp

1.9.0

Apache 2.0

Dynamically linked by amdinfer-servera 0

pybind/pybind11

2.9.1

BSD-3

Headers used to build Python bindingsd 0

jupp0r/prometheus-cpp

1.1.0

MIT

Dynamically linked by amdinfer-server for metricsa 0

protocolbuffers/protobuf

3.19.4

BSD-3

Dynamically linked by amdinfer-server and Vitis librariesa 0

fpagliughi/sockpp

e5c51b5

BSD-3

Dynamically linked by amdinfer-server a 0

gabime/spdlog

1.8.2

MIT

Statically linked by amdinfer-server for logginga 0

Xilinx/Vitis-AI

3.5

Apache 2.0

VART is dynamically linked by amdinfer-servera 1

wg/wrk

4.1.0

modified Apache 2.0

Executable used for benchmarking amdinfer-serverd 0

Others

The following packages are installed from other online sources.

Name

Version

License

Usage

half

2.2.0

MIT

Used for fp16 datatype

Xilinx

The following packages are installed from Xilinx.

Name

Version

License

Usage

XRM

1.15.212

Apache 2.0

Used for FPGA resource managementa 1

XRT

2.14.418

Apache 2.0

Used for communicating to the FPGAa 1

AMD

The following packages are downloaded from AMD.

Name

Version

License

Usage

PT_v1.12.0_ZenDNN_v4.0_C++_API.zip

4.0

AMD ZenDNN EULA

Used by PT+ZenDNN workera 3

TF_v2.10_ZenDNN_v4.0_C++_API.zip

4.0

AMD ZenDNN EULA

Used by TF+ZenDNN workera 2

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

crowd.jpg

Flickr

2306189268_88cc86b30f_z.jpg

CC BY 2.0

Used for testingd 0

ctpl.hpp

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

migraphx_bert.py

ROCmSoftwarePlatform/AMDMIGraphX

bert-squad-migraphx.py

MIT

Python example for YoloV4 modeld 0

migraphx_yolo.py

ROCmSoftwarePlatform/AMDMIGraphX

yolov4_inference.ipynb

MIT

Python example for Bert modeld 0

sport-1284275_640.jpg

Pixabay

sport-1284275_640.jpg

Pixabay License

Used for testingd 0

yolo_image_processing.py

ROCmSoftwarePlatform/AMDMIGraphX

image_processing.py

MIT

Yolo post-processingd 0

Downloaded Files

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

Name

Source

License

Usage

Physicsworks.ogv

Wikimedia

CC Attribution 3.0 Unported

Used for testingd 0

girl-1867092_640.jpg

Pixabay

Pixabay License

Used for testingd 0

vitis_ai_runtime_r1.3.0_image_video.tar.gz

Xilinx, Inc.

Apache 2.0

Used for testingd 0

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

Xilinx, Inc.

Apache 2.0

Used for testingd 1

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

Xilinx, Inc.

Apache 2.0

Used for testingd 1

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

Xilinx, Inc.

Apache 2.0

Used for testingd 1

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

Xilinx, Inc.

Apache 2.0

Used for testingd 3

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

Xilinx, Inc.

Apache 2.0

Used for testingd 2

resnet50-v2-7.onnx

ONNX

Apache 2.0

Used for testingd 4

val.txt

AMD, Inc.

?

Used for testingd 4

yolov4_anchors.txt

ONNX

Apache 2.0

Used for testingd 4

yolov4.onnx

ONNX

Apache 2.0

Used for testingd 4

coco.names

ONNX

Apache 2.0

Used for testingd 4

bertsquad-10.onnx

ONNX

Apache 2.0

Used for testingd 4

run_onnx_squad

AMD, Inc.

Apache 2.0

Used for testingd 4

inputs_amd.json

AMD, Inc.

MIT

Used for testingd 4