Files
graphene/Examples/openvino/object_detection_sample_ssd.manifest.template
Vijay Dhanraj 9aab974bca [Examples] Revert OpenVINO to use default TBB/hwloc
This commit also fixes small bugs in OpenVINO Makefile and manifest.
2021-01-29 01:34:52 -08:00

136 lines
7.3 KiB
Plaintext

# OpenVINO (object_detection_sample_ssd) manifest example
#
# This manifest was prepared and tested on Ubuntu 18.04.
libos.entrypoint = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/object_detection_sample_ssd"
# Path to the library OS
loader.preload = "file:$(GRAPHENE_DIR)/Runtime/libsysdb.so"
# Graphene log level
loader.log_level = "$(GRAPHENE_LOG_LEVEL)"
# Read application arguments directly from the command line. Don't use this on production!
loader.insecure__use_cmdline_argv = 1
# Environment variables
loader.env.LD_LIBRARY_PATH = "/lib:$(OPENVINO_DIR)/inference-engine/temp/tbb/lib:$(ARCH_LIBDIR):/usr/$(ARCH_LIBDIR)"
# Mounted FSes. The following "chroot" FSes mount a part of the host FS into the
# guest. Other parts of the host FS will not be available in the guest.
# Default glibc files, mounted from the Runtime directory in GRAPHENE_DIR.
fs.mount.lib.type = "chroot"
fs.mount.lib.path = "/lib"
fs.mount.lib.uri = "file:$(GRAPHENE_DIR)/Runtime"
# Host-level libraries (e.g., /lib/x86_64-linux-gnu) required by OpenVINO.
fs.mount.lib2.type = "chroot"
fs.mount.lib2.path = "$(ARCH_LIBDIR)"
fs.mount.lib2.uri = "file:$(ARCH_LIBDIR)"
# More host-level libraries (e.g., /usr/lib/x86_64-linux-gnu) required by OpenVINO.
fs.mount.lib3.type = "chroot"
fs.mount.lib3.path = "/usr/$(ARCH_LIBDIR)"
fs.mount.lib3.uri = "file:/usr/$(ARCH_LIBDIR)"
# Host-level directory to NSS files required by Glibc + NSS libs.
fs.mount.etc.type = "chroot"
fs.mount.etc.path = "/etc"
fs.mount.etc.uri = "file:/etc"
# Mount the current working directory
fs.mount.cwd.type = "chroot"
fs.mount.cwd.path = "$(OPENVINO_DIR)"
fs.mount.cwd.uri = "file:$(OPENVINO_DIR)"
# SGX general options
# Set the virtual memory size of the SGX enclave. For SGX v1, the enclave
# size must be specified during signing. If OpenVINO needs more virtual memory
# than the enclave size, Graphene will not be able to allocate it.
sgx.enclave_size = "2G"
# Set the maximum number of enclave threads. For SGX v1, the number of enclave
# TCSes must be specified during signing, so the application cannot use more
# threads than the number of TCSes. Note that Graphene also creates an internal
# thread for handling inter-process communication (IPC), and potentially another
# thread for asynchronous events. Therefore, the actual number of threads that
# the application can create is (sgx.thread_num - 2).
#
# We (somewhat arbitrarily) specify 16 threads since OpenVINO is multithreaded.
sgx.thread_num = 16
# SGX trusted files
sgx.trusted_files.object_detection_sample_ssd = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/object_detection_sample_ssd"
# Glibc libraries
sgx.trusted_files.ld = "file:$(GRAPHENE_DIR)/Runtime/ld-linux-x86-64.so.2"
sgx.trusted_files.libc = "file:$(GRAPHENE_DIR)/Runtime/libc.so.6"
sgx.trusted_files.libm = "file:$(GRAPHENE_DIR)/Runtime/libm.so.6"
sgx.trusted_files.libdl = "file:$(GRAPHENE_DIR)/Runtime/libdl.so.2"
sgx.trusted_files.librt = "file:$(GRAPHENE_DIR)/Runtime/librt.so.1"
sgx.trusted_files.libutil = "file:$(GRAPHENE_DIR)/Runtime/libutil.so.1"
sgx.trusted_files.libpthread = "file:$(GRAPHENE_DIR)/Runtime/libpthread.so.0"
# Name Service Switch (NSS) libraries (Glibc dependencies)
sgx.trusted_files.libnsscompat = "file:$(ARCH_LIBDIR)/libnss_compat.so.2"
sgx.trusted_files.libnssfiles = "file:$(ARCH_LIBDIR)/libnss_files.so.2"
sgx.trusted_files.libnssnis = "file:$(ARCH_LIBDIR)/libnss_nis.so.2"
# libNSL is a dependency of libnss_compat above
sgx.trusted_files.libnsl = "file:$(ARCH_LIBDIR)/libnsl.so.1"
# OpenVINO C++ dependencies
sgx.trusted_files.libcpp = "file:/usr/$(ARCH_LIBDIR)/libstdc++.so.6"
sgx.trusted_files.libgcc = "file:$(ARCH_LIBDIR)/libgcc_s.so.1"
sgx.trusted_files.libnuma = "file:/usr/$(ARCH_LIBDIR)/libnuma.so.1"
sgx.trusted_files.libxml2 = "file:/usr/$(ARCH_LIBDIR)/libxml2.so.2"
sgx.trusted_files.libicuuc = "file:/usr/$(ARCH_LIBDIR)/libicuuc.so.60"
sgx.trusted_files.libz = "file:$(ARCH_LIBDIR)/libz.so.1"
sgx.trusted_files.liblzma = "file:$(ARCH_LIBDIR)/liblzma.so.5"
sgx.trusted_files.libicudata = "file:/usr/$(ARCH_LIBDIR)/libicudata.so.60"
# OpenVINO main libraries
sgx.trusted_files.libformatreader = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libformat_reader.so"
sgx.trusted_files.libinferencenegine = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine.so"
sgx.trusted_files.libmkldnnplugin = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libMKLDNNPlugin.so"
sgx.trusted_files.libgnapplugin = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libGNAPlugin.so"
sgx.trusted_files.libcldnnpplugin = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libclDNNPlugin.so"
sgx.trusted_files.libmyriadplugin = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libmyriadPlugin.so"
sgx.trusted_files.libngraph = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libngraph.so"
sgx.trusted_files.libHeteroPlugin = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libHeteroPlugin.so"
sgx.trusted_files.libMultiDevicePlugin = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libMultiDevicePlugin.so"
sgx.trusted_files.libinferenceengine_onnx_reader = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine_onnx_reader.so"
sgx.trusted_files.libinferenceengine_ir_reader = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine_ir_reader.so"
sgx.trusted_files.libinferenceengine_legacy = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine_legacy.so"
sgx.trusted_files.libinferenceengine_transformations = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine_transformations.so"
sgx.trusted_files.libinferenceengine_lptransformations = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine_lp_transformations.so"
# OpenVINO OpenCV libraries
sgx.trusted_files.libimgcodecs = "file:$(OPENVINO_DIR)/inference-engine/temp/opencv_4.3.0_ubuntu18/opencv/lib/libopencv_imgcodecs.so.4.3"
sgx.trusted_files.libimgproc = "file:$(OPENVINO_DIR)/inference-engine/temp/opencv_4.3.0_ubuntu18/opencv/lib/libopencv_imgproc.so.4.3"
sgx.trusted_files.libopencvcore = "file:$(OPENVINO_DIR)/inference-engine/temp/opencv_4.3.0_ubuntu18/opencv/lib/libopencv_core.so.4.3"
# OpenVINO TBB dependencies
sgx.trusted_files.libtbbmalloc = "file:$(OPENVINO_DIR)/inference-engine/temp/tbb/lib/libtbbmalloc.so.2"
sgx.trusted_files.libtbb = "file:$(OPENVINO_DIR)/inference-engine/temp/tbb/lib/libtbb.so.2"
sgx.trusted_files.libtbbbind = "file:$(OPENVINO_DIR)/inference-engine/temp/tbb/lib/libtbbbind.so.2"
sgx.trusted_files.libhwloc = "file:$(OPENVINO_DIR)/inference-engine/temp/tbb/lib/libhwloc.so.5"
# OpenVINO SSD300 model
sgx.trusted_files.pluginsxml = "file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/plugins.xml"
sgx.trusted_files.modelxml = "file:$(MODEL_DIR)/VGG_VOC0712Plus_SSD_300x300_ft_iter_160000.xml"
sgx.trusted_files.modelbin = "file:$(MODEL_DIR)/VGG_VOC0712Plus_SSD_300x300_ft_iter_160000.bin"
# OpenVINO images (allowed instead of trusted for simplicity)
sgx.allowed_files.imagesdir = "file:images"
# Name Service Switch (NSS) files (Glibc reads these files)
sgx.allowed_files.nsswitch = "file:/etc/nsswitch.conf"
sgx.allowed_files.ethers = "file:/etc/ethers"
sgx.allowed_files.hosts = "file:/etc/hosts"
sgx.allowed_files.group = "file:/etc/group"
sgx.allowed_files.passwd = "file:/etc/passwd"