我们擦身而过,是为了相识或者遗忘。 收藏本站
登陆 / 注册 搜索

阅读: 7.9K   回复: 3

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

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

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

管理员
  我只想说就目前的计算机架构,GPU只能称作是小众。GPU作为后来者,出现的太晚了,计算机架构已经定型,不太可能撼动 Intel 的霸主地位,而且Intel 一定会借着先天优势打压其他竞争对手。 , W4 Z8 g' \! A4 c) e
+ A3 ~& k+ U) Y8 E% W! o1 N

3 ]- V; p4 A3 d9 I1 M  最近bitcoin被媒体炒作的太过了,出现在了公众的视野中。媒体写新闻的那群人只要是写点和技术沾边的文章,就能暴露他们的无知,倒霉的还是无辜的群众。我简单提一下为什么GPU只能算作是小众。2 @! R9 c' I0 B0 y, y) {  c* \

; n  z  @5 u1 C& r1 e+ v2 y! h" Y2 A1 d& h
  在计算机上运行的程序从性能的角度来说大致可分为三类:
( ?8 {5 }/ a; p' Q+ J: u) V9 N4 _+ t2 [# P. y2 t

& D# G: y! T7 E5 z  (1) I/O intensive;
! l" r' M7 R; Y$ q2 _; S  (2) Memory intensive
: k: h$ ~4 b; p! Y5 V  (3) Compute-intensive& A: n5 v2 g4 D* U& S
8 W: W# f, Z( m( k2 {
! `/ ~, @* u1 b: k* [& Q+ o- z3 {5 g. j
  (1)I/O intensive的程序其性能瓶颈是I/O,也就是说程序运行的大部分时间花在了硬盘读写/网络通信上,而I/O处在计算机体系结构金字塔的最底层,速度非常慢。
$ L2 |# b' L7 v( U9 x
$ [+ k3 s: ^) C
8 Y  {0 {2 r% Z& V9 U( J8 m  最近炒的很火的big data 讨论的就是这一类应用程序。几百TB 甚至到PB级别的数据往哪搁,只能放在硬盘上。一台机器容量太小CPU太少怎么办,搞几百台甚至上千台机器用网线连起来分布处理。所以这块全是I/O, 现在大的互联网公司不多搞几个上千节点的集群肯定撑不住。$ y# D; W' L! C4 Y+ ^( D  \# \+ H

* e. U$ k% K: a4 z1 B* u% D6 B% l! L' d* S: s+ O
  (2)Memory intensive的程序其性能瓶颈在内存访问,程序中有大量的随机访问内存的操作,但是基本没有I/O,  这类程序已经比第一类程序快一个数量级了,但是和寄存器的速度还是没法比。目前大部分应用程序都属于这类。个人电脑里装的的各种软件基本就是这类,如果有点I/O,  立刻就会非常得卡。# T. a5 r* x1 [. \" V; Q" v, |3 W
" @8 X/ z  H* k& w
( I( o* N$ d( n, k+ L% q; ^8 l' n
  以上提到的这两类程序的应用最广泛,涵盖了大部分有用的计算机软件,但遗憾的是GPU在这两块毫无用处, GPU只有在计算密集型的程序有些作用。I/O是瓶颈的程序,花在计算的时间可以忽略不计,再怎么用GPU加速也没用。 含有大量内存随机访问的程序也不适合在GPU上执行,大量的随机访问甚至可以使GPU的行为由并行变为串行。什么类型的程序适合在GPU上运行?
' H" z6 g4 s/ h  L6 U
" l, R& \* R% l7 \  s5 e
% C; g' X5 {- r$ v1 L5 O1 i  (1)计算密集型的程序。所谓计算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时。可以做一下对比,读内存的延迟大概是几百个时钟周期;读硬盘的速度就不说了,即便是SSD, 也实在是太慢了。
) Y  j/ P- H2 K6 F9 n9 m9 B. f: M  o1 z4 l

0 Z' b4 g: M; {7 k" F+ O3 L6 i  (2)易于并行的程序。GPU其实是一种SIMD(Single Instruction Multiple Data)架构, 他有成百上千个核,每一个核在同一时间最好能做同样的事情。满足以上两点,就可以用GPU做运算了。 不过你还得先用CUDA或者Open CL 把能在GPU上运行的程序写出来, 这也是很麻烦的,写一下就知道了。
+ q* v7 A$ I, O5 M' _: a& ]
% Q. W  Q: z6 `7 U/ m5 ^" N$ w5 F( ~, q: I5 f: q: o
   而且GPU的架构比较特殊,要想写出高效率的程序,要花很多很多时间。我想说写GPU程序是一件很蛋疼的事情。GPU在某些地方很有用,但应用面比较窄,远远没有某公司声称的那么有用。
2 M+ S: o6 V& T; k4 Y4 ?4 a! u/ T& Q4 R6 l/ V7 n
( \: Q+ v8 K% ^9 ~4 H) h
  当今还是Intel的天下, 现在计算机的速度已经很快了,计算其实已经不是什么大问题。I/O才是最需要解决的问题。 记得曾经看过N家的GTC峰会,黄某人吹得神乎其神,连我都被感动了,多少多少T FLOPS的计算速度。 程序运行时间从100 秒 变成 1秒。
% C; Y2 r/ z8 q5 {
- E# t8 [/ `# W
3 `' t' G( H% U1 G8 `. m: m$ X  其实没多重要,你倒杯水的功夫就100秒了。运行时间从100天缩短到1天才是大贡献。 前者就是GPU做的事情,后者才是我们真正需要的。5 @0 t, Q; Q$ j


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

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

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

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

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

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

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

本版积分规则

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

GMT+8, 2020-10-31 16:20 , Processed in 0.028796 second(s), 23 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表