Adlik

加速深度学习推理的工具包
授权协议 Apache-2.0
开发语言 C/C++ Python
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 不详
投 递 者 景令秋
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Adlik 是深度学习模型的端到端优化框架。Adlik 的目标是在云和嵌入式环境中加速深度学习推理过程。

Adlik示意图

使用 Adlik 框架,不同的深度学习模型可以以非常灵活和简单的方式以高性能部署到不同的平台。

使用 Adlik 在云/边缘/设备中部署模型

  1. 在云环境中,编译后的模型和 Adlik 推理引擎应构建为 docker 镜像,并部署为容器。

  2. 在边缘环境中,应将 Adlik 推理引擎部署为容器。编译后的模型应该转移到边缘环境,Adlik 推理引擎应该自动更新和加载模型。

  3. 在设备环境中,Adlik Inference Engine 和编译后的模型应编译为二进制文件。想要在设备上运行模型推理的用户应该将用户定义的 AI 函数和 Adlik 二进制文件链接到执行文件,并直接运行。

构建

本指南用于在 Ubuntu 系统上构建 Adlik 。

首先,安装 Git 和 Bazel

然后,克隆 Adlik 并将工作目录更改为源目录:

git clone https://github.com/ZTE/Adlik.git
cd Adlik

构建客户端

  1. 安装以下软件包:

    • python3-setuptools
    • python3-wheel
  2. 构建客户端:

    bazel build //adlik_serving/clients/python:build_pip_package -c opt
  3. 构建 pip 包:

    mkdir /tmp/pip-packages && bazel-bin/adlik_serving/clients/python/build_pip_package /tmp/pip-packages

构建服务

首先,安装以下软件包:

  • automake
  • libtbb2
  • libtool
  • make
  • python3-six

使用 OpenVINO 运行时构建服务

  1. 从 OpenVINO 安装intel-openvino-runtime-ubuntu<OS_VERSION>-<VERSION>包 。

  2. 假设 OpenVINO 的安装路径为/opt/intel/openvino_VERSION,运行如下命令:

    export INTEL_CVSDK_DIR=/opt/intel/openvino_VERSION
    export InferenceEngine_DIR=$INTEL_CVSDK_DIR/deployment_tools/inference_engine/share
    bazel build //adlik_serving \
        --config=openvino \
        -c opt

使用 TensorFlow CPU 运行时构建服务

  1. 运行以下命令:

    bazel build //adlik_serving \ 
        --config=tensorflow-cpu \ 
        -c opt

使用 TensorFlow GPU 运行时构建服务

假设使用 CUDA 版本 11.0 构建。

  1. 这里和 这里安装以下软件包 :

    • cuda-cupti-dev-11-0
    • libcublas-dev-11-0
    • libcudnn8=*+cuda11.0
    • libcudnn8-dev=*+cuda11.0
    • libcufft-dev-11-0
    • libcurand-dev-11-0
    • libcusolver-dev-11-0
    • libcusparse-dev-11-0
    • libnvinfer7=7.2.*+cuda11.0
    • libnvinfer-dev=7.2.*+cuda11.0
    • libnvinfer-plugin7=7.2.*+cuda11.0
    • libnvinfer-plugin-dev=7.2.*+cuda11.0
  2. 运行以下命令:

    env TF_CUDA_VERSION=11.0 TF_NEED_TENSORRT=1 \ 
        bazel build //adlik_serving \ 
            --config=tensorflow-gpu \ 
            -c opt \ 
            --incompatible_use_specific_tool_files=false

使用 TensorFlow Lite CPU 运行时构建服务

  1. 运行以下命令:

    bazel build //adlik_serving \ 
        --config=tensorflow-lite-cpu \ 
        -c opt

使用 TensorRT 运行时构建服务

假设使用 CUDA 版本 11.0 构建。

  1. 这里和 这里安装以下软件包 :

    • cuda-cupti-dev-11-0
    • cuda-nvml-dev-11-0
    • cuda-nvrtc-11-0
    • libcublas-dev-11-0
    • libcudnn8=*+cuda11.0
    • libcudnn8-dev=*+cuda11.0
    • libcufft-dev-11-0
    • libcurand-dev-11-0
    • libcusolver-dev-11-0
    • libcusparse-dev-11-0
    • libnvinfer7=7.2.*+cuda11.0
    • libnvinfer-dev=7.2.*+cuda11.0
    • libnvonnxparsers7=7.2.*+cuda11.0
    • libnvonnxparsers-dev=7.2.*+cuda11.0
  2. 运行以下命令:

    env TF_CUDA_VERSION=11.0 \ 
        bazel build //adlik_serving \ 
            --config=TensorRT \ 
            -c opt \ 
            --action_env=LIBRARY_PATH=/usr/local/cuda-11.0/lib64/stubs \ 
            --incompatible_use_specific_tool_files=false

使用 TF-TRT 运行时构建服务

假设使用 CUDA 版本 11.0 构建。

  1. 这里和 这里安装以下软件包 :

    • cuda-cupti-dev-11-0
    • libcublas-dev-11-0
    • libcudnn8=*+cuda11.0
    • libcudnn8-dev=*+cuda11.0
    • libcufft-dev-11-0
    • libcurand-dev-11-0
    • libcusolver-dev-11-0
    • libcusparse-dev-11-0
    • libnvinfer7=7.2.*+cuda11.0
    • libnvinfer-dev=7.2.*+cuda11.0
    • libnvinfer-plugin7=7.2.*+cuda11.0
    • libnvinfer-plugin-dev=7.2.*+cuda11.0
  2. 运行以下命令:

    env TF_CUDA_VERSION=11.0 TF_NEED_TENSORRT=1 \ 
        bazel build //adlik_serving \ 
            --config=tensorflow-tensorrt \ 
            -c opt \ 
            --incompatible_use_specific_tool_files=false

