对标Tensorflow ? Vertex.AI开源深度学习框架PlaidML

Posted 机械鸡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对标Tensorflow ? Vertex.AI开源深度学习框架PlaidML相关的知识,希望对你有一定的参考价值。


今天,Vertex.AI发布了开源便携式深度学习引擎PlaidML,Vertex.AI的使命是让任何人都能快速开发深度学习应用。


Vertex.AI支持开发人员、研究人员和学生常用的最流行的硬件和软件。最初版本的PlaidML在大多数现有的PC硬件上运行,包括NVIDIA、AMD或Intel的OpenCL功能的GPU。此外,我们还包括支持在广受欢迎的Keras框架运行。


对标Tensorflow ? Vertex.AI开源深度学习框架PlaidML

PlaidML支持的框架和硬件


Vertex.AI使用PlaidML作为嵌入式设备深度学习视觉系统的核心。迄今为止,Vertex.AI专注于支持图像处理神经网络,如ResNet-50,Xception和MobileNet。


通过开源这项技术,来提高深度学习的普及性。这个版本只是第一步。目前,PlaidML支持Keras,OpenCL和Linux。将来,公司将添加对macOS和Windows的支持。


未来还将添加与TensorFlow、PyTorch和Deeplearning4j等框架的兼容性。对于视觉工作负载,Vertex.AI已经展示了硬件的结果,与供应商的引擎(如cuDNN)相当。


性能更新


吞吐量是计算密集型开发工作流程和使生产中最复杂的模型能够使用的关键因素。我们在之前的一篇文章中写道,将PlaidML推断吞吐量与TensorFlow在cuDNN上进行比较。


自从发布TensorFlow团队的性能进行了重大改进后,大大提高了未分配的Xception吞吐量数据。在更新到Keras 2.0.8,cuDNN 6和Tensorflow 1.3之后,它大约在PlaidML吞吐量的4%内:


对标Tensorflow ? Vertex.AI开源深度学习框架PlaidML


Unbatch Xception推理率(ratio):1.04〜1.00(长条更好)


实际上,PlaidML的图像推理吞吐量,适用于当今的实际工作负载。下图显示了各种图像网络和GPU型号的吞吐量,单位是NVIDIA Tesla K80(长条更快)的吞吐量与TensorFlow的对比率:


Unbatched Xception跨平台推理


使用PlaidML


开始使用PlaidML的最快方法是安装二进制版本。有关系统要求的详细说明以及当前实现的功能,请参阅GitHub上的README。简单来说,系统要求是:


  • 安装了64位Linux发行版的PC(我们测试了Ubuntu 16.04)

  • 具有运行OpenCL驱动程序的GPU(用于clinfo显示已配置的设备)

  • 安装Python 2.7


要安装PlaidML并做一个快速的基准测试,你需要做的是:


sudo pip install plaidml plaidml-keras

git clone https://github.com/plaidml/plaidbench

cd plaidbench

pip install -r requirements.txt

python plaidbench.py mobilenet


默认情况下,plaidbench将使用PlacesML进行基准测试,并得出以下结果:



Using PlaidML backend.

INFO:plaidml:Opening device "tesla_p100-pcie-16gb.0": "Tesla P100-PCIE-16GB"

Example finished, elapsed: 11.72719311714 (compile), 6.80260443687 (execution)


在这种情况下,Google Cloud Platform上的NVIDIA Tesla K80P100的结果为6.8秒。为了测试在Keras的TensorFlow后端运行的相同工作负载,您需要分别安装tensorflow或者连接tensorflow-gpucuDNN和其他依赖项。然后运行plaidbench与“no-plaid”选项:


python plaidbench.py mobilenet --no-plaid


输出应如下所示:


Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0)

Example finished, elapsed: 9.71920609474 (compile), 7.94898986816 (execution)


在第一次运行时,PlaidML可能需要更长时间才能执行,但是即使在最新的NVIDIA硬件(在这种情况下,大约为14%)中运行,也优于TensorFlow + cuDNN。


Github:https://github.com/plaidml/plaidml


推荐阅读











长期招聘志愿者

加入「AI从业者社群」请备注个人信息

添加小鸡微信  liulailiuwang


以上是关于对标Tensorflow ? Vertex.AI开源深度学习框架PlaidML的主要内容,如果未能解决你的问题,请参考以下文章

Intel收购深度学习公司Vertex.AI:整合入AI部门

英特尔收购AI初创公司Vertex.AI,后者专注于便携式深度学习引擎

GCP - 将 Vertex.AI 连接到共享 VPC 的问题

开源 | 为Go语言设计的机器学习库Gorgonia:对标TensorFlow与Theano

在 Vertex AI(谷歌云平台)中使用模型进行预测

在 Google Cloud Vertex AI 上使用客户处理程序进行部署