为什么 FPGA 比 CPU 和 GPU 快?

FPGA、GPU 与 CPU——AI 应用的硬件选择

现场可编程门阵列 (FPGA) 为人工智能 (AI) 应用带来许多优势。图形处理单元 (GPU) 和传统中央处理单元 (CPU) 相比如何?

人工智能(AI)一词是指能够以类似于人类的方式做出决策的非人类机器智能。这包括判断能力、沉思能力、适应能力和意图能力。

研究公司Statista预测,到2025年,全球人工智能市场将达到1260亿美元。到2030年,人工智能将占中国GDP的26.1%、北美GDP的14.5%和阿联酋GDP的13.6%。

整个人工智能市场包括广泛的应用,包括自然语言处理(NLP)、机器人过程自动化、机器学习和机器视觉。人工智能正在许多垂直行业迅速得到采用,并正在创造下一个伟大的技术变革,就像个人电脑和智能手机的出现一样。
在这里插入图片描述

人工智能 (AI) 及其术语的起源可以归功于研究人员 Allen Newell、Cliff Shaw 和 Herbert Simon 在 1956 年创建的逻辑理论家程序。逻辑理论家程序旨在模拟人类解决问题的能力,由研究与开发(兰德)公司资助。逻辑理论家被认为是第一个人工智能项目,于 1956 年在新罕布什尔州达特茅斯学院的达特茅斯夏季人工智能研究项目 (DSRPAI) 上提出。

虽然人工智能主要依赖于模仿人类思维的编程算法,但硬件也是同样重要的一部分。用于人工智能操作的三种主要硬件解决方案是现场可编程门阵列(FPGA)、图形处理单元(GPU)和中央处理单元(CPU)。
每个选项都有自己的优势,但也有一些局限性,我们将进一步探讨。

FPGA

现场可编程门阵列 (FPGA) 是具有可编程硬件结构的集成电路类型。这与图形处理单元 (GPU) 和中央处理单元 (CPU) 的不同之处在于 FPGA 处理器内部的功能电路不是硬蚀刻的。这使得 FPGA 处理器能够根据需要进行编程和更新。这也使设计人员能够从头开始构建神经网络并构建 FPGA,以最好地满足他们的需求。

FPGA 的可重新编程、可重新配置架构为不断变化的人工智能领域提供了关键优势,使设计人员能够快速测试新的和更新的算法。无需开发和发布新硬件,这在加快上市时间和节省成本方面提供了强大的竞争优势。
FPGA 集速度、可编程性和灵活性于一身,可通过降低专用集成电路 (ASIC) 开发中固有的成本和复杂性来提高性能效率。

FPGA 提供的主要优势包括:
卓越的性能和减少延迟的优势:FPGA 提供低延迟和确定性延迟 (DL)。深度学习作为模型将从初始状态或给定的起始条件连续产生相同的输出。 DL 提供已知的响应时间,这对于许多具有硬期限的应用程序至关重要。这使得语音识别、视频流和动作识别等实时应用程序的执行速度更快。
成本效益:FPGA 在制造后可以针对不同的数据类型和功能进行重新编程,与用新硬件替换应用程序相比,它具有真正的价值。通过将图像处理管道等附加功能集成到同一芯片上,设计人员可以将 FPGA 不仅仅用于人工智能,从而降低成本并节省电路板空间。 FPGA 较长的产品生命周期可以为应用提供更高的实用性,可以在几年甚至几十年内测量。这一特性使其成为工业、航空航天、国防、医疗和运输市场的理想选择。
能源效率:FPGA 使设计人员能够微调硬件以满足应用需求。利用 INT8 量化等开发工具是优化 TensorFlow 和 PyTorch 等机器学习框架的成功方法。 INT8 量化还为 NVIDIA® TensorRT 和 Xilinx® DNNDK 等硬件工具链带来了良好的结果。这是因为 INT8 使用 8 位整数而不是浮点数,并且使用整数数学而不是浮点数学。正确利用 INT8 可以降低内存和计算需求,从而将内存和带宽使用量减少多达 75%。事实证明,这对于满足要求苛刻的应用中的能效要求至关重要。
FPGA 可以并行承载多种功能,甚至可以为特定功能分配芯片的各个部分,从而大大提高操作和能源效率。 FPGA 独特的架构将少量分布式内存放入结构中,使其更接近处理。与 GPU 设计相比,这可以减少延迟,更重要的是可以降低功耗。

