喜欢上你,爱上你,真是太好了,谢谢。 收藏本站
登陆 / 注册 搜索

阅读: 8K   回复: 3

为什么现在更多用的是GPU而不是CPU,如挖矿甚至破解密码

小执念 古黑浩劫论坛大牛 2015-12-8 22:38 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
  我只想说就目前的计算机架构,GPU只能称作是小众。GPU作为后来者,出现的太晚了,计算机架构已经定型,不太可能撼动 Intel 的霸主地位,而且Intel 一定会借着先天优势打压其他竞争对手。 $ q5 |3 q; R4 E, |
9 z3 _( p0 i% \- t" u$ [7 i& A# b

$ y6 I0 h' X. S. U" F/ J  最近bitcoin被媒体炒作的太过了,出现在了公众的视野中。媒体写新闻的那群人只要是写点和技术沾边的文章,就能暴露他们的无知,倒霉的还是无辜的群众。我简单提一下为什么GPU只能算作是小众。9 B1 q4 m7 D! {$ Q  X, f' v1 u
# O3 \& W. Q: @: _# V

' ~& f) t" A4 s/ U9 t2 z4 n  在计算机上运行的程序从性能的角度来说大致可分为三类:$ I! @0 X  q$ z$ `$ l

  C4 H. _4 ~+ w; C4 t+ j+ b. h0 D' R1 z
  (1) I/O intensive;  z; a3 x% s7 I2 _
  (2) Memory intensive 7 n: n2 y7 H9 i6 Q! z4 x$ R
  (3) Compute-intensive
2 r5 |( z( F/ Y  }( `! C2 e1 @, c/ {1 Z7 ^  E2 C5 l& Y

4 A2 J. V& O. }: p  (1)I/O intensive的程序其性能瓶颈是I/O,也就是说程序运行的大部分时间花在了硬盘读写/网络通信上,而I/O处在计算机体系结构金字塔的最底层,速度非常慢。
+ _6 U! w1 \0 m$ w( ~; a* P* f5 Y' A9 \2 Z9 p, x
  K8 \5 V  g$ k% U) v
  最近炒的很火的big data 讨论的就是这一类应用程序。几百TB 甚至到PB级别的数据往哪搁,只能放在硬盘上。一台机器容量太小CPU太少怎么办,搞几百台甚至上千台机器用网线连起来分布处理。所以这块全是I/O, 现在大的互联网公司不多搞几个上千节点的集群肯定撑不住。
7 ^, B8 u  a$ `8 X% ~" v
; e" v3 Q; i( n2 B) W) n7 d4 Q/ H8 l. |4 X1 R2 N8 N
  (2)Memory intensive的程序其性能瓶颈在内存访问,程序中有大量的随机访问内存的操作,但是基本没有I/O,  这类程序已经比第一类程序快一个数量级了,但是和寄存器的速度还是没法比。目前大部分应用程序都属于这类。个人电脑里装的的各种软件基本就是这类,如果有点I/O,  立刻就会非常得卡。
, A- H$ G& v6 m- T
. [0 d1 C. ]; m; b+ i; e3 A# L* S; X5 A- ]9 j2 [
  以上提到的这两类程序的应用最广泛,涵盖了大部分有用的计算机软件,但遗憾的是GPU在这两块毫无用处, GPU只有在计算密集型的程序有些作用。I/O是瓶颈的程序,花在计算的时间可以忽略不计,再怎么用GPU加速也没用。 含有大量内存随机访问的程序也不适合在GPU上执行,大量的随机访问甚至可以使GPU的行为由并行变为串行。什么类型的程序适合在GPU上运行? ! m% i/ n# z$ d. P5 h! x5 [

! i0 L' r1 J! x& ]* X( X2 K( f$ f* V3 g. {& Z
  (1)计算密集型的程序。所谓计算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时。可以做一下对比,读内存的延迟大概是几百个时钟周期;读硬盘的速度就不说了,即便是SSD, 也实在是太慢了。7 S7 h- R9 \4 O& o9 B2 J! ]2 S  b7 \

5 R) m- I0 [' E; `! O* n; s4 c! Q: a2 p' S
  (2)易于并行的程序。GPU其实是一种SIMD(Single Instruction Multiple Data)架构, 他有成百上千个核,每一个核在同一时间最好能做同样的事情。满足以上两点,就可以用GPU做运算了。 不过你还得先用CUDA或者Open CL 把能在GPU上运行的程序写出来, 这也是很麻烦的,写一下就知道了。
  t  i$ k0 ~8 d0 A) w9 I+ y/ f
3 r) K' L1 q4 U* |0 I& X7 m. f7 [! {4 |
   而且GPU的架构比较特殊,要想写出高效率的程序,要花很多很多时间。我想说写GPU程序是一件很蛋疼的事情。GPU在某些地方很有用,但应用面比较窄,远远没有某公司声称的那么有用。. |! ?+ N7 \) @0 v3 b, I

) H8 E( T/ {) D7 c) `' i7 g$ y1 K2 g, V, K% {- M
  当今还是Intel的天下, 现在计算机的速度已经很快了,计算其实已经不是什么大问题。I/O才是最需要解决的问题。 记得曾经看过N家的GTC峰会,黄某人吹得神乎其神,连我都被感动了,多少多少T FLOPS的计算速度。 程序运行时间从100 秒 变成 1秒。: a' m& v0 C; x! o9 S

7 q$ U* M4 h+ M) u' X# d0 ]
6 s% c5 j( g6 k6 G5 a( x$ M  其实没多重要,你倒杯水的功夫就100秒了。运行时间从100天缩短到1天才是大贡献。 前者就是GPU做的事情,后者才是我们真正需要的。( d& J2 M$ K& q6 m5 O


雾月 「出类拔萃」 2017-9-1 20:15 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

感谢分享~
左岸云烟 「出类拔萃」 2018-6-3 22:51 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

学海无涯,回头是岸!
那一缕微光 「龙战于野」 2018-6-13 06:29 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

有空一起交流一下
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2021-1-16 14:38 , Processed in 0.028959 second(s), 20 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表