构建无处不在的深度学习部署系统
来源:互联网 发布:gentoo网络 编辑:程序博客网 时间:2024/05/16 10:08
《SDCC 2017 人工智能技术实战线上峰会》学习笔记
刘文志
深度学习部署平台特点:
深度学习的两个方面:
部署、训练
面临的挑战:现代深度学习部署平台要求:
- 支持多种不同的架构不同厂家
- 不同硬件
- 不同编程语言
- 不同终端:服务器、桌面、笔记本、手机、智能硬件、机器人、无人机
- 高性能:手机、机器人、无人机、智能硬件不会用性能很高的芯片
- 易于使用:Windows Linux Android IOS统一接口
深度学习部署平台的运算:
- 神经网络
- 图像处理
- 矩阵、向量运算
主流深度学习部署硬件架构及特性
挑战:高性能
性能与可维护性、可靠性冲突
使用最底层的编码方式
- Intrinsic汇编
- 时间长、难度大
生产率下降
- 原来10行,现在100行
- 原来处理一种情况,现在处理十种情况
调试、维护代价大
解决方法:
- 只处理最耗时、影响性能的部分
- 能用高层的语言/方式,就不用底层的
- 基础:20% 80%定理
现代主流处理器高性能编程方式
Intel
挑战:不同硬件类型
性能差别大
- 手机CPU、桌面CPU、。。。
编程方式差别大
- C OpenCL CUDA Verilog
优化难度差别大
- CUDA难,OPENCL更难,Verilog超难
程序性能在不同硬件上不一致
- NVIDA GPU上跑3ms好快,PC上跑100ms 还行,手机上跑2s
解决方法:
- 提前做性能预测、降低研发人员阈值
- 性能越低的平台,越做极致的优化
挑战 : 融入厂商的实现
厂商有各种实现,但不兼容
- Intel MKLDNN
- ARM ACL
- NVIDA CUDNN/TensorRT
解决方案:
- 加兼容层抽象
- 条件编译
挑战:统一使用接口
用户想使用自己喜欢的语言
- 服务器:java/go/ruby
- apple:objectC Swift
- 潜在的高层语言数量无限
维护人员只想使用一套接口
- 维护代价,保证一致性等等
解决方法:双层设计
- 底层:标准C接口
- 高层:应用接口、浅层封装
- C接口不变,高层接口不变
- C接口改变,上层接口可能不变,改对应底层接口调用即可。
人工智能部署平台支持不同的硬件架构
图形图像处理
硬件平台支持广泛
- x86 / arm cpu/nvidia gpu/qualcomm gpu/arm gpu
常见图像处理函数
OpenCV
操作系统支持广泛
极高的性能
- OpenCV
- 高通FastCV
如何评估部署平台性能/效率
- 哈佛架构
- 存储器
- 计算
- 存储计算均衡
- 资源竞争与备份
(PPL 该部署平台的名字)
嵌入式ARM人脸对比解决方案
驾驶员分析系统:
- 构建无处不在的深度学习部署系统
- 无处不在的推荐系统
- 构建深度学习环境(基于Pycharm/Python/Tensorflow/Linuxx系统/VMware的开发平台构建)
- 系统无处不在
- 学习无处不在
- 计算机视觉+AR,构建无处不在的空间互联网入口
- 六招教你用Python构建好玩的深度学习应用
- 深度学习笔记——利用深度学习构建社区问答系统之相似问题对匹配
- 一步步搭建物联网系统——无处不在的CSS
- 一步步搭建物联网系统——无处不在的Javascript
- Google会思考的深度学习系统
- 深度学习时代的推荐系统
- 使用深度学习构建先进推荐系统:近期33篇重要研究概述
- 机器学习系统构建
- 深度学习系统搭建
- 系统学习深度学
- 深度学习篇——Ubuntu16.04系统下部署caffe(CPU_ONLY)
- 【神经网络与深度学习】chainer边运行边定义的方法使构建深度学习网络变的灵活简单
- 中企动力对于旅游行业网站运营的建议与思考
- 乐视kido发布首款智能儿童手表:接入图灵机器人引擎
- oracle学习(使用了PL/SQL)——1
- 温润手感,vivo X7首发开箱图赏
- 腾讯应用宝全新广告片上线 宋仲基首次代言互联网产品
- 构建无处不在的深度学习部署系统
- LeetCode:Best Time to Buy and Sell Stock III
- Linux学习路径(图)
- 小程序跳转刷新
- imagick的简单使用
- Linux应用编程基础--(6)守护进程
- Gym 101572D Distinctive Character【思维+Bfs】
- three.js 01-06 之使用 ASCII 效果
- 可能是MacOS中最好用的集成开发工具-Xcode初学者(C/C++ 新生)教程