GPU

图形处理单元 (GPU) 最初开发用于生成计算机图形、虚拟现实训练环境和视频,依赖于高级计算和浮点功能来绘制几何对象、照明和颜色深度。为了让人工智能取得成功,需要大量数据进行分析和学习。这需要强大的计算能力来执行人工智能算法并转移大量数据。 GPU 可以执行这些操作,因为它们是专门为快速处理渲染视频和图形时使用的大量数据而设计的。它们强大的计算能力使其在机器学习和人工智能应用中广受欢迎。

GPU 非常适合并行处理,即并行计算大量算术运算。这为具有快速连续重复执行的重复工作负载的应用程序提供了可观的加速。 GPU 的定价可以根据具有竞争力的解决方案进行定价,平均显卡的生命周期为五年。
GPU 上的人工智能确实有其局限性。 GPU 通常无法提供与 ASIC 设计一样多的性能,其中微芯片是专门为人工智能应用而设计的。 GPU 提供大量计算能力,但代价是能源效率和热量。热量可能会给应用程序带来耐久性问题,损害性能并限制操作环境的类型。更新AI算法和添加新功能的能力也不是FPGA处理器可比的。

中央处理器
中央处理器 (CPU) 是许多设备中使用的标准处理器。与 FPGA 和 GPU 相比,CPU 的架构具有有限数量的针对顺序串行处理进行优化的内核。 Arm® 处理器可能是一个例外,因为它们强大地实现了单指令多数据 (SIMD) 架构,允许在多个数据点上同时运行,但其性能仍然无法与 GPU 或 FPGA 相比。
有限的内核数量降低了 CPU 处理器并行处理正确运行 AI 算法所需的大量数据的效率。 FPGA 和 GPU 的架构设计具有快速同时处理多个任务所需的密集并行处理能力。 FPGA 和 GPU 处理器执行 AI 算法的速度比 CPU 快得多。这意味着人工智能应用程序或神经网络在 FPGA 或 GPU 上的学习和反应速度比 CPU 快几倍。
CPU 确实提供了一些初始定价优势。当使用有限的数据集训练小型神经网络时,可以使用 CPU,但代价是时间。基于 CPU 的系统比基于 FPGA 或 GPU 的系统运行速度慢得多。基于 CPU 的应用程序的另一个好处是功耗。与 GPU 配置相比,CPU 将提供更好的能效。

微型机器学习 (TinyML)

TinyML 被视为人工智能发展的下一个进化阶段,正在经历强劲的增长。在 FPGA、GPU 和 CPU 处理器上运行的人工智能应用程序非常强大,但它们不能用于手机、无人机和可穿戴应用程序等所有环境。
随着互联设备的广泛采用,需要进行本地数据分析,以减少对云的依赖以实现完整的功能。 TinyML 可在微控制器上运行的边缘设备上实现低延迟、低功耗和低带宽推理模型。
消费级 CPU 的平均功耗为 65 至 85 瓦,而 GPU 的平均功耗为 200 至 500 瓦。相比之下,典型的微控制器消耗的功率为毫瓦或微瓦数量级,这比功耗低一千倍。这种能源效率使 TinyML 设备能够依靠电池供电运行数周、数月甚至数年,同时在边缘运行 ML 应用程序。
TinyML 支持 TensorFlow Lite、uTensor 和 Arm 的 CMSIS-NN 等框架,将人工智能和小型互联设备结合在一起。

