Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

芯片工程来看ProgPoW

落日余晖97
62 0 0
关于 ProgPoW:来自芯片工程师的观点我是一名 IC(集成电路)设计工程师,自 2014 年起进入挖矿行业。不过,我不像其他矿工那样拥有一座大矿场,我只有一间小矿房,赚的钱刚好能向老婆交差而已。看到网上有很多人针对 ProgPoW 提出了各种观点,我也想从 IC 设计工程师的角度分享一下我的看法。& L5 X1 f( X0 x& A

$ S% o7 ]5 }3 ]9 [  j0 z* E不管是 ProgPow 算法还是 ETHash 算法,算力都是由外部 DRAM 的存储带宽决定的。也就是说9 w/ ?6 t( ]1 M1 ~
2 C/ B& F9 Q/ D* A# h0 X: e( T
Hashrate = k*BW (哈希算力 = k * 总带宽)(其中 k 是常量,ETHash 和 ProgPoW 算法使用的 k 值不同。)4 |. U; d+ q1 F

# d9 v% o( q: G' a# L  s2 m3 R# o所以说,要想在 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 矿机。+ p, C. F( i) Z
1 b; M& N; N* P
ASIC 矿机可以基于 GDDR6 和 HBM2 显存采用很多优化方法。其中一种是,在 ASIC 矿机中添加比 GPU 多的 GDDR6/HBM2 显存单元。以 Nvidia 的 2080 显卡为例,配备的是 8GB GDDR6 显存,运转速率为 14Gbps ,总带宽(BW)达 8 * 14 * 32/8 = 448Gbps。根据 ProgPoW 算法的带宽需求来算,哈希率(hashrate)理论上应该达到  t1 O, }* I% _& w9 y/ g  E
: H5 \* Z' V. \( p- Y
hashrate = BW/64/256 = 27.3Mh/s考虑到存储效率的影响,实际值应该为 25.5Mh/s 。ASIC 生产商可以使用小一点的 GDDR6 内存条,这样相比 GPU 就有了成本上的优势。采用 16 个 GDDR6 4GB 内存条可以在保持 GDDR6 成本不变的同时实现 2 倍带宽。在这种情况下,带宽可达到 16 * 14 * 32/8 = 896Gbps ,哈希率理论上可达到. S4 f" A4 o  p& G. c

) t1 F2 {5 z' W7 rhahsrate = 896Gbps/256/64 = 54.6Mh/s哈希率也翻了一番。但是,4GB GDDR6 芯片的面积只有 8GB GDDR6 芯片的一半。因此,前者的价格比后者低了 60% 多。GDDR6 芯片的总成本见下表一。; j" J0 R$ O3 d! B; w: L

" D! Z. Y* f. u现在,以 Nvidia 的 RTX2080 显卡为例,我们来看一下 GPU 芯片的内部结构,见 Nvidia 显卡介绍的图一。
, \0 _9 V+ L% x, f7 i  {! ^" @0 I" \0 T* {/ J7 t# `
-图一:Nvidia RTX2080 显卡的架构-RTX2080 显卡内部有很多模块,占据了很大一部分芯片面积,而且对 ProgPow 算法毫无用处。这些模块包括 PCIE、NVLINK、L2Cache 、3072 个着色单元、64 个 ROP 和 192 个 TMU 等等。ASIC 矿机生产商可以去掉这些图形功能,将这部分芯片面积进行优化,用于 ProgPow 算法,可以将 Nvidia 的 RTX2080 芯片面积减少大约 2/3 。
0 E7 ]9 R6 J7 q* Q; G
7 D9 p+ R8 ?+ h4 N; Y! d* j这样一来,生产一个 RTX2080 显卡所用的硅晶片数量可以生产出 3 个ASIC 芯片。也就是说,ASIC 芯片的成本就只是 RTX2080 显卡的 1/3 。3 e; y  C( t, l9 E2 Y* H( T

% r) t! q; I  P0 k. e. H; X跟大芯片相比,小芯片的收益率更高,封装和测试所需的成本更低。收益率的计算公式为:$ M1 N: R, F( I7 v2 S8 L' p- R
% Q' L% e* |2 Q! X
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 的成本。. a+ d* A6 c  Q& G; T2 E( O
# B0 Z( q+ X" v" z
-表一:商用 CPU 和 ProgPOW ASIC 的对比-就耗电量而言,商用 GPU 在 0.8 V 的正常电压下要比 ProgPOW ASIC 高得多。不过,ProgPoW ASIC 的耗电量是可以通过降低电压来减少的。根据欧姆定律,电功率与电压的平方成正比:/ `9 T4 H' E. p/ U# o7 B  {( r  e

, R8 a9 f. _+ a% ~5 P' Z4 k: lP = 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 倍。如表二所示。
' B3 p& F2 ?3 }3 j* h  u$ ?- ~+ O- ~6 u
-表二:GPU 和 ProgPoW ASIC 的功率效率对比-此外,设计 GPU 所需的研发投入要高得多,无论是人力还是时间成本。作为一种通用计算芯片,GPU 通常需要 12 个月来进行设计、制造和测试,而且需要针对不同的计算场景投入大量硬件模拟和软件开发工作。相比之下,ProgPoW ASIC 在设计和测试方面的成本要低得多,只需要一个经验丰富的 IC 设计师团队花 2 个月的时间进行设计,6 周的时间进行制造,以及 2 周的时间进行测试即可。因此,ProgPoW ASIC 只需 3 至 4 个月的时间就可以投入量产。对于比特大陆和 Innosilicon 这样的矿机研发公司来说,他们已经有过生产 ETHash ASIC 矿机的经验,只要在原有的设计基础上融入 ProgPoW 算法,就可以轻而易举地生产出 ProgPoW ASIC 。
# g* i* z! y' b. [$ ]3 g) o# T- d. c
' `4 J; C9 E- a像 Nvidia 这样的 GPU 生产商雇佣了近 8000 人来开发较为复杂的 GPU ,而像 Linzhi 这样的 ASIC 生产商仅雇佣了十几个人来开发 ETHash ASIC 矿机。两类公司在人力成本上就有 100 倍的差距。相比 GPU ,ASIC 在成本和上市速度上占尽了优势。& ~" O: m5 v, d, Z" ]
0 c" W$ l" x2 ]9 v- L6 _& D1 W/ l
总之,如果采用了 ProgPoW 算法,未来势必会出现 ProgPoW ASIC ,而且只需要 3 至 4 个月就能实现量产。而且,ProgPoW ASIC 在成本和功率效率方面起码是 GPU 的 4 倍。绕了一圈之后,我们还是得面对同一个问题:为什么要采用 ProgPoW 算法,为什么要抵制 ASIC 挖矿?0 W6 M; w( U# {4 t

9 m" s7 U' g4 z0 b/ AProgPoW 后续:ASIC 的研发成本很高兴看到 IfDefElse 写了一篇有趣的文章《ASIC 的设计成本》来回应我之前写的文章。不过,我觉得 IfDefElse 其实并不熟悉 ASIC 设计,所以文章里多有表述不准确之处。
3 ?4 G& X* ^3 k* G# f+ R8 ]
: _" w# c. ^" ~在他们的文章里,IfDefElse 指出:8 Q/ n7 j" M% r
4 a  Q- I2 L! r( m6 K, S  `
ProgPoW 的哈希率是由两个因素决定的:计算核心以及内存带宽。这就是 Ethash 与 ProgPoW 存在区别的原因……% E& t% O, @3 }6 c4 o# z
& \5 V1 J* |3 l1 E8 y
在 ASIC 的世界里,这话是不对的。虽然 ProgPoW 中加入了很多数学方程以及合并函数(Merge Function,来提升计算过程中对计算机核心和内存的使用率,但 ASIC 芯片可以轻而易举实现这些方程(请看这篇文章:《仅带来1%能耗比提升的开源芯片设计》)。我们都知道,计算性能的增长符合摩尔定律,也就是说每 18 个月计算性能就会翻一番,但是,内存访问的性能远远落后于计算性能的进展。所以内存访问性能才是整个系统性能的瓶颈,这也就是所谓的 ”内存极限右墙“,如图一所示。
) F& \3 S, }( n  d3 \" M/ X
2 t5 L! \0 k7 m# a( T-图 1. 计算性能与存储性能之间的区别-在 ASIC 芯片中,计算问题是非常容易通过设计上的优化来解决的。无论是 Ethash 还是 ProgPoW,最根本的瓶颈始终是内存访问的带宽。GPU 芯片的表现也受内存右墙的限制,因为 GPU 是为通用计算而设计的,并不是为 Ethash 或 ProgPoW 而专门设计的。实际上,Ethash 的设计初衷就是用内存极限问题来限制计算效率。! J9 u9 z1 u$ e6 E

2 c& Y* w% {/ [) vIfDefElse 还提到:
6 Q: |4 R1 c7 z0 k1 D4 Z" B
+ y" g0 R; j( a! g6 uProgPoW 和 Ethash 之间唯一的相似性就是在 DAG 在全局内存中的运用。从纯粹的计算角度出发,Ethash 只需要固定的 keccak_f1600 核心,以及一个求模方程。ProgPoW 则不同,既需要执行一个 16-lane 的随机数学序列,同时还得访问高带宽的 L1 缓存。设计一个可以运行 ProgPoW 数学序列的计算核心要比设计一个执行固定算法(比如 Keccak 函数)的核心要难得多了。
8 V) ?1 J8 J: H+ ^) B9 n6 U- Q& q- L8 t6 g
但在我一个芯片工程师来看,固定算法的电路实现是最容易设计的电路了,既不需要做硬件和软件之间的交互,也没有针对不同运算兼容性和普遍性的限制。Ethash 和 ProgPoW 中的函数都可以简单匹配成一套流程化的电路,而且性能相当不赖;逻辑电路的设计工作只需两周就能完成。但是 GUP 是通用芯片,既要考虑软硬件交互的问题,又需要保证普遍性,要设计指令、设计架构、开发模型,等等。想在半年内完成一款 GPU 芯片模型的设计都是不可能的事。/ o$ t  l2 m( {( A  J( v) `, D

) ?* y; P' G8 i  ^9 P% hInnosilicon(芯动)和 Bitmain(比特大陆),甚至 linzhi(凛炙),可能都已经为原始的 Ethash ASIC矿机找到了一个成功的架构,我相信对他们的 ASIC 设计者来说,将 Ethash ASIC 升级到 ProgPoW 只需要几周时间。整个设计流程、封装、测试模块和计算模块都可以重用,所以他们很容易就可以升级。
) l- t0 F! u% T" r4 O' W" i. L( m* `0 D" s" w" S0 y2 m# b
IfDefElse 还认为:
0 s! e; V: y; M0 }- m- p: e+ a2 S2 Y) [0 w% H, V5 s
首先,带宽倍增之后,计算能力也需要倍增,所以这是线性上升的,没有谁具有优势。
# F. z/ L  K9 T, P1 O3 j5 o) {3 i+ T
正如我们在上面说到的那样,ASIC 与 GPU 是不一样的。内存带宽而不是计算部分,才是 ASIC 的性能瓶颈。然而,用上了 GDDR6 内存,哪怕只是 8GB,ASIC 也会获得对 NV RTC1060 的 4 倍性能优势+ W! M5 ]+ [0 B) }

8 E: y+ ]; w; T; g2 o8 E5 H* M对于一款只有一个功能单元(functional unit)的芯片来说,更小的芯片面积的生产率会比大面积芯片更高。但对于现代 GPU 来说并非如此,因为今天的 GPU 用的是无数个非常微小、缺陷可忽略不计的重复单元,几乎可以任意组合(binnable)和恢复(recoverable)。只要每一个可二进制化功能单元都很小,那么大芯片的生产率可以跟使用更大功能单位的小面积芯片一样高,甚至更高。
7 [* S  b& Y& `- N2 R6 q. R7 p8 g- K% C; G  A: W; Y" Z
IfDefElse 上面的说法是不准确的。虽然在大芯片中使用冗余设计可以修复一些芯片并提高成品率,这些次级芯片中只有少量才能挽救下来。冗余和修复在 SRAM 生产中是很常用的,因为它逻辑比较简单而且结构上有很多重复单元。对计算逻辑单元来说,电路并不像 SRAM 那么简单。使用冗余设计意味着加入冗余的 SM 核心,或者类似的东西。这种冗余性必然回增大硅的面积,并因此拉高成本。对于 SRAM 来说,冗余一般会试成本提高 10%。而且,不是所有的失败可以用冗余核心来补救。只有预计算的失败(pre-calculated failure)才可以用冗余逻辑来修复。
% t" s; Y6 L7 S' K) L, O/ q. a
0 e% h- Y" j5 ~3 M顺带说一句,从芯片区域估计一款芯片的成本是所有 ASCI 工程师的基本技能。从表 1 中可以看出,GPU 的成本可以基于硅晶片面积估算出来,可以看出成本和价格是相关的。) y. L3 k% t' S6 t! e' u  r

1 H6 c4 g5 B% S' ~: S, e" D6 Z/ @9 T1 F6 m, K$ C0 q
如果芯片只是由计算单元组成的,那么低电压设计是可行的,比如 SHA256d 的 ASIC。一旦整合了其它模块,比如 SRAM(ProgPoW 数据缓存所必须的模块),低电压设计就变得非常难,甚至根本不可能。
; S7 S  D1 c9 L# V; E% Z
: d' i% H4 n* v4 Q+ B7 G0 g还是那句话,不够准确。SRAM 的电路结构如图 3 所示,由两部分组成:比特阵列(Bit Array)以及外围电路。比特阵列的工作电压可以降低到 0.55V,但它仅占 SRAM 功耗的 10%。外围电路的电压可以降低到 0.4V,但是构成了整体能耗的 90%。在 ASIC 芯片中,整个 SRAM 在能耗上的下降与节能是兼容的。因此,RrogPoW 的 ASIC 可以通过降低电压来大幅减少能耗,然后获得对 GPU 在能源效率上的 4 倍优势。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

落日余晖97 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    22