Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

芯片工程来看ProgPoW

落日余晖97
64 0 0
关于 ProgPoW:来自芯片工程师的观点我是一名 IC(集成电路)设计工程师,自 2014 年起进入挖矿行业。不过,我不像其他矿工那样拥有一座大矿场,我只有一间小矿房,赚的钱刚好能向老婆交差而已。看到网上有很多人针对 ProgPoW 提出了各种观点,我也想从 IC 设计工程师的角度分享一下我的看法。9 {* \0 v. ?1 `' Y* P
- a' N- V: T( }' r% z
不管是 ProgPow 算法还是 ETHash 算法,算力都是由外部 DRAM 的存储带宽决定的。也就是说
$ }6 @8 ]0 p6 f0 y; h* n# y. F# G0 |) [2 c
Hashrate = k*BW (哈希算力 = k * 总带宽)(其中 k 是常量,ETHash 和 ProgPoW 算法使用的 k 值不同。)
# n$ v( i. k$ P6 X' w9 x$ z2 j
所以说,要想在 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 矿机。0 _- P! u$ x( K" e* C6 b  _
4 b' H1 `" p: R" ^- e
ASIC 矿机可以基于 GDDR6 和 HBM2 显存采用很多优化方法。其中一种是,在 ASIC 矿机中添加比 GPU 多的 GDDR6/HBM2 显存单元。以 Nvidia 的 2080 显卡为例,配备的是 8GB GDDR6 显存,运转速率为 14Gbps ,总带宽(BW)达 8 * 14 * 32/8 = 448Gbps。根据 ProgPoW 算法的带宽需求来算,哈希率(hashrate)理论上应该达到
, o' H, H0 a6 A
  |7 E, |" Q9 N, ahashrate = BW/64/256 = 27.3Mh/s考虑到存储效率的影响,实际值应该为 25.5Mh/s 。ASIC 生产商可以使用小一点的 GDDR6 内存条,这样相比 GPU 就有了成本上的优势。采用 16 个 GDDR6 4GB 内存条可以在保持 GDDR6 成本不变的同时实现 2 倍带宽。在这种情况下,带宽可达到 16 * 14 * 32/8 = 896Gbps ,哈希率理论上可达到% Y: |9 B! E7 r8 X% e, \9 {9 s  Y
2 @/ X" ~9 Z. m+ U4 `# l
hahsrate = 896Gbps/256/64 = 54.6Mh/s哈希率也翻了一番。但是,4GB GDDR6 芯片的面积只有 8GB GDDR6 芯片的一半。因此,前者的价格比后者低了 60% 多。GDDR6 芯片的总成本见下表一。
( W  c/ E% X- u
7 M9 Y; ~) v+ O; G& h现在,以 Nvidia 的 RTX2080 显卡为例,我们来看一下 GPU 芯片的内部结构,见 Nvidia 显卡介绍的图一。
) D/ k1 M2 Z( w2 i' X; m
- M3 J- N2 `3 v2 n" J* j-图一:Nvidia RTX2080 显卡的架构-RTX2080 显卡内部有很多模块,占据了很大一部分芯片面积,而且对 ProgPow 算法毫无用处。这些模块包括 PCIE、NVLINK、L2Cache 、3072 个着色单元、64 个 ROP 和 192 个 TMU 等等。ASIC 矿机生产商可以去掉这些图形功能,将这部分芯片面积进行优化,用于 ProgPow 算法,可以将 Nvidia 的 RTX2080 芯片面积减少大约 2/3 。9 u1 }8 y5 O) t# B

# ^( K" e: `+ y  l$ c" v$ `+ N这样一来,生产一个 RTX2080 显卡所用的硅晶片数量可以生产出 3 个ASIC 芯片。也就是说,ASIC 芯片的成本就只是 RTX2080 显卡的 1/3 。0 Z7 l) z3 K! C
* E- P  T3 `' I. b1 x
跟大芯片相比,小芯片的收益率更高,封装和测试所需的成本更低。收益率的计算公式为:: Q  g% y/ P& u% s6 `: V
- u) V; r" H8 f+ G" W. s
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 ]3 }: R2 F3 u# P+ W
- o% @+ b) |! {' m: U  j! {& b
-表一:商用 CPU 和 ProgPOW ASIC 的对比-就耗电量而言,商用 GPU 在 0.8 V 的正常电压下要比 ProgPOW ASIC 高得多。不过,ProgPoW ASIC 的耗电量是可以通过降低电压来减少的。根据欧姆定律,电功率与电压的平方成正比:7 I9 b3 _" J9 B6 Z" s
( h: i: S5 S$ U0 _
P = 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 倍。如表二所示。6 S6 z) @" {0 m, b- R9 t: r

9 O; C, `) n3 H& m  W: C  m& s1 D-表二:GPU 和 ProgPoW ASIC 的功率效率对比-此外,设计 GPU 所需的研发投入要高得多,无论是人力还是时间成本。作为一种通用计算芯片,GPU 通常需要 12 个月来进行设计、制造和测试,而且需要针对不同的计算场景投入大量硬件模拟和软件开发工作。相比之下,ProgPoW ASIC 在设计和测试方面的成本要低得多,只需要一个经验丰富的 IC 设计师团队花 2 个月的时间进行设计,6 周的时间进行制造,以及 2 周的时间进行测试即可。因此,ProgPoW ASIC 只需 3 至 4 个月的时间就可以投入量产。对于比特大陆和 Innosilicon 这样的矿机研发公司来说,他们已经有过生产 ETHash ASIC 矿机的经验,只要在原有的设计基础上融入 ProgPoW 算法,就可以轻而易举地生产出 ProgPoW ASIC 。1 a; g# y! K' I) f7 j

5 f2 v* V9 K  R% i5 m& `. H5 u. H像 Nvidia 这样的 GPU 生产商雇佣了近 8000 人来开发较为复杂的 GPU ,而像 Linzhi 这样的 ASIC 生产商仅雇佣了十几个人来开发 ETHash ASIC 矿机。两类公司在人力成本上就有 100 倍的差距。相比 GPU ,ASIC 在成本和上市速度上占尽了优势。; ]# d. g. @3 n4 y8 D# c: t
% D8 d) W$ A% J7 o& I: n8 B1 z: M
总之,如果采用了 ProgPoW 算法,未来势必会出现 ProgPoW ASIC ,而且只需要 3 至 4 个月就能实现量产。而且,ProgPoW ASIC 在成本和功率效率方面起码是 GPU 的 4 倍。绕了一圈之后,我们还是得面对同一个问题:为什么要采用 ProgPoW 算法,为什么要抵制 ASIC 挖矿?( ~, a& _# C7 t& X
5 f( V* z5 Z5 _4 V+ S
ProgPoW 后续:ASIC 的研发成本很高兴看到 IfDefElse 写了一篇有趣的文章《ASIC 的设计成本》来回应我之前写的文章。不过,我觉得 IfDefElse 其实并不熟悉 ASIC 设计,所以文章里多有表述不准确之处。4 y/ f4 ~: K. f. B# s* @
. H9 U) b! V% z+ F4 P( j& a: N
在他们的文章里,IfDefElse 指出:6 ]9 i1 B6 N2 j5 t

5 U. O) G$ z+ @3 H5 HProgPoW 的哈希率是由两个因素决定的:计算核心以及内存带宽。这就是 Ethash 与 ProgPoW 存在区别的原因……
; r" e5 w- O2 D6 I9 J$ h( I6 ~0 ^% o' g( C* [9 b
在 ASIC 的世界里,这话是不对的。虽然 ProgPoW 中加入了很多数学方程以及合并函数(Merge Function,来提升计算过程中对计算机核心和内存的使用率,但 ASIC 芯片可以轻而易举实现这些方程(请看这篇文章:《仅带来1%能耗比提升的开源芯片设计》)。我们都知道,计算性能的增长符合摩尔定律,也就是说每 18 个月计算性能就会翻一番,但是,内存访问的性能远远落后于计算性能的进展。所以内存访问性能才是整个系统性能的瓶颈,这也就是所谓的 ”内存极限右墙“,如图一所示。! ~/ ?  g$ m- A3 c& J  {

. ^' l' P6 f. x3 Y2 \-图 1. 计算性能与存储性能之间的区别-在 ASIC 芯片中,计算问题是非常容易通过设计上的优化来解决的。无论是 Ethash 还是 ProgPoW,最根本的瓶颈始终是内存访问的带宽。GPU 芯片的表现也受内存右墙的限制,因为 GPU 是为通用计算而设计的,并不是为 Ethash 或 ProgPoW 而专门设计的。实际上,Ethash 的设计初衷就是用内存极限问题来限制计算效率。; B; s/ Q/ X. f5 K! J6 H- |. m
: u7 c& ~* e4 x7 W/ k. P; A
IfDefElse 还提到:
) l6 t( B3 A  C
8 @3 s% L3 p" G/ M* cProgPoW 和 Ethash 之间唯一的相似性就是在 DAG 在全局内存中的运用。从纯粹的计算角度出发,Ethash 只需要固定的 keccak_f1600 核心,以及一个求模方程。ProgPoW 则不同,既需要执行一个 16-lane 的随机数学序列,同时还得访问高带宽的 L1 缓存。设计一个可以运行 ProgPoW 数学序列的计算核心要比设计一个执行固定算法(比如 Keccak 函数)的核心要难得多了。
$ d+ ~5 i; Y9 b9 F' d& L
3 E, O$ ?% V2 _& F$ {- g5 n. g( @但在我一个芯片工程师来看,固定算法的电路实现是最容易设计的电路了,既不需要做硬件和软件之间的交互,也没有针对不同运算兼容性和普遍性的限制。Ethash 和 ProgPoW 中的函数都可以简单匹配成一套流程化的电路,而且性能相当不赖;逻辑电路的设计工作只需两周就能完成。但是 GUP 是通用芯片,既要考虑软硬件交互的问题,又需要保证普遍性,要设计指令、设计架构、开发模型,等等。想在半年内完成一款 GPU 芯片模型的设计都是不可能的事。
, D7 j8 i* G3 j) d- v$ s! ?% ~' f6 q
Innosilicon(芯动)和 Bitmain(比特大陆),甚至 linzhi(凛炙),可能都已经为原始的 Ethash ASIC矿机找到了一个成功的架构,我相信对他们的 ASIC 设计者来说,将 Ethash ASIC 升级到 ProgPoW 只需要几周时间。整个设计流程、封装、测试模块和计算模块都可以重用,所以他们很容易就可以升级。
' h- B6 `+ G' h9 T5 L! c" Z
, S2 P- F# G7 z; ?+ k, z4 yIfDefElse 还认为:
* U$ a$ L; z0 i7 [% z9 L4 L! u/ ~/ l  O& L# `) [3 X& }" ~
首先,带宽倍增之后,计算能力也需要倍增,所以这是线性上升的,没有谁具有优势。
4 M% A" u# b5 X0 i/ V# O  p1 P6 C& M' ~4 R8 t0 w
正如我们在上面说到的那样,ASIC 与 GPU 是不一样的。内存带宽而不是计算部分,才是 ASIC 的性能瓶颈。然而,用上了 GDDR6 内存,哪怕只是 8GB,ASIC 也会获得对 NV RTC1060 的 4 倍性能优势  u& k! ]' y2 _

% |( D$ ~6 H3 }# U3 P1 s& n$ _对于一款只有一个功能单元(functional unit)的芯片来说,更小的芯片面积的生产率会比大面积芯片更高。但对于现代 GPU 来说并非如此,因为今天的 GPU 用的是无数个非常微小、缺陷可忽略不计的重复单元,几乎可以任意组合(binnable)和恢复(recoverable)。只要每一个可二进制化功能单元都很小,那么大芯片的生产率可以跟使用更大功能单位的小面积芯片一样高,甚至更高。
7 Y( A, _/ I- Y& @: I7 W5 M. F# J
4 v8 R7 \: G+ KIfDefElse 上面的说法是不准确的。虽然在大芯片中使用冗余设计可以修复一些芯片并提高成品率,这些次级芯片中只有少量才能挽救下来。冗余和修复在 SRAM 生产中是很常用的,因为它逻辑比较简单而且结构上有很多重复单元。对计算逻辑单元来说,电路并不像 SRAM 那么简单。使用冗余设计意味着加入冗余的 SM 核心,或者类似的东西。这种冗余性必然回增大硅的面积,并因此拉高成本。对于 SRAM 来说,冗余一般会试成本提高 10%。而且,不是所有的失败可以用冗余核心来补救。只有预计算的失败(pre-calculated failure)才可以用冗余逻辑来修复。! {! C) U- C0 \( R3 d3 {

: Q" }2 D. t: L顺带说一句,从芯片区域估计一款芯片的成本是所有 ASCI 工程师的基本技能。从表 1 中可以看出,GPU 的成本可以基于硅晶片面积估算出来,可以看出成本和价格是相关的。& s' E: J, D, Y
8 ~+ P% C5 o4 d# F
. h; K4 {% ^5 D& F
如果芯片只是由计算单元组成的,那么低电压设计是可行的,比如 SHA256d 的 ASIC。一旦整合了其它模块,比如 SRAM(ProgPoW 数据缓存所必须的模块),低电压设计就变得非常难,甚至根本不可能。
. |7 T8 w& U, L- A" q$ \5 v
' |8 U) \* f5 I- [. G. N/ R2 X还是那句话,不够准确。SRAM 的电路结构如图 3 所示,由两部分组成:比特阵列(Bit Array)以及外围电路。比特阵列的工作电压可以降低到 0.55V,但它仅占 SRAM 功耗的 10%。外围电路的电压可以降低到 0.4V,但是构成了整体能耗的 90%。在 ASIC 芯片中,整个 SRAM 在能耗上的下降与节能是兼容的。因此,RrogPoW 的 ASIC 可以通过降低电压来大幅减少能耗,然后获得对 GPU 在能源效率上的 4 倍优势。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

落日余晖97 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    22