提到自动驾驶,机器人视觉,高清摄像机,都要想到摄像头这个单元,先前本侠也讲过一些FPGA应用在高清摄像头和机器视觉中的深度摄像头以及双目摄像头等,FPGA在里面的作用主要是对采集的图像进行处理,对图像的处理需要硬件有着很好的并行的性能,那么它处理速度跟ARM的CPU比起来有没有优势呢?本侠今天就带领各位一起来探索一下FPGA在边缘计算方面的应用。

提起计算速度,我们首先能想到的是云计算。云计算有数不清的好处,例如计算快,计算数据的量大,等等。但智者千虑必有一失,没有云计算的厂家能够保证他能做任何的事情,云计算也有自己的不足之处,最大的不足就是计算的实时性不够高。例如,在你把一些数据送到云端去进行处理的时候总会有一些延迟,最难熬的莫过于等结果的时间。边缘计算需要很高的计算性能,而且有着很高的实时性,FPGA能够同时并行处理很多的事情,既能满足数据处理速度的要求,还能满足实时性的需求,可谓是两全其美。今年在加利福尼亚的圣塔拉拉举行的嵌入式视觉峰会上展示了基于Aldec的TySOM-2-7Z100原型板的4摄像头ADAS模型,如图.1所示。TySOM的性能很好,主要是因为里面的核心的运算处理部件是Xilinx Zynq Z-7100的SoC。

图.1 TySOM-2-7Z100原型板

如图.2可以看到Zynq在TySOM板子中的位置,为什么Zynq中的FPGA能够在边缘计算方面得到这么好的应用呢?Zynq-7000可编程SoC将软件可编程的ARM处理器和硬件可编程的FPGA放到了一个芯片中,能够实现数字分析的同时还能够实现硬件加速,里面集成了CPU,DSP,ASSP和混合信号处理模块。图像处理所用的就是Zynq里面的FPGA模块。那么ARM核心在TySOM办卡中能够起到什么作用呢?

Aldec的TySOM-2-7Z100原型板的良好的性能依赖于Zynq里面有着双核的ARM Cortex-A9处理器和一个FPGA逻辑。整个图像处理的过程是先从摄像头采集图像开始,使用一个边缘检测算法(这里的边缘指的是对物理边缘的感知,例如物体或者是巷子的边界线等)。这是一个计算密集的任务,因为有上百万的像素需要经过计算。采集到的图像如果是在ARM CPU中进行处理的话每秒钟只能处理3张的图像,然而在FPGA中每秒可以处理27.5张的图像,可见在Zynq中FPGA有着举足轻重的作用。也就是说,有了FPGA图像的处理速度有了将近10倍的速度的提升。

图.2 TySOM-2-7Z100板的正面图

有了高性能的核心处理芯片还不够,还需要神通广大的外设接口来跟其他的设备进行交互。TySOM的设计能够兼容多达362个I/O的外设接口、16个GTX收发器、两个FMC-HPC可以支持扩展子卡的连接口。ARM CPU处理数据的时候需要的基本的标准接口例如DDR3 RAM,USB和HDMI;ARM核心还能够支持Linux的操作系统和其他一些类型的实时操作系统。不仅如此,ARM的CPU有着1GB的DDR3 RAM能够让其进行支配,可以支持扩展32GB的SSD存储空间。网络的交互可以通过RJ45接口经过Gigabit Ethernet PHY来实现,还配备了4个USB 2.0的接口。大多数的FPGA的接口都通过两个FMC-HPC sockets接口来实现跟其他设备的交互。这样,ARM核心和FPGA模块都能够和外界进行信息的交互。

自动驾驶正在如火如荼的进行中,随着国家政策对自动驾驶的慢慢的认可,相信对技术来讲是一件好事,无论是硬件还是算法都会有自己的用武之地,在智慧城市,智慧生活的大环境下,FPGA的发展也会随着潮流稳步的向前推进,更好的去拥抱改变,创造改变的机会。