TinyML 的优势包括:
能源效率:微控制器消耗的电量非常少,这为远程安装和移动设备带来了好处。
低延迟:通过在边缘本地处理数据,数据不需要传输到云端进行推理。这大大减少了设备延迟。
隐私:数据可以存储在本地,而不是存储在云服务器上。
减少带宽:随着推理对云的依赖减少,带宽问题也被最小化。
使用 MCU 的 TinyML 的未来对于小型边缘设备和 FPGA、GPU 或 CPU 不可行的普通应用程序来说是有希望的。

要点

AI 的三种主要硬件选择是:FPGA、GPU 和 CPU。在速度和反应时间至关重要的人工智能应用中,FPGA 和 GPU 在学习和反应时间方面具有优势。虽然 GPU 能够处理人工智能和神经网络所需的大量数据,但其缺点包括能源效率、热考虑因素(热量)、耐用性以及使用新功能和人工智能算法更新应用程序的能力。 FPGA 在人工智能应用和神经网络中具有关键优势。其中包括能源效率、实用性、耐用性以及轻松更新人工智能算法的能力。

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

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

相关文章

k8s 进阶实战笔记 | Pod 创建过程详解

Pod 创建过程详解 ​ 初始状态0 controller-manager、scheduler、kubelet组件通过 list-watch 机制与 api-server 通信并检查资源变化 第一步 用户通过 CLI 或者 WEB 端等方式向 api-server 发送创建资源的请求(比如:我要创建一个replicaset资源&…

多表查询练习题

student表: score表: 向student表插入记录: 向score表插入记录: 1.查询student表的所有记录 SELECT * FROM student;2.查询student表的第2条到4条记录 SELECT * FROM student LIMIT 1,3;3.从student表查询所有学生的学号(id)、姓名(name&…

【复现】Laykefu客服系统后台漏洞合集_29

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 2. 漏洞二: 3. 漏洞三: 4. 漏洞四: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 Laykefu客服系统是thinkphp5Gatewayworker搭建的web客服…

【Linux】:线程安全的单例模式

线程安全的单例模式 一.STL和智能指针的安全二.单例模式1.基本概念2.懒汉和饿汉的实现方式 三.常见的其它锁四.读者写者模型 一.STL和智能指针的安全 1.STL中的容器是否是线程安全的? 不是. 原因是, STL 的设计初衷是将性能挖掘到极致, 而一旦涉及到加锁保证线程安全, 会对性…

router4j--SpringCloud动态路由利器

前言 本文介绍Java的动态路由中间件:router4j。router4j用于SpringCloud项目,它可以将某个url请求路由到指定的机器上,也可以将所有请求强制转到指定机器。 问题描述 Java后端在开发SpringCloud项目时如果同一个应用起了多个实例&#xff…

【K12】tk窗口+plt图像功能-学习物理中的串并联研究【附源码说明】

程序源码 import tkinter as tk import matplotlib.pyplot as plt# 初始化 matplotlib 的字体设置 plt.rcParams[font.family] SimHei# 计算串联电路的函数 def calculate_series():try:# 获取用户输入的电阻值并转换为浮点数r1 float(entry_r1.get())r2 float(entry_r2.ge…

第二篇:数据结构与算法-链表

概念 链表是线性表的链式存储方式,逻辑上相邻的数据在计算机内的存储位置不必须相邻, 可以给每个元素附加一个指针域,指向下一个元素的存储位 置。 每个结点包含两个域:数据域和指针域,指针域存储下一个结点的地址&…

C/C++ 跨文件共享全局变量

目录 效果 项目 代码 下载 为了实现跨文件共享全局变量,我们可以使用 extern 关键字。extern 关键字用于声明一个变量,该变量在其他地方已经定义。它告诉编译器这个变量在其他文件中已经定义了,不需要重新分配内存空间,只需要…

C语言-指针的基本知识(上)

一、关于内存 存储器:存储数据器件 外存 外存又叫外部存储器,长期存放数据,掉电不丢失数据 常见的外存设备:硬盘、flash、rom、u盘、光盘、磁带 内存 内存又叫内部存储器,暂时存放数据,掉电数据…

蓝桥杯-sort排序(上)

sort排序 🎈1.算法说明🎈2.例题🔭2.1例题一🔭2.2例题二🔭2.3例题三🔭2.4例题四🔭2.5例题五🔭2.6例题六 🎈1.算法说明 🔎对于一个数组,通过对数组中…

Spring Security 存储密码之 JDBC

Spring Security的JdbcDaoImpl实现了UserDetailsService接口,通过使用JDBC提供支持基于用户名和密码的身份验证。 JdbcUserDetailsManager扩展了JdbcDaoImpl,通过UserDetailsManager接口提供UserDetails的管理功能。 当Spring Security配置为接受用户名/密码进行身份验证时,…

南卡Neo2评测:实力诠释骨传导耳机全能旗舰,细节展现匠心之作

前段时间朋友让我帮他寻找一款佩戴舒适、音质体验好的蓝牙耳机,因为比较忙所以一直把这件事搁置了,刚好这两天比较闲,所以也是在综合个人的经验和目前较为热门的一些品牌款式,决定帮他寻找一款骨传导耳机,因为骨传导耳…

JVM-字节码应用

一、字节码的应用远超你的想象 二、ASM介绍与读取字节码实战 用CoreAPI解析和TreeAPI都能做字节码解析,区别,TreeAPI必须读取完整字节码信息,才能做解析。 下面代码,使用CoreAPI做解析: package asm;public class MyM…

[已解决]504 Gateway Time-out 网关超时

文章目录 问题:504 Gateway Time-out 504 Gateway Time-out 网关超时思路解决 问题:504 Gateway Time-out 504 Gateway Time-out 网关超时 思路 网上的常规思路是修改nginx配置文件,增加请求执行时间,试过没有用 keepalive_timeout 600; fastcgi_con…

JVM系列-7内存调优

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术、JVM原理🔥如果感觉博主的文…

案例分享 | 助力数字化转型:嘉为科技项目管理平台上线

嘉为科技项目管理平台(一期)基于易趋(EasyTrack)进行实施,通过近一年的开发及试运行,现已成功交付上线、推广使用,取得了良好的应用效果。 1.关于广州嘉为科技有限公司(以下简称嘉为…

龙芯,启动!

本文为小白从购买龙芯3A6000主板、硬件安装、软件安装的简单教程。 1 购买 目前(2024年1月)最新的龙芯主板采用龙芯处理器3A6000和7A2000桥片设计的DTX主板,CPU主频可达2.5GHz,2个DDR4内存插槽。桥片内部集成GPU,支…

如何把openwrt的ipk软件包安装到ubuntu上

前提:都是arm64的架构的软件包。 下载openwrt的ipk软件包 1. 从https://pkgs.org/ 查找下载软件包: 本文以swconfig软件包为例,下载swconfig和相关的依赖软件包: swconfig_12_aarch64_cortex-a72.ipk libuci20130104_2021-10-2…

podman+centos和docker+alpine中作性能对比遇到的问题及解决

1.dockeralpine中遇到这个问题 这是由于缺少相关的配置和依赖造成的 通过以下命令在alpine中安装相关配置 apk add --no-cache build-base cairo-dev cairo cairo-tools jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev 2.alpine中python找…

C++——IO流

C语言中我们学习过文件IO的相关函数,那么在C中也一定有各种IO流的 函数或者功能,由我今天来简单介绍一下C中IO流的大致原理及使用。在C语言中我们经常会使用到scanf、printf、sscanf、sprintf等等来实现进程和文件之间数据的流动,在C中虽然由…