关注、星标公众号,直达精彩内容
来源:公众号【ZYNQ】
ID :FreeZynq
整理:Watchman
看到一个问题:最近做zynq方向,zynq的arm核处理不过来数据,感觉不适合做人工智能,适合做控制的东西。是不是我的想法不对,希望大佬来指导一下?
zynq应用方面
如果Zynq说的是7000系列,FPGA部分(PL)资源不多,那确实不适合做人工智能。
所以你的第一个判断我是赞同的, 但是第二个判断感觉过于悲观。
图像方面
虽然性价比不高,但资源足够进行一些图像图像方面的简单处理,或者某些算法的加速。
![e382dc4a6329e227a676ad21008bad90.png](https://i-blog.csdnimg.cn/blog_migrate/418593bd67d456598c13b8ae195af457.jpeg)
对于Zynq的ARM核(PS)来说,这些加速可以极大的减轻PS的计算负担,使得本来很弱的ARM核可以进行稍微复杂的计算了。
定制化方面
那么Zynq实际上是可以用来进行一些定制化的开发的,特别是在没有硬件加速的情况下,在规定的功耗和体积下,做出来一些demo或者小规模量产的硬件。
所以在性价比没有要求的场合,Zynq是可以做很多有趣的工作的,而不仅仅是控制。
![79beff6a09621a16db6c3dcbf79b55ad.png](https://i-blog.csdnimg.cn/blog_migrate/15a1bee6449991c13116c67d3fafac1f.jpeg)
人工智能方面
但是广义的Zynq还包括Zynq UltraScale+ MPSoC,这系列的FPGA部分(PL)的资源就比较多了,已经足够去进行一下人工智能方面的应用。
甚至可以用高层综合在不涉及HDL的情况下就完成这部分的工作。具有一定的可用性。
专用设备领域
在专用设备领域会有应用,例如大型光通信设备的核心主控。我们公司从单arm转型到zynq7000有三四年了吧,主要使用010 020 030,Ultra还在研究,MP以后可能也会上。
项目上使用zynq主要做控制,其次做路由算法,数据分析。zynq比较好用的地方是可以拓展硬件资源,PL出个网口、SPI、I2C一类的很方便,做主控基本上不会担心资源不够的问题。
数据分析方面
数据分析还没有做过,从路由算法方面讲,zynq的性能大概是普通i5主机的十几分之一左右吧。
用python写的算法在主机上Anaconda环境上跑测试大概10s的话,在zynq的linux下要一百多秒(大概数据,当时测试过记不清了)。
Zynq确实太贵了,不过专用设备不会量产,贵点也能接受吧。
zynq存在的一些问题
核心问题-性价比低
Zynq的核心问题个人认为主要是性价比不高,Zynq太贵了,在大多数嵌入式领域,除非是小批量的定制化产品,价格是十分敏感的,因此这会严重限制Zynq的应用范围。
比如最常用的7020的价格就明显高于带dsp核心的ARM,这让PL提供的加速能力变得性价比很低,更何况DSP的开发难度远远低于HDL。
**那么如果实时性能满足的情况下,能用DSP加速,为什么还用PL?**
而资源较多的UltraScale+ MPSoC系列这个问题更加严重,价格高的是在是离谱了,特别是现在大量NPU,TPU之类的产品上市后,用UltraScale+ MPSoC做人工智能相关产品的意义就更低了,成本高的过了头,很难找到可用的场合和市场。
次要问题-开发难度大
Zynq的次要问题,开发的难度是在是有点太大了,对于小公司员工不多的情况下,如果不分工,Zynq的开发绝对需要很长时间的学习和经验积累才能胜任,需要了解的东西是在是太多,软件硬件都需要。
就一个AXI就已经能让人抓狂了,PS,PL的开发迥异,复杂的内存管理,时序优化很多情况下还要考虑操作系统之类的问题,这真的难度是太大了。
对于大公司而言,分工是可行的,但协作仍然很麻烦,特别是调试的代价很大。
其他-资源方面
而高层综合(HLS)看起来很好,但资源利用率较低,开发难度仍然很大(不是能跑通就能用)入门快,但真正能掌握产品化技能还是很难的。
至于OpenCL之类的, 暂时还只能算旁门左道,性价比严重有问题。
很多情况下会让昂贵的UltraScale+ MPSoC只能Zynq 7000,因为资源浪费是在太大了。
总结
Xilinx 作为FPGA厂家推出Zynq系列方向是对的,但是他确没有解决核心的性价比问题。所以Zynq一直都是不温不火。
什么时候解决了性价比问题。Zynq才能真的普及开。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ 推荐阅读: ZYNQ 学习专辑