使用 Tvm 运行时构建服务

  1. 安装以下软件包:

    • build-essential
    • cmake
    • tvm
  2. 运行以下命令:

    bazel build //adlik_serving \ 
       --config=tvm \ 
       -c opt
  • Adlik推出容器镜像服务啦! 在之前《Adlik云原生介绍》一文中,我们推荐大家通过容器来搭建Adlik环境,便于为各Adlik的各个功能组件提供纯净的环境,也给大家介绍了Adlik从0到1安装、配置、编译、使用的全过程。 在Adlik的GitHub仓库中的docker-images目录下,我们还给大家提供了构建所需镜像的dockerfile,构建好镜像后,即可方便地使用Adlik。  近期,为

  • 近日,深度学习开源推理优化工具Adlik和深度学习开源平台PaddlePaddle的开源开发团队就双方在深度学习推理侧的技术研究和应用进行了深入研讨,并达成了合作意向。   Adlik项目旨在加速深度学习模型部署在各种硬件平台上的推理运行效率。Adlik以各种主流训练框架下训练的深度学习模型作为输入,根据特定的部署环境完成模型编译优化,生成对应的优化推理引擎,减少运行时的时延、能耗。   在深度学

  • 近日,中兴通讯开源的Adlik深度学习推理工具链新增对人工智能推理加速卡云燧i20的支持,可实现基于云燧i20的高效AI模型部署,提供高性能的云端推理服务。 Adlik是由中兴通讯在Linux基金会人工智能&数据基金会(LF AI & Data)发起的开源项目,旨在提升深度学习、机器学习等模型在各种硬件平台下的推理效率,助力人工智能在云、边、端等多种场景快速落地。 对异构硬件的推理支持是Adlik

 相关资料
  • 问题列表 《深度学习》 8.4 参数初始化策略 一般总是使用服从(截断)高斯或均匀分布的随机值,具体是高斯还是均匀分布影响不大,但是也没有详细的研究。 但是,初始值的大小会对优化结果和网络的泛化能力产生较大的影响。 一些启发式初始化策略通常是根据输入与输出的单元数来决定初始权重的大小,比如 Glorot and Bengio (2010) 中建议建议使用的标准初始化,其中 m 为输入数,n 为输出

  • 职位:深度学习算法工程师 base:上海 技术一面 (9/15) - 30min 自我介绍 项目介绍,随后围绕项目进行展开提问,会议论文与期刊论文之间的差异 反问 部门主要做感知(车道线、行人感知。。。 技术二面 (9/21) - 30min 没开摄像头 自我介绍 项目介绍,所有项目都介绍了一遍 中途会被打断问问题 反问 对除了自己所研究的方向外,还了解哪些,知不知道reid的方法、目标检测算法什

  • 主要内容 课程列表 专项课程学习 辅助课程 论文专区 课程列表 课程 机构 参考书 Notes等其他资料 卷积神经网络视觉识别 Stanford 暂无 链接 神经网络 Tweet 暂无 链接 深度学习用于自然语言处理 Stanford 暂无 链接 自然语言处理 Speech and Language Processing 链接 专项课程学习 下述的课程都是公认的最好的在线学习资料,侧重点不同,但推

  • Google Cloud Platform 推出了一个 Learn TensorFlow and deep learning, without a Ph.D. 的教程,介绍了如何基于 Tensorflow 实现 CNN 和 RNN,链接在 这里。 Youtube Slide1 Slide2 Sample Code

  • 你是如何记住一款车的 问你这样一个问题:如果你大脑有很多记忆单元,让你记住一款白色奥迪Q7运动型轿车,你会用几个记忆单元?你也许会用一个记忆单元,因为这样最节省你的大脑。那么我们再让你记住一款小型灰色雷克萨斯,你会怎么办?显然你会用另外一个记忆单元来记住它。那么如果让你记住所有的车,你要耗费的记忆单元就不再是那么少了,这种表示方法叫做localist representation。这时你可能会换另

  • 现在开始学深度学习。在这部分讲义中,我们要简单介绍神经网络,讨论一下向量化以及利用反向传播(backpropagation)来训练神经网络。 1 神经网络(Neural Networks) 我们将慢慢的从一个小问题开始一步一步的构建一个神经网络。回忆一下本课程最开始的时就见到的那个房价预测问题:给定房屋的面积,我们要预测其价格。 在之前的章节中,我们学到的方法是在数据图像中拟合一条直线。现在咱们不

  • 深度学习的总体来讲分三层,输入层,隐藏层和输出层。如下图: 但是中间的隐藏层可以是多层,所以叫深度神经网络,中间的隐藏层可以有多种形式,就构成了各种不同的神经网络模型。这部分主要介绍各种常见的神经网络层。在熟悉这些常见的层后,一个神经网络其实就是各种不同层的组合。后边介绍主要基于keras的文档进行组织介绍。

  • Python 是一种通用的高级编程语言,广泛用于数据科学和生成深度学习算法。这个简短的教程介绍了 Python 及其库,如 Numpy,Scipy,Pandas,Matplotlib,像 Theano,TensorFlow,Keras 这样的框架。