找回密码
 注册
关于网站域名变更的通知
查看: 260|回复: 2
打印 上一主题 下一主题

FPGA与GPU的区别本质上是体系结构的区别

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-3-30 14:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
/ P/ ]4 i8 X( i) x+ `2 I; n* |2 m
FPGA与GPU的区别本质上是体系结构的区别1 X) J+ X1 u" @! W8 Z# p$ W# a
CPU、GPU 都属于冯·诺依曼结构,指令译码执行、共享内存。
5 ]: Z8 u) @) v1 l- E& N6 c8 m! m
. W" ]1 X; R: SFPGA 本质上是无指令、无需共享内存的体系结构。
' x0 ~, i! A0 [0 l( D- J% ~! c" a
3 ^6 z, v$ _% Y4 f, F9 _CPU与FPGA区别之(指令):( n  F  x! }# i1 U  F
CPU结构——有指令:7 j1 @* K! ]( |+ d6 [7 A
冯氏结构中,由于执行单元(如 CPU 核)可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑。& y9 b3 I! @  V. l8 Q/ n
由于指令流的控制逻辑复杂,不可能有太多条独立的指令流,- c8 ^$ c2 t0 S/ [/ g5 y4 ?3 v
因此 GPU 使用 SIMD(单指令流多数据流)来让多个执行单元以同样的步调处理不同的数据,CPU 也支持 SIMD 指令。' {; r1 ]; P/ @  s% E3 ?
FPGA结构——无需指令:
, l/ y4 n: k5 D  X# A% r而 FPGA 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。! Q3 s3 o# ]- i, c. @- x! Z: J% V" G
4 m8 h2 t$ i# C: |* M$ n
CPU与FPGA区别之(内存)
9 l' c) E2 J% s& A7 p/ N) v% w7 oCPU结构——仲裁与共享内存:
5 N  h6 |" j) ~# d0 m+ c% T  {冯氏结构中使用内存有两种作用。一是保存状态,二是在执行单元间通信。
2 l) p, \9 d! B# D6 K% O由于内存是共享的,就需要做访问仲裁;1 z- M: Q" w% y4 Z1 i
为了利用访问局部性,每个执行单元有一个私有的缓存,这就要维持执行部件间缓存的一致性。
/ {1 u: h' P$ r  ?+ M' B0 w' ]3 }" v3 n3 h
FPGA结构——无需仲裁与共享内存:
/ ]) [: x  I8 O: q对于保存状态的需求,FPGA 中的寄存器和片上内存(BRAM)是属于各自的控制逻辑的,无需不必要的仲裁和缓存。! i& S' z' g. G6 {" J" m$ T
对于通信的需求,FPGA 每个逻辑单元与周围逻辑单元的连接在重编程(烧写)时就已经确定,并不需要通过共享内存来通信。/ a7 M( d3 Z2 T1 Q! G3 {

0 K- ^' x8 {( A! A, p) ?FPGA 同时拥有流水线并行和数据并行,而 GPU 几乎只有数据并行(流水线深度受限)。
( a! @! ^8 e. D' k5 J; o. x4 ^3 m# W+ _4 _* n9 x- a: w
FPGA流水线与数据并行处理:
1 J, d" M3 U  O$ P# E例如:处理一个数据包有 10 个步骤,FPGA 可以搭建一个 10 级流水线,流水线的不同级在处理不同的数据包,每个数据包流经 10 级之后处理完成。每处理完成一个数据包,就能马上输出。$ N9 |, Q: O& {  n3 B( B- m) g3 m
) \2 d5 C9 Q; F7 U+ Q; @7 V
GPU数据并行处理:' y% T2 W* _) h, u7 O. v% g+ f0 K3 Q
而 GPU 的数据并行方法是做 10 个计算单元,每个计算单元也在处理不同的数据包,4 B" _$ C0 j) b/ x
* y  n0 k. ?7 n- H( W
然而所有的计算单元必须按照统一的步调,做相同的事情(SIMD,Single Instruction Multiple Data)。3 w7 T9 ]3 T( k5 e7 X

4 J" q! Q8 }$ X  ?2 d! c这就要求 10 个数据包必须一起输入、一起输出,输入输出的延迟增加了。
) l! \, T' x* J' L5 G- z: F6 v! d' f1 m
总结一句话,很多算法如果用纯软件实现,需要很多条指令才能完成,
. _! l5 I: V& r4 a! w4 x8 b1 T如果用FPGA,只需要在有限个时钟周期即可完成,速度快的不是一点半腥。
  • TA的每日心情

    2019-11-19 15:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-3-30 15:33 | 只看该作者
    FPGA与GPU的区别本质上是体系结构的区别

    该用户从未签到

    3#
    发表于 2022-3-30 15:46 | 只看该作者
    FPGA与GPU的区别本质上是体系结构的区别
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-5 21:24 , Processed in 0.140625 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表