ZYNQ7000性能分析的更多相关文章

  1. 如何进行python性能分析?

    在分析python代码性能瓶颈,但又不想修改源代码的时候,ipython shell以及第三方库提供了很多扩展工具,可以不用在代码里面加上统计性能的装饰器,也能很方便直观的分析代码性能.下面以我自己实 ...

  2. SQL Server-聚焦IN VS EXISTS VS JOIN性能分析(十九)

    前言 本节我们开始讲讲这一系列性能比较的终极篇IN VS EXISTS VS JOIN的性能分析,前面系列有人一直在说场景不够,这里我们结合查询索引列.非索引列.查询小表.查询大表来综合分析,简短的内 ...

  3. SQL Server-聚焦NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL性能分析(十八)

    前言 本节我们来综合比较NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL的性能,简短的内容,深入的理解,Always to review the basics. ...

  4. SQL Server-聚焦LEFT JOIN...IS NULL AND NOT EXISTS性能分析(十七)

    前言 本节我们来分析LEFT JOIN和NOT EXISTS,简短的内容,深入的理解,Always to review the basics. LEFT JOIN...IS NULL和NOT EXIS ...

  5. SQL Server-聚焦EXISTS AND IN性能分析(十六)

    前言 前面我们学习了NOT EXISTS和NOT IN的比较,当然少不了EXISTS和IN的比较,所以本节我们来学习EXISTS和IN的比较,简短的内容,深入的理解,Always to review ...

  6. SQL Server-聚焦NOT EXISTS AND NOT IN性能分析(十五)

    前言 上一节我们分析了INNER JOIN和IN,对于不同场景其性能是不一样的,本节我们接着分析NOT EXISTS和NOT IN,简短的内容,深入的理解,Always to review the b ...

  7. SQL Server-聚焦INNER JOIN AND IN性能分析(十四)

    前言 本节我们来讲讲联接综合知识,我们在大多教程或理论书上都在讲用哪好,哪个性能不如哪个的性能,但是真正讲到问题的实质却不是太多,所以才有了本系列每一篇的篇幅不是太多,但是肯定是我用心去查找许多资料而 ...

  8. Java 性能分析工具 , 第 3 部分: Java Mission Control

    引言 本文为 Java 性能分析工具系列文章第三篇,这里将介绍如何使用 Java 任务控制器 Java Mission Control 深入分析 Java 应用程序的性能,为程序开发人员在使用 Jav ...

  9. Java 性能分析工具 , 第 2 部分:Java 内置监控工具

    引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...

随机推荐

  1. 图像处理pillow模块

    pillow模块: -->基本的图像处理模块 Pip install pillow from PIL import Image #1.读取图片 im = Image.open('/test.jp ...

  2. 几句话总结一个算法之Q-Learning与Sarsa

    与Policy Gradients的不同之处在于,这两个算法评估某个状态s执行某个动作a的期望奖励,即Q(s,a) Q(s,a) 有两种方法计算方法,第一种直接查表或者模型预估,Q(s, a) = c ...

  3. 《BLACK HAT PYTHON3》

    Black Hat Python3 kali 安装新版本python kali中自带的pyhton是2.7版本,显然2019年了,python2.x的版本已经逐渐过时,好多第三方库都逐步宣布不再支持p ...

  4. 【技术博客】Django中文件下载的实现

    开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. Django中文件下载的实现 1.背景 在VisualPy ...

  5. k8s安装dashboard

       1.Kubernetes Dashboard 是 k8s集群的⼀个 WEB UI管理⼯具,代码托管在 github 上,地址: https://github.com/kubernetes/das ...

  6. [.Net,C#]三类资源:流对象Stream,字节数组byte[],图片Image

    三类资源:流对象Stream,字节数组byte[],图片Image 关系:Stream<=>byte[],byte[]<=>Image Stream 与Image相互转化的媒介 ...

  7. Ladon内网渗透扫描器PowerShell版

    程序简介 Ladon一款用于大型网络渗透的多线程插件化综合扫描神器,含端口扫描.服务识别.网络资产.密码爆破.高危漏洞检测以及一键GetShell,支持批量A段/B段/C段以及跨网段扫描,支持URL. ...

  8. C语言 宏定义的1<<0 与 直接定义1 有什么区别

    [1]示例程序 如下示例代码: #include <stdio.h> #define TEST1 1 << 0 #define TEST2 (1 << 0) #de ...

  9. Docker-Compose通过文件声明默认的环境变量

    写文目的 在写本文之前,我在做一个docker-compose项目,这里需要在docker-compose.yml配置中引用到宿主机的ip,然而docker-compose并没有命令行一个输入的选项, ...

  10. Python变量问题:命名、类型、赋值

    1.变量问题 1.1变量命名: (1)变量名只能包含字母.数字和下划线.变量名可以字母或下划线开头,但不能以数字开头.例如,name1_,_name1都是合法的,但1name就不行(2)变量名中间不能 ...