FPGA知识汇集-GPGPU与FPGA

news2024/11/29 5:37:29

       虽然FPGA的功能很强大,但是并非所有的设计都会使用到这样的芯片。很多系统架构师在开始的时候会斟酌到底是使用FPGA还是其他的代替方案,例如GPGPU(通用的图形处理单元)。

       由于GPGPU特有的架构和处理能力,在很多现代的设计中越来越受欢迎。从金融业的微分方程求解,到MATLAB这样的专业仿真工具加速,以及高分辨率的医疗影像系统中,都能够找到GPGPU的身影。在NVIDIA的CUDA社区中,工程师利用CUDA GPGPU平台,开发了超过1500个应用。现在基于GPGPU芯片的应用逐渐做的风生水起,就连Amazon的网页服务器(AWS)也开始利用GPGPU来支撑其云计算能力。

       FPGA和GPGPU都能够处理各种高性能应用,事实上也很难预测到底谁能够替代谁,因为这和具体应用有关。计算密集型的软件应用程序常常选择GPGPU作为性能加速器,而PCIe总线是GPGPU板卡和主机相连接的唯一接口。GPGPU的片上内存或者板载存储空间也都较小。相对而言,FPGA的应用要广泛很多。除了作为软件应用程序的加速器之外,理论上它可以作为任何硬件接口,这得益于FPGA可完全自由分配的引脚。但FPGA唯一的不足就是价格比GPGPU昂贵。  

       鉴于上述的各种因素,系统架构师往往要考虑诸如接口总线、处理性能、处理延迟、系统成本等因素,才能够决定到底是使用FPGA还是GPGPU方案。

芯片接口

       最新的所有GPGPU板卡都是通过PCIE接口和主机通信,GPGPU板卡上PCIE的最高配置为Gen4×16,能够提供6.4GBps的有效载荷处理能力。这样的硬件配置对于大部分视频处理和需要GPGPU加速的应用来说已经足够了。当然对于少部分需要超高吞吐率的应用例外,比如多路网络处理应用常常就是高端FPGA的天下。

       FPGA的另外一个优势就是高度可自由配置的引脚。这些成百上千的引脚可以灵活地支持几乎任何的配置:从低端通用双向引脚(GPIO)到高速串行器/解串器(SerDes)等。

处理性能

       吞吐率或者处理性能,通常高度依赖于具体的应用。之所以FPGA和GPGPU能够从占据高性能计算的市场,其秘密就在于内部的并行架构。GPGPU擅长于执行单指令多数据(SIMD)这样的操作,而这刚好是数字信号处理、图像处理和视频处理中最常见的操作。但是对于需要复杂的控制流、大存储空间这样的应用,GPGPU的高性能将会大打折扣。FPGA和GPGPU很相似,也适合计算密集型的高性能处理。

处理延迟

       FPGA的并行处理架构所带来的低延迟特性特别适合于实时信号处理,这种应用的响应时间一般要求小于1ms甚至更低。常年的实时信号处理应用有:计算高速信号链路上的TCP/IP校验和(千兆以太网、万兆以太网,甚至更高)。快速加解密系统,或者实时武器系统。

       由于芯片架构的限制,GPGPU的处理延迟要比FPGA大的多。其他的一些限制来源于连接GPGPU板卡和主机的PCIE接口延迟,以及存在于GPGPU板卡和主机的内存访问延迟。

价格

       单芯片的价格一直是难以逃脱的话题,特别是在FPGA和GPGPU的比较过程中,但实际上这是个误区。系统中高端FPGA芯片动辄几千美金的价格确实很高,但实际上整个系统的开发成本并不是简单的由FPGA芯片来决定,应用程序的开发时间实际上占用了很大一部分,特别是再GPGPU芯片中部署一些复杂而高性能的设计时,更加需要专业的技能和长期的经验,而寻找能够同时胜任FPGA和GPGPU方面的人才几乎难以企及。

       因此简单地利用芯片价格去计算整个项目地开发成本是非常不准确的。也许最好也是最有效的评估方式就是采用原型验证,简单来说就是将原来在 GPGPU上运行的程序移植到FPGA上运行,或者将FPGA上运行的程序移植到GPGPU上运行。

