软件工具将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. Android的so库注入

    作者:Fly2015 Android平台的so库的注入是有Linux平台的进程注入移植来的.由于Android系统的底层实现是基于Linux系统的源码修改而来,因此很多Linux下的应用可以移植到An ...

  2. hdu2276 矩阵构造

    题意:      给了n个灯泡的状态,他们绕成一个环,0是灭,1是亮,每一秒灯泡的状态都会改变,规则是如果当前这个灯泡的左边的灯泡当前是状态1,那么下一秒当前的这个灯泡状态就改变0变1,1变0,最后问 ...

  3. Windows下包管理工具Bower的安装和使用

    目录 安装Bower Bower的使用 安装Bower Windows下安装Bower之前,先安装好 nodejs 和 msysgit 环境 然后我们就可以使用npm包管理工具下载并全局安装bower ...

  4. Windows核心编程 第七章 线程的调度、优先级和亲缘性(上)

    第7章 线程的调度.优先级和亲缘性 抢占式操作系统必须使用某种算法来确定哪些线程应该在何时调度和运行多长时间.本章将要介绍Microsoft Windows 98和Windows 2000使用的一些算 ...

  5. [CTF]中那些脑洞大开的编码和加密

    [CTF]中那些脑洞大开的编码和加密 摘自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会 ...

  6. Sublime text3 的破解

    下载sublimeText3的安装包并安装(已经安装的可以忽略) 在hosts文件中添加:127.0.0.1 license.sublimehq.com(hosts文件地址:C:\Windows\Sy ...

  7. Win10安装Ubuntu子系统(WSL)

    一:设置子系统环境 关闭所有运行的程序,打开 控制面板→卸载程序→启用或关闭windows功能→勾选上适用于Linux的windows子系统 ,然后确定,完成会提示重启电脑,确定重启,等重启电脑后在操 ...

  8. MySQL 连接超时:报错SQLSTATE[HY000] [2002] Connection timed out解决

    当你的代码部署到服务器里的时候,你的mysql 的host 值 应该为 127.0.0.1 而不是 你的服务器ip 不然就会报错. 其实当你的代码进入到服务器里的时候,mysql和代码是相当于在同一个 ...

  9. 本地Markdown上传图片

    本地Markdown上传图片 1.上传本地markdown文件到博客园 使用工具pycnblog 下载:https://github.com/dongfanger/PyCnblog 查看READ ME ...

  10. MzzTxx——团队贡献分分配方案

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队贡献分分配规则制定 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉全栈 ...