Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

芯片工程来看ProgPoW

落日余晖97
124 0 0
关于 ProgPoW:来自芯片工程师的观点我是一名 IC(集成电路)设计工程师,自 2014 年起进入挖矿行业。不过,我不像其他矿工那样拥有一座大矿场,我只有一间小矿房,赚的钱刚好能向老婆交差而已。看到网上有很多人针对 ProgPoW 提出了各种观点,我也想从 IC 设计工程师的角度分享一下我的看法。- Q3 m. @% h+ L6 W0 h
7 K$ l( e3 Q7 M% ~6 n& E5 t! z
不管是 ProgPow 算法还是 ETHash 算法,算力都是由外部 DRAM 的存储带宽决定的。也就是说
# b' i% g- a0 j( E% l4 U' b8 v  r: k# l- H6 c* d
Hashrate = k*BW (哈希算力 = k * 总带宽)(其中 k 是常量,ETHash 和 ProgPoW 算法使用的 k 值不同。)
6 u8 |0 V* M( x6 |* B+ @5 P# w/ }
所以说,要想在 ETHash 或 progPoW 算法下提升算力,我们需要增加内存带宽。早几年的时候,主流的高带宽内存设备就是使用 GDDR5 显存的显卡。(因为)只有 AMD 和 Nvidia 的 GPU 用得上这么高带宽的内存。因此,这两款 CPU 最适合用于 ETHash 挖矿。目前的情况是,市场对内存的需求已经因为 ETHash 挖矿而大幅提高。对高速内存需求推动了 GDDR6 和 HMB2 等下一代高速存储技术的发展。在 2018 年的第四季度,矿机厂商 Innosilicon 推出了自己的 GDDR6 IP 和针对 ETHash 算法的 ASIC 矿机。鉴于 ProgPoW 在算法和架构上与 ETHash 存在很多相似之处,我认为 Innosilicon 会针对 ProgPoW 算法研发下一代 ASIC 矿机。一旦 ProgPow 算法的参数确定下来,只需 3 到 4 个月就能设计并量产出相应的 ASIC 矿机。想必比特大陆也在秘密研发自己的 GDDR6 IP 芯片。 Rambus 和 eSilicon 等公司也已经发布了自己的 GDDR6 IP 和 HMB2 IP。我相信剩下的 ASIC 制造商,例如 Linzhi 和 Canaan Creative ,在研发下一代芯片的时候也会采用 GDDR6 或 HBM2 显存。因此,等到将来 ProgPoW 算法启用之后,可能会出现很多采用 GDDR6/HBM2 显存的 ASIC 矿机。
; C0 I9 ?" V/ {. H) P
6 I9 D: k  p& y1 V; [6 [5 T& iASIC 矿机可以基于 GDDR6 和 HBM2 显存采用很多优化方法。其中一种是,在 ASIC 矿机中添加比 GPU 多的 GDDR6/HBM2 显存单元。以 Nvidia 的 2080 显卡为例,配备的是 8GB GDDR6 显存,运转速率为 14Gbps ,总带宽(BW)达 8 * 14 * 32/8 = 448Gbps。根据 ProgPoW 算法的带宽需求来算,哈希率(hashrate)理论上应该达到9 s3 U0 c3 @1 R7 u: d
% S8 W" T% y6 m6 B, B7 [. O
hashrate = BW/64/256 = 27.3Mh/s考虑到存储效率的影响,实际值应该为 25.5Mh/s 。ASIC 生产商可以使用小一点的 GDDR6 内存条,这样相比 GPU 就有了成本上的优势。采用 16 个 GDDR6 4GB 内存条可以在保持 GDDR6 成本不变的同时实现 2 倍带宽。在这种情况下,带宽可达到 16 * 14 * 32/8 = 896Gbps ,哈希率理论上可达到9 e' G* d0 D  R

% B5 r0 X$ k  _( zhahsrate = 896Gbps/256/64 = 54.6Mh/s哈希率也翻了一番。但是,4GB GDDR6 芯片的面积只有 8GB GDDR6 芯片的一半。因此,前者的价格比后者低了 60% 多。GDDR6 芯片的总成本见下表一。
) J: B+ m8 U+ h& f( ?
+ ~* t- a9 y& J. I$ @现在,以 Nvidia 的 RTX2080 显卡为例,我们来看一下 GPU 芯片的内部结构,见 Nvidia 显卡介绍的图一。
9 N4 b. S/ t1 R
/ W4 f' Q0 P: P- Y  h! Q-图一:Nvidia RTX2080 显卡的架构-RTX2080 显卡内部有很多模块,占据了很大一部分芯片面积,而且对 ProgPow 算法毫无用处。这些模块包括 PCIE、NVLINK、L2Cache 、3072 个着色单元、64 个 ROP 和 192 个 TMU 等等。ASIC 矿机生产商可以去掉这些图形功能,将这部分芯片面积进行优化,用于 ProgPow 算法,可以将 Nvidia 的 RTX2080 芯片面积减少大约 2/3 。8 M/ z! s* u1 K; G+ V

2 u( R  y' H5 s/ Q4 W  N7 U9 Z这样一来,生产一个 RTX2080 显卡所用的硅晶片数量可以生产出 3 个ASIC 芯片。也就是说,ASIC 芯片的成本就只是 RTX2080 显卡的 1/3 。
  |& m- M5 h" a4 [4 r# Z; @/ T9 J" L- d" Q! f- Y
跟大芯片相比,小芯片的收益率更高,封装和测试所需的成本更低。收益率的计算公式为:
6 H1 I- m; K; O7 \2 Z) ~9 V/ {3 l6 B2 ~( J& L" h6 W% v' F! h
Y = 1/power(1+0.08*die_area)^22.4以 Nvidia 的 RTX2080 GPU 芯片为例,它的芯片面积(die area)是 545 mm^2 ,根据公式可计算出收益率为 23% 。如果将芯片面积减少至原来的 1/3 ,收益率 Y 将增加 60% 。低收益率可以这算为 GPU 的成本。ASIC 芯片的成本将是 GPU 芯片的 1/3*23/60 = 0.13。因此,针对 ProgPow 算法研发的 ASIC 芯片在成本优势上是商用 GPU 芯片的 7.7 倍。考虑到 GPU 芯片的技术更为成熟,在下一步计算的时候我会将这一倍数控制为 5 。如果 ASIC 生产商去掉商用 GPU 芯片所需的 PCIE 和复杂的散热设计,ProgPow ASIC 芯片在 PCB 系统的设计上同样具有成本优势。在一台 ASIC 矿机内,有大量 ASIC 芯片和 GDDR6 更加紧密地封装(集成)在一起,它们在散热设计上要简单的多,成本效益也更好。一块商用 GPU 芯片的系统成本大概占到了 50% ,而一台 ASIC 矿机的 PCB 系统成本很容易就能降至 30% 。我在表一中比较了 GPU 和 ASIC 的成本。
0 C/ ^) j) ~% [( v3 E
- U6 i2 B8 {( m- ?" @2 f& Q-表一:商用 CPU 和 ProgPOW ASIC 的对比-就耗电量而言,商用 GPU 在 0.8 V 的正常电压下要比 ProgPOW ASIC 高得多。不过,ProgPoW ASIC 的耗电量是可以通过降低电压来减少的。根据欧姆定律,电功率与电压的平方成正比:& x& i# }& @/ @

2 P! k) Z" P4 K% U/ a; PP = U*I = U^2/RASIC 的电压可以降至 0.4 V,即商用 GPU 的 1/2 。因此,在哈希率相同的情况下,ProgPoW ASIC 所消耗的电力只有 GPU 的 1/4 。换言之,ProgPoW ASIC 的能效比是 GPU 的 4 倍。生产商在制造比特币矿机的时候已经采用了这种低电压的 ASIC 设计,没道理不会将这种设计用到 ProgPoW ASIC 上。这种设计同样可用于 LPDDR4x DRAM 芯片,比采用 GDDR6 显存的显卡耗电量更低。GDDR6 需要 1.35 V 的电压,而 LPDDR4X 需要 0.6 V 的电压,是 GDDR6 的 1/2 不到。因此,GDDR6 的耗电量至少是 LPDDR4x 的 4 倍。也就是说,LPDDR4x DRAM ASIC 的功率效率是 GDDR6 GPU 的 4 倍。如表二所示。$ {# u7 U. \6 O! y1 N2 @

; m: z$ P' l2 Q9 h4 H9 d-表二:GPU 和 ProgPoW ASIC 的功率效率对比-此外,设计 GPU 所需的研发投入要高得多,无论是人力还是时间成本。作为一种通用计算芯片,GPU 通常需要 12 个月来进行设计、制造和测试,而且需要针对不同的计算场景投入大量硬件模拟和软件开发工作。相比之下,ProgPoW ASIC 在设计和测试方面的成本要低得多,只需要一个经验丰富的 IC 设计师团队花 2 个月的时间进行设计,6 周的时间进行制造,以及 2 周的时间进行测试即可。因此,ProgPoW ASIC 只需 3 至 4 个月的时间就可以投入量产。对于比特大陆和 Innosilicon 这样的矿机研发公司来说,他们已经有过生产 ETHash ASIC 矿机的经验,只要在原有的设计基础上融入 ProgPoW 算法,就可以轻而易举地生产出 ProgPoW ASIC 。
- V- G$ H" }9 F: @: R" ?5 P4 H7 u
( e/ H" R/ `9 H3 W' p, l5 S像 Nvidia 这样的 GPU 生产商雇佣了近 8000 人来开发较为复杂的 GPU ,而像 Linzhi 这样的 ASIC 生产商仅雇佣了十几个人来开发 ETHash ASIC 矿机。两类公司在人力成本上就有 100 倍的差距。相比 GPU ,ASIC 在成本和上市速度上占尽了优势。
8 z% w/ {4 q, ^$ }- ^" I) D  L8 G9 @
总之,如果采用了 ProgPoW 算法,未来势必会出现 ProgPoW ASIC ,而且只需要 3 至 4 个月就能实现量产。而且,ProgPoW ASIC 在成本和功率效率方面起码是 GPU 的 4 倍。绕了一圈之后,我们还是得面对同一个问题:为什么要采用 ProgPoW 算法,为什么要抵制 ASIC 挖矿?
0 }) G5 w5 ^+ \* z! x/ y) [# K9 [
, `8 ]  Y5 F3 |+ _* _9 Q+ wProgPoW 后续:ASIC 的研发成本很高兴看到 IfDefElse 写了一篇有趣的文章《ASIC 的设计成本》来回应我之前写的文章。不过,我觉得 IfDefElse 其实并不熟悉 ASIC 设计,所以文章里多有表述不准确之处。, l, G' @& y( X9 p: I8 Z- Q
2 m) ?, o. R% h! z! A1 o
在他们的文章里,IfDefElse 指出:  n: P, s5 H7 B0 T2 d) N) P# }
1 E5 Q& E$ Z- J9 g  z
ProgPoW 的哈希率是由两个因素决定的:计算核心以及内存带宽。这就是 Ethash 与 ProgPoW 存在区别的原因……
& {% D- @6 s* s
- M) B+ W1 w+ }$ S# W在 ASIC 的世界里,这话是不对的。虽然 ProgPoW 中加入了很多数学方程以及合并函数(Merge Function,来提升计算过程中对计算机核心和内存的使用率,但 ASIC 芯片可以轻而易举实现这些方程(请看这篇文章:《仅带来1%能耗比提升的开源芯片设计》)。我们都知道,计算性能的增长符合摩尔定律,也就是说每 18 个月计算性能就会翻一番,但是,内存访问的性能远远落后于计算性能的进展。所以内存访问性能才是整个系统性能的瓶颈,这也就是所谓的 ”内存极限右墙“,如图一所示。* l7 t( G9 y$ T

- z- h; @" x2 a# a2 I' P-图 1. 计算性能与存储性能之间的区别-在 ASIC 芯片中,计算问题是非常容易通过设计上的优化来解决的。无论是 Ethash 还是 ProgPoW,最根本的瓶颈始终是内存访问的带宽。GPU 芯片的表现也受内存右墙的限制,因为 GPU 是为通用计算而设计的,并不是为 Ethash 或 ProgPoW 而专门设计的。实际上,Ethash 的设计初衷就是用内存极限问题来限制计算效率。
6 D0 Y+ [& H0 @% ^2 h2 m, @2 g5 M* m  x$ H) i4 Z& S+ T  B
IfDefElse 还提到:
- c/ n0 L. S$ p/ b, O3 Z( [( t4 B5 k2 `& ?
ProgPoW 和 Ethash 之间唯一的相似性就是在 DAG 在全局内存中的运用。从纯粹的计算角度出发,Ethash 只需要固定的 keccak_f1600 核心,以及一个求模方程。ProgPoW 则不同,既需要执行一个 16-lane 的随机数学序列,同时还得访问高带宽的 L1 缓存。设计一个可以运行 ProgPoW 数学序列的计算核心要比设计一个执行固定算法(比如 Keccak 函数)的核心要难得多了。" {/ D& \1 @" A- n& r5 e0 Z8 q. |( d
8 [) u8 r4 Z  k+ W; F" Q7 D/ |! c0 o
但在我一个芯片工程师来看,固定算法的电路实现是最容易设计的电路了,既不需要做硬件和软件之间的交互,也没有针对不同运算兼容性和普遍性的限制。Ethash 和 ProgPoW 中的函数都可以简单匹配成一套流程化的电路,而且性能相当不赖;逻辑电路的设计工作只需两周就能完成。但是 GUP 是通用芯片,既要考虑软硬件交互的问题,又需要保证普遍性,要设计指令、设计架构、开发模型,等等。想在半年内完成一款 GPU 芯片模型的设计都是不可能的事。+ s2 g4 ^" M4 H+ d5 L, f
2 C* ?! A9 @2 F
Innosilicon(芯动)和 Bitmain(比特大陆),甚至 linzhi(凛炙),可能都已经为原始的 Ethash ASIC矿机找到了一个成功的架构,我相信对他们的 ASIC 设计者来说,将 Ethash ASIC 升级到 ProgPoW 只需要几周时间。整个设计流程、封装、测试模块和计算模块都可以重用,所以他们很容易就可以升级。
3 M9 Z% P% t3 Z  R7 H4 C, Y2 {' [/ \" F: `7 F0 }
IfDefElse 还认为:
' I# V% E, \+ y
7 v# J) }& U6 ^首先,带宽倍增之后,计算能力也需要倍增,所以这是线性上升的,没有谁具有优势。
/ d" h+ w4 U. }6 ]1 \0 ]
. [; ?" e  l5 D- M) d2 N* {正如我们在上面说到的那样,ASIC 与 GPU 是不一样的。内存带宽而不是计算部分,才是 ASIC 的性能瓶颈。然而,用上了 GDDR6 内存,哪怕只是 8GB,ASIC 也会获得对 NV RTC1060 的 4 倍性能优势
5 ]7 x2 [9 r% L- u5 ?' ?, Y/ {7 ^/ s% V; r4 g
对于一款只有一个功能单元(functional unit)的芯片来说,更小的芯片面积的生产率会比大面积芯片更高。但对于现代 GPU 来说并非如此,因为今天的 GPU 用的是无数个非常微小、缺陷可忽略不计的重复单元,几乎可以任意组合(binnable)和恢复(recoverable)。只要每一个可二进制化功能单元都很小,那么大芯片的生产率可以跟使用更大功能单位的小面积芯片一样高,甚至更高。0 ~  J; I, \4 r, u

8 m" P( l/ H9 k: t( Y0 T/ f( yIfDefElse 上面的说法是不准确的。虽然在大芯片中使用冗余设计可以修复一些芯片并提高成品率,这些次级芯片中只有少量才能挽救下来。冗余和修复在 SRAM 生产中是很常用的,因为它逻辑比较简单而且结构上有很多重复单元。对计算逻辑单元来说,电路并不像 SRAM 那么简单。使用冗余设计意味着加入冗余的 SM 核心,或者类似的东西。这种冗余性必然回增大硅的面积,并因此拉高成本。对于 SRAM 来说,冗余一般会试成本提高 10%。而且,不是所有的失败可以用冗余核心来补救。只有预计算的失败(pre-calculated failure)才可以用冗余逻辑来修复。$ h# W7 l! k( L1 }
) J, I0 E( W9 `& O' W$ \6 n% `
顺带说一句,从芯片区域估计一款芯片的成本是所有 ASCI 工程师的基本技能。从表 1 中可以看出,GPU 的成本可以基于硅晶片面积估算出来,可以看出成本和价格是相关的。
1 U+ g0 I/ w, _
; i8 c& F' u) n* m6 }6 J
  a' |. }/ Z" ^8 I+ f2 n如果芯片只是由计算单元组成的,那么低电压设计是可行的,比如 SHA256d 的 ASIC。一旦整合了其它模块,比如 SRAM(ProgPoW 数据缓存所必须的模块),低电压设计就变得非常难,甚至根本不可能。
$ F0 e% m$ p$ A. |7 q6 _
; M- F- U% L2 @7 F" E# c  B还是那句话,不够准确。SRAM 的电路结构如图 3 所示,由两部分组成:比特阵列(Bit Array)以及外围电路。比特阵列的工作电压可以降低到 0.55V,但它仅占 SRAM 功耗的 10%。外围电路的电压可以降低到 0.4V,但是构成了整体能耗的 90%。在 ASIC 芯片中,整个 SRAM 在能耗上的下降与节能是兼容的。因此,RrogPoW 的 ASIC 可以通过降低电压来大幅减少能耗,然后获得对 GPU 在能源效率上的 4 倍优势。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

落日余晖97 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    22