关于FPGA得选型过程,关注公众号会有详细介绍。

国产化FPGA开发板-国产化复旦微电子 FMQL45T900 FPGA开发板

请关注链接:

国产化复旦微电子 FMQL45T900 FPGA开发板( 替代Xilinx ZYNQ ARM+FPGA 7045开发板)

更多有趣的话题请看链接:

FPGA知识汇集-FPGA项目开发包含那些任务?

FPGA知识汇集--FPGA结构(1)

FPGA的应用

FPGA知识汇集-在命令行模式下使用Xilinx工具

FPGA知识汇集-ISE的这些有用的工具您知道吗?

FPGA知识汇集-FPGA设计开发需要熟悉哪些EDA工具呢?

FPGA知识汇集-值得收藏的FPGA代码命名规范?

FPGA 知识汇集--Linux下ISE的环境变量设置

FPGA知识汇集-值得收藏的Verilog代码风格1

FPGA知识汇集-值得收藏的Verilog代码风格2

FPGA知识汇集-编写可综合代码(RTL)需要注意的规则总结

FPGA知识汇集-Verilog和VHDL的混合使用

FPGA知识汇集-关于Xilinx 工具报告

FPGA知识汇集-例化与推译

硬件仿真加速器与原型验证平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot+VUE前后端分离项目学习笔记 - 【20 权限菜单 上】

数据库 新建sys_role角色表 与sys_menu菜单表 CREATE TABLE sys_role (id int NOT NULL AUTO_INCREMENT COMMENT id,name varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 名称,description varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 描述…

【C++】list模拟实现

看源码观察结构 由源码可以得知,list的底层是带头双向循环链表 — 结点类模拟实现 list实际上是一个带头双向循环链表,要实现list,则首先需要实现一个结点类,而一个结点需要存储的信息为:数据、前驱指针、后继指针 而对于该结点类的成员函数来说,我们只需实现一个构造函数即…

Linux磁盘根目录扩容

Linux磁盘根目录扩容 1.输入命令:df -hl 红色框标记的呢就是服务器的主目录,我们能看到总容量17G ,已使用2.1G 可用15G 我们要扩张磁盘空间的就是挂载点为:/ (的这个) 2.查询磁盘分区 命令:fdisk -l 我们找到/dev/sdb 这个磁盘名称就是…

Linux常用命令——nethogs命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) nethogs 终端下的网络流量监控工具 补充说明 有很多适用于Linux系统的开源网络监视工具。比如说,你可以用命令iftop来检查带宽使用情况。netstat用来查看接口统计报告,还有top监控系统当…

CMake快速入门

介绍 之前讲的Makefile的配置跟你当前的系统非常强的相关,例如在Linux或苹果下配置完Makefile,放到Windows下就会有问题,因为编译器会不同、路径会不同等。 如果要做跨平台的软件,要给不同的操作系统,不同的编译环境…

靶机测试Connect-the-dots笔记

靶机描述DescriptionBack to the TopLevel: Beginner-IntermediateUser flag: user.txtRoot flag: root.txtDescription: The machine is VirtualBox compatible but can be used in VMWare as well (not tested but it should work). The DHCP will assign an IP automaticall…

一款兼容双系统、为代码而生的机械键盘--Keychron K3

🔥前言 从去年的9月份记得就有小伙伴发私信问我有没有值得推荐的键盘,前段时间又有几个小伙伴在发私信询问。于是我写下这篇文章去给大家推荐一款十分好用的矮轴机械键盘 > keychron K3蓝牙无线矮轴超薄机械键盘,从而让大家更好的去敲代码&#xff0c…

【PWA学习】4. 使用 Push API 实现消息推送

引言 在接下来的内容里,我们会探究 PWA 中的另一个重要功能——消息推送与提醒(Push & Notification)。这个能力让我们可以从服务端向用户推送各类消息并引导用户触发相应交互 Web Push 效果Push API 和 Notification API 其实是两个独立的技术,完全…

