Skip to content

Deep Learning Inference benchmark. Supports OpenVINO™ toolkit, Caffe, TensorFlow, TensorFlow Lite, ONNX Runtime, OpenCV DNN, MXNet, PyTorch, Apache TVM, ncnn, etc.

License

Notifications You must be signed in to change notification settings

itlab-vision/dl-benchmark

Repository files navigation

DLI: Deep Learning Inference Benchmark

Introduction

This is a repo of the deep learning inference benchmark, called DLI. DLI is a benchmark for deep learning inference on various hardware. The goal of the project is to develop a software for measuring the performance of a wide range of deep learning models inferring on various popular frameworks and various hardware, as well as regularly publishing the obtained measurements.

The main advantage of DLI from the existing benchmarks is the availability of performance results for a large number of deep models inferred on Intel-platforms (Intel CPUs, Intel Processor Graphics, Intel Movidius Neural Compute Stick).

DLI supports inference using the following frameworks:

More information about DLI is available on the web-site (here (in Russian) or here (in English)) or on the Wiki page.

License

This project is licensed under the terms of the Apache 2.0 license.

Cite

Please consider citing the following papers.

  1. Kustikova V., Vasilyev E., Khvatov A., Kumbrasiev P., Rybkin R., Kogteva N. DLI: Dee p Learning Inference Benchmark // Communications in Computer and Information Science. V.1129. 2019. P. 542-553.

  2. Sidorova A.K., Alibekov M.R., Makarov A.A., Vasiliev E.P., Kustikova V.D. Automation of collecting performance indicators for the inference of deep neural networks in Deep Learning Inference Benchmark // Mathematical modeling and supercomputer technologies. Proceedings of the XXI International Conference (N. Novgorod, November 22–26, 2021). – Nizhny Novgorod: Nizhny Novgorod State University Publishing House, 2021. – 423 p. https://hpc-education.unn.ru/files/conference_hpc/2021/MMST2021_Proceedings.pdf. (In Russian)

  3. Alibekov M.R., Berezina N.E., Vasiliev E.P., Kustikova V.D., Maslova Z.A., Mukhin I.S., Sidorova A.K., Suchkov V.N. Performance analysis methodology of deep neural networks inference on the example of an image classification problem // Russian Supercomputing Days (RSD-2023). - 2023. (In Russian)

  4. Alibekov M.R., Berezina N.E., Vasiliev E.P., Vikhrev I.B., Kamelina Yu.D., Kustikova V.D., Maslova Z.A., Mukhin I.S., Sidorova A.K., Suchkov V.N. Performance analysis methodology of deep neural networks inference on the example of an image classification problem // Numerical Methods and Programming. - 2024. - Vol. 25(2). - P. 127-141. - https://num-meth.ru/index.php/journal/article/view/1332/1264. (In Russian)

Repo structure

  • demo directory contains demos for different frameworks and operating systems.

    • OpenVINO_DLDT is directory that contains demos for Intel® Distribution of OpenVINO™ Toolkit.
  • docker directory contains Dockerfiles.

    • Dockerfile is the main Dockerfile.
    • Caffe is a directory of Dockerfiles for Intel® Optimization for Caffe.
    • MXNet is a directory of Dockerfiles for MXNet.
    • ONNXRuntime is a directory of Dockerfiles for ONNX Runtime.
    • OpenCV is a directory of Dockerfiles for OpenCV.
    • OpenVINO_DLDT is a directory of Dockerfiles for Intel® Distribution of OpenVINO™ Toolkit.
    • PyTorch is a directory of Dockerfiles for PyTorch.
    • TVM is a directory of Dockerfiles for Apache TVM.
    • TensorFlow is a directory of Dockerfiles for Intel® Optimizations for TensorFlow.
  • docs directory contains auxiliary documentation. Please, find complete documentation at the Wiki page.

  • results directory contains benchmarking and validation results.

  • src directory contains benchmark sources.

    • accuracy_checker contains scripts to check deep model accuracy using Accuracy Checker of Intel® Distribution of OpenVINO™ toolkit.
    • benchmark is a set of scripts to estimate inference performance of different models at the single local computer.
    • build_scripts is a directory to build inference frameworks for different platforms.
    • config_makercontains GUI-application to make configuration files of the benchmark components.
    • configs contains template configuration files.
    • cpp_dl_benchmark contains C++ tools that allow to measure deep learning models inference performance with ONNX Runtime, OpenCV DNN, PyTorch and TensorFlow Lite in C++ API implementation. This implementation inspired by OpenVINO Benchmark C++ tool as a reference and stick to its measurement methodology, thus provide consistent performance results.
    • csv2html is a set of scripts to convert performance and accuracy tables from csv to html.
    • csv2xlsx is a set of scripts to convert performance and accuracy tables from csv to xlsx.
    • deployment is a set of deployment tools.
    • inference contains python inference implementation.
    • model_converters contains converters of deep models.
    • node_info contains a set of functions to get information about computational node.
    • quantization contains scripts to quantize model to INT8-precision using Post-Training Optimization Tool (POT) of Intel® Distribution of OpenVINO™ toolkit.
    • remote_control contains scripts to execute benchmark remotely.
    • tvm_autotuning contains scripts to optimize Apache TVM models.
    • utils is a package of auxiliary utilities.
  • test contains smoke tests.

  • requirements.txt is a list of special requirements for the DLI benchmark without inference frameworks.

  • requirements_ci.txt is a list of requirements for continuous integration.

  • requirements_frameworks.txt is a list of requirements to check inference of deep neural networks using different frameworks using smoke tests.

Documentation

The latest documentation for the Deep Learning Inference Benchmark (DLI) is available here. This documentation contains detailed information about the DLI components and provides step-by-step guides to build and run the DLI benchmark on your own test infrastructure.

How to build

See the DLI Wiki to get more information.

How to deploy

See the DLI Wiki to get more information.

How to infer deep models

See the DLI Wiki to get more information.

How to contribute

See the DLI Wiki to get more information.

Available benchmarking results

See the DLI Wiki to get more information about benchmaring results on available hardware.

Get a support

Report questions, issues and suggestions, using: