软件工具将GPU代码迁移到fpga以用于AI应用

Software tools migrate GPU code to FPGAs for AI applications

人工智能软件初创公司Mipsology正与Xilinx合作,使fpga能够仅使用一个额外的命令就可以替换AI加速器应用程序中的gpu。Mipsology的“zero effort零努力”软件Zebra将GPU代码转换为在FPGA上运行Mipsology的AI计算引擎,而无需进行任何代码更改或重新培训。

Xilinx今天宣布,它将为Zebra运送最新版本的Alveo U50卡。Zebra已经在其他Xilinx板上支持推理加速,包括Alveo U200和Alveo U250。

The latest build of Xilinx’ Alveo U50 data center accelerator card now comes with Mipsology’s Zebra software for conversion of GPU AI code to run on FPGAs

“Zebra为我们的Alveo卡带来的加速水平让CPU和GPU加速器相形见绌,”Xilinx市场副总裁Ramine Roane说。“与Zebra相结合,Alveo U50满足了AI工作负载的灵活性和性能需求,并为任何部署提供了高吞吐量和低延迟性能优势。”

Plug-and-play即插即用

FPGA历来被视为非专业人士难以编程,但Mipsology希望将FPGA打造成一种即插即用解决方案,与CPU或GPU一样易于使用。其目的是尽可能容易地从其他类型的加速转换到FPGA。

Mipsology首席执行官拉祖尔(Ludovic Larzul)在接受《电子时报》(EE Times)采访时表示:“了解(Mipsology)的最佳方法是,我们在FPGA上安装软件,使其透明,就像Nvidia为AI用户打造的Cuda CuDNN一样。”。

关键的是,这可以由非专家完成,不需要深厚的人工智能专业知识或FPGA技能,因为转换不需要模型再培训。

拉祖尔说:“易用性非常重要,因为当你看到人们的人工智能项目时,他们通常无法接触到设计神经网络的人工智能团队。”。“一般来说,如果有人建立了一个机器人系统,或者视频监控系统……他们会有其他团队或其他团体开发并训练神经网络。一旦他们得到(经过训练的模型),他们就不想改变它,因为他们没有专业知识。”

Zebra’s stack. The technology is applicable across data center, edge and embedded applications

Versus Vitis

既然Xilinx已经有了一个全面的解决方案,让数据科学家和软件开发人员(即Vitis)都可以访问fpga,那么为什么Xilinx还要支持第三方软件呢?

拉祖尔说:“一句话的意思是:我们做得更好。”。“另一句话就是:我们的作品。”

Mipsology不使用Vitis的任何部分,也不以任何方式与之联系,也不使用XDNN,Xilinx的神经网络加速器引擎。Mipsology在Zebra中有自己的计算引擎,支持客户现有的卷积神经网络(CNN)模型,不像XDNN那样,Larzul说XDNN支持大量演示,但不太适合定制神经网络。他说,这使得使用XDNN建立和运行自定义网络变得“痛苦”。虽然XDNN可以在没有GPU威胁的应用程序中竞争,但Zebra的目标是使FPGA能够基于性能、成本和易用性迎头赶上GPU。

Zebra’s stack in detail. The aim is to make FPGAs a simpler switch from GPUs or CPUs for AI acceleration by hiding the hardware as much as possible

拉祖尔说,大多数客户改变GPU解决方案的动机是成本。

他说:“他们想降低硬件成本,但又不想重新设计神经网络。”。“有一个非经常性的成本(这是避免的),因为我们能够透明地替换GPU,而且不需要重新训练或修改神经网络。”

根据Larzul的说法,fpga还提供了可靠性,部分原因是它们在硅不动产上的攻击性较小,而且通常比其他类型的加速器(包括gpu)运行得更冷。这对于长期维护成本很高的数据中心尤其重要。

拉祖尔说:“总拥有成本不仅仅是董事会的价格。“确保系统正常运行也是要付出代价的。”

Zebra也致力于使FPGA在性能上具有竞争力。Larzul说,虽然FPGA通常比其他加速器提供更少的top(每秒tera操作),但由于Zebra精心设计的计算引擎,它们能够更有效地使用这些top。

他们说的是,他们不是在用一个更大的芯片来加速芯片的速度,而是用一个更大的芯片来加速6倍于顶部的数量。

这是如何实现的?虽然Larzul没有给出确切的细节,但他确实表示,他们不依赖于剪枝,因为准确度的降低太大了,不经过再培训是无法接受的。出于同样的原因,它们不使用极端量化(低于8位)。

Zebra的引擎加速了CNN,而CNN目前主要用于图像和视频处理应用,但Zebra也可以应用于BERT(谷歌的自然语言处理模型),后者使用类似的数学概念。Zebra的未来迭代可能会覆盖其他类型的神经网络,包括LSTM(长短期记忆)和RNNs(递归神经网络),但这是很难实现的,因为rnn在数学上更加多样化。

Team from EVE

Mipsology成立于2015年,约有30人在法国从事研发工作,在加州有一个小团队主要负责业务开发。该公司已获得总额700万美元的资金,其中200万美元是2019年法国政府创新竞赛的奖金。

Mipsology的核心团队来自EVE——Synopsys于2012年收购的一家ASIC仿真器公司,该公司生产ZeBu(零缺陷)硬件辅助验证产品,当时是Cadence钯验证平台的竞争对手。据Larzul称,几乎所有主要的ASIC公司都使用EVE技术在设计周期内验证ASIC;这项技术依赖于连接在一起的数千个fpga来重现ASIC的行为。

Mipsology有12项专利正在申请中,与Xilinx密切合作,并兼容第三方加速卡,如Western Digital small-form factor(SFF U.2)卡和Advantech卡(如Vega-4001)。

软件工具将GPU代码迁移到fpga以用于AI应用的更多相关文章

  1. 谈谈IC、ASIC、SoC、MPU、MCU、CPU、GPU、DSP、FPGA、CPLD

    IC (integrated circuit) 集成电路:微电路.微芯片.芯片:集成电路又分成:模拟集成电路(线性电路).数字集成电路.数/模混合集成电路: 模拟集成电路:产生.放大.处理各种模拟信号 ...

  2. EF CodeFirs 代码迁移、数据迁移

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    标题叫EF CodeFirs 代码迁移.数据迁移. ...

  3. Python3中的新特性(3)——代码迁移与2to3

    1.将代码移植到Python2.6 建议任何要将代码移植到Python3的用户首先将代码移植到Python2.6.Python2.6不仅与Python2.5向后兼容,而且支持Python3中的部分新特 ...

  4. 将 Objective-C 代码迁移到 Swift(Swift 2.0更新)-b

    本节内容包括: 为你的Objective-c代码做好迁移准备 (Preparing Your Objective-C Code for Migration) 迁移过程(The Migration Pr ...

  5. ubuntu下lamp环境配置及将window代码迁移至linux系统

    因为最近要用需要去实现项目中的一个功能,比较好的做法就是在http://i.cnblogs.com/EditPosts.aspx?opt=1linux中实现.所以最近就将自己的代码全部迁移到linux ...

  6. 为什么你需要将代码迁移到ASP.NET Core 2.0?

    随着 .NET Core 2.0 的发布,.NET 开源跨平台迎来了新的时代.开发者们可以选择使用命令行.个人喜好的文本编辑器.Visual Studio 2017 15.3 和 Visual Stu ...

  7. 【重新发布,代码开源】FPGA设计千兆以太网MAC(1)——通过MDIO接口配置与检测PHY芯片

    原创博客,转载请注明出处:[重新发布,代码开源]FPGA设计千兆以太网MAC(1)——通过MDIO接口配置与检测PHY芯片 - 没落骑士 - 博客园 https://www.cnblogs.com/m ...

  8. GPU、CPU、FPGA

    一.计算核心增加 二者都由寄存器.控制器.逻辑单元构成,但比例很大不同,决定了CPU擅长指令处理,函数调用上:GPU在数据处理(算数运算/逻辑运算)强力很多. NIVIDA基于Maxwell构架的GP ...

  9. 记录项目代码迁移后,UI测试框架的搭建(配置文件的修改、测试脚本试运行)

    前文:记录一次项目代码迁移过程 上文代码迁移的目的就是为了新增vue脚手架自带的UI测试框架,工具有了,就需要实践运行在项目中了(修改配置文件.编写测试脚本等). 一.单元测试 测试框架 karma ...

随机推荐

  1. DexHunter的原理分析和使用说明(一)

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/53710357 Android通用脱壳工具DexHunter是2015年下半年,大牛 ...

  2. Android Hook框架adbi的分析(1)---注入工具hijack

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/74055505 一.Android Hook框架adbi的基本介绍 adbi是And ...

  3. MySQL UDF提权执行系统命令

    目录 UDF UDF提权步骤 UDF提权复现(php环境) UDF UDF (user defined function),即用户自定义函数.是通过添加新函数,对MySQL的功能进行扩充,其实就像使用 ...

  4. Linux提权之利用 /etc/passwd 文件

    当我们获得了某个Linux服务器的低权限之后,我们想要对该低权限账号进行提权,以执行更多的操作. 接下来我们的提权是利用 /etc/passwd 文件的可写入权限,导致我们写入一个其他用户进去. 首先 ...

  5. Windows PE 第一章 熟悉OD(顺便破解一个小工具)

    熟悉OD(顺便破解一个小工具) 上一节了解了OD的简单使用,这次就练习下,目标是破解一款小软件(入门练手用的,没有壳什么的). 首先我们来看一下这个小软件: 我们的目的是输入任何字符串都可以成功注册, ...

  6. Matlab学生账号创建激活使用

    软件介绍 MATLAB主要用于数值分析.数值和符号计算.工程与科学绘图.控制系统的设计与仿真.数字图像处理.数字信号处理.通讯系统设计与仿真.财务与金融工程,是一款商业数学软件.MATLAB拥有丰富的 ...

  7. Java线程的6种状态

    6种状态分别是: NEW.RUNNABLE.TERMINATED.WAITING.TIMED_WAITING.BLOCKED NEW:线程创建完毕 RUNNABLE:线程运行中,又分为READY + ...

  8. v-for详解

    v-for的引入 当我们需要对一组数据进行渲染时,我们就可以使用v-for来完成 v-for遍历数组 格式:v-for="(item, index) in items".(也许是因 ...

  9. 【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法

    Azure,  在2008年10月的Microsoft专业开发人员大会(PDC)上宣布,当时使用内部项目代号"Project Red Dog",并于2010年2月正式发布为Wind ...

  10. 如何通过在线CRM提升企业竞争力?

    随着信息技术的快速发展,在线CRM系统也得到了更加广泛的应用,已经在企业中逐渐开始普及.CRM系统对于优化企业流程有着十分重要的意义,它能够让企业的经营管理更加敏捷,并且可以快速地响应企业的业务流程. ...