很好用的URL工具类

📢 📢 📢 📣 📣 📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步 🤝 🤝一位上进心十足的【Java ToB端…

【C++】deque双端队列

目录deque的原理介绍deque的优点和缺陷deque的原理介绍 1.deque(双端队列):是一种双开口的“连续”空间的数据结构,双开口的含义是:在头尾两端都可以进行插入和删除操作,且时间复杂度为O(1)。 需要注意的是deque并不是真正连续的…

制作一个微信小程序步骤_分享个人微信小程序开发步骤

微信小程序的功能不断提高,以及用户对小程序的使用的增加,使得新一批的流量融入小程序中,越开越多的企业开始开发小程序,想要从中分一碗羹,今天内容就从如何制作一个微信小程序说起,希望对你有帮助。微信小…

Vue鼠标移入移出事件(冒泡问题)

一、定义1、mouseenter:在鼠标光标从元素外部首次移动到元素范围之内时触发,这个事件不冒泡。2、mouseleave:在位于元素上方的鼠标光标移动到元素范围之外时触发,这个事件不冒泡。3、mouseover:在鼠标指针位于一个元素…

Flink学习31:Table API SQL之注册表

table API tableAPI & flink SQL flink SQL是最上层的封装,封装了流处理的DataStream API 和 批处理的DataSet API。 但是DataStream API 、DataSet API、table API、flink SQL 这几层并没有分到不同层中,所以应用程序可以同时使用这几层。 Table A…

合合信息——用智能文字识别技术赋能古彝文原籍数字化

文章目录1. 背景介绍:古彝文是什么?为什么要保护它?如何保护它?2. 传统方法保护古彝文:原籍难获、翻译困难2.1. 古彝文原籍的破损与古法保存2.2 古彝文原籍的保护与翻译2.2.1 获取古彝文原籍2.2.2 修复古彝文原籍2.2.3…

ansible作业一

配置ansible学习环境实现以下要求 1.控制主机和受控主机通过root用户通过免密验证方式远程控住受控主机实施对应(普通命令,特权命令)任务 2.控制主机连接受控主机通过普通用户以免密验证远程控住受控主机实施指定(普通命令&#x…

Makefile快速入门

介绍 这里以一个例子来演示利用Makfile进行多文件编译 一共有四个源程序&#xff1a;main.cpp&#xff0c;printhello.cpp&#xff0c;factorial.cpp&#xff0c;functions.h 首先是main.cpp内容 #include<iostream> #include"functionals.h"using namespa…

Apache与Nginx虚拟机的三种访问+非简单请求+跨域知识点整理

Apache 在D:\project\web\index.html中写入 <h1>welcome useing apache!</h1>基于ip访问 打开phpstudy_pro\Extensions\Apache2.4.39\conf\extra\httpd-vhosts.conf写入 <VirtualHost 192.168.1.4:80>ServerAdmin 88888888163.com #管理员邮箱DocumentRoo…

【BP靶场portswigger-服务端7】访问控制漏洞和权限提升-11个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

【手写 Vue2.x 源码】第十五篇 - 生成 ast 语法树 - 构造树形结构

一&#xff0c;前言 上篇&#xff0c;主要介绍了生成 ast 语法树 - 模板解析部分 使用正则对 html 模板进行解析和处理&#xff0c;匹配到模板中的标签和属性 本篇&#xff0c;生成 ast 语法树 - 构造树形结构 二&#xff0c;构建树形结构 1&#xff0c;需要描述什么 前面…

文本相似度

传统方法 基于TF-IDF、BM25、Jaccord、SimHash、LDA等算法抽取两个文本的词汇、主题等层面的特征&#xff0c;然后使用机器学习模型&#xff08;LR, xgboost&#xff09;训练分类模型优点&#xff1a;可解释性较好缺点&#xff1a;依赖人工寻找特征&#xff0c;泛化能力一般&a…