芯片工程来看ProgPoW
落日余晖97
发表于 2023-1-1 10:27:09
121
0
0
不管是 ProgPow 算法还是 ETHash 算法,算力都是由外部 DRAM 的存储带宽决定的。也就是说5 f" x6 ? \5 y& Z, L9 s
' M& ?+ D$ i ?2 m' q. B* Y4 B
Hashrate = k*BW (哈希算力 = k * 总带宽)(其中 k 是常量,ETHash 和 ProgPoW 算法使用的 k 值不同。)
所以说,要想在 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 矿机。/ E0 `( n/ t) R1 b# f& C% a
# c) T4 ]5 Q3 c5 w/ a5 C+ z. G+ f
ASIC 矿机可以基于 GDDR6 和 HBM2 显存采用很多优化方法。其中一种是,在 ASIC 矿机中添加比 GPU 多的 GDDR6/HBM2 显存单元。以 Nvidia 的 2080 显卡为例,配备的是 8GB GDDR6 显存,运转速率为 14Gbps ,总带宽(BW)达 8 * 14 * 32/8 = 448Gbps。根据 ProgPoW 算法的带宽需求来算,哈希率(hashrate)理论上应该达到9 G2 K2 q6 N9 [: _7 b/ R( ~9 ^
4 [1 w) S- k9 O& g+ ?. N
hashrate = BW/64/256 = 27.3Mh/s考虑到存储效率的影响,实际值应该为 25.5Mh/s 。ASIC 生产商可以使用小一点的 GDDR6 内存条,这样相比 GPU 就有了成本上的优势。采用 16 个 GDDR6 4GB 内存条可以在保持 GDDR6 成本不变的同时实现 2 倍带宽。在这种情况下,带宽可达到 16 * 14 * 32/8 = 896Gbps ,哈希率理论上可达到
: M2 K$ T# s7 M/ B6 s& @7 }. C
hahsrate = 896Gbps/256/64 = 54.6Mh/s哈希率也翻了一番。但是,4GB GDDR6 芯片的面积只有 8GB GDDR6 芯片的一半。因此,前者的价格比后者低了 60% 多。GDDR6 芯片的总成本见下表一。
现在,以 Nvidia 的 RTX2080 显卡为例,我们来看一下 GPU 芯片的内部结构,见 Nvidia 显卡介绍的图一。
2 }; o$ y. ~; w. M
-图一:Nvidia RTX2080 显卡的架构-RTX2080 显卡内部有很多模块,占据了很大一部分芯片面积,而且对 ProgPow 算法毫无用处。这些模块包括 PCIE、NVLINK、L2Cache 、3072 个着色单元、64 个 ROP 和 192 个 TMU 等等。ASIC 矿机生产商可以去掉这些图形功能,将这部分芯片面积进行优化,用于 ProgPow 算法,可以将 Nvidia 的 RTX2080 芯片面积减少大约 2/3 。
5 I! ?: x w% j
这样一来,生产一个 RTX2080 显卡所用的硅晶片数量可以生产出 3 个ASIC 芯片。也就是说,ASIC 芯片的成本就只是 RTX2080 显卡的 1/3 。
跟大芯片相比,小芯片的收益率更高,封装和测试所需的成本更低。收益率的计算公式为:8 O6 I- G/ z P* L
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 的成本。
-表一:商用 CPU 和 ProgPOW ASIC 的对比-就耗电量而言,商用 GPU 在 0.8 V 的正常电压下要比 ProgPOW ASIC 高得多。不过,ProgPoW ASIC 的耗电量是可以通过降低电压来减少的。根据欧姆定律,电功率与电压的平方成正比:$ A5 P6 W6 J0 h9 m" |
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 倍。如表二所示。; H9 n% y7 e4 D) F
$ m. r( Y& P) N7 g% V; a
-表二:GPU 和 ProgPoW ASIC 的功率效率对比-此外,设计 GPU 所需的研发投入要高得多,无论是人力还是时间成本。作为一种通用计算芯片,GPU 通常需要 12 个月来进行设计、制造和测试,而且需要针对不同的计算场景投入大量硬件模拟和软件开发工作。相比之下,ProgPoW ASIC 在设计和测试方面的成本要低得多,只需要一个经验丰富的 IC 设计师团队花 2 个月的时间进行设计,6 周的时间进行制造,以及 2 周的时间进行测试即可。因此,ProgPoW ASIC 只需 3 至 4 个月的时间就可以投入量产。对于比特大陆和 Innosilicon 这样的矿机研发公司来说,他们已经有过生产 ETHash ASIC 矿机的经验,只要在原有的设计基础上融入 ProgPoW 算法,就可以轻而易举地生产出 ProgPoW ASIC 。; d. }6 n9 }. \, `) M* r
9 N k' l G/ E
像 Nvidia 这样的 GPU 生产商雇佣了近 8000 人来开发较为复杂的 GPU ,而像 Linzhi 这样的 ASIC 生产商仅雇佣了十几个人来开发 ETHash ASIC 矿机。两类公司在人力成本上就有 100 倍的差距。相比 GPU ,ASIC 在成本和上市速度上占尽了优势。
0 U2 h$ W/ w- i1 g6 ^
总之,如果采用了 ProgPoW 算法,未来势必会出现 ProgPoW ASIC ,而且只需要 3 至 4 个月就能实现量产。而且,ProgPoW ASIC 在成本和功率效率方面起码是 GPU 的 4 倍。绕了一圈之后,我们还是得面对同一个问题:为什么要采用 ProgPoW 算法,为什么要抵制 ASIC 挖矿?
, B. j- B2 X0 l- A" ^& ]& o
ProgPoW 后续:ASIC 的研发成本很高兴看到 IfDefElse 写了一篇有趣的文章《ASIC 的设计成本》来回应我之前写的文章。不过,我觉得 IfDefElse 其实并不熟悉 ASIC 设计,所以文章里多有表述不准确之处。
' H! F. Q5 F) s) ^' l1 U
在他们的文章里,IfDefElse 指出:# Z3 W" p- Y# z1 o
ProgPoW 的哈希率是由两个因素决定的:计算核心以及内存带宽。这就是 Ethash 与 ProgPoW 存在区别的原因……
' s- Q! g: A) o D8 T
在 ASIC 的世界里,这话是不对的。虽然 ProgPoW 中加入了很多数学方程以及合并函数(Merge Function,来提升计算过程中对计算机核心和内存的使用率,但 ASIC 芯片可以轻而易举实现这些方程(请看这篇文章:《仅带来1%能耗比提升的开源芯片设计》)。我们都知道,计算性能的增长符合摩尔定律,也就是说每 18 个月计算性能就会翻一番,但是,内存访问的性能远远落后于计算性能的进展。所以内存访问性能才是整个系统性能的瓶颈,这也就是所谓的 ”内存极限右墙“,如图一所示。
+ C) k$ ^+ }1 B% @! `" F
-图 1. 计算性能与存储性能之间的区别-在 ASIC 芯片中,计算问题是非常容易通过设计上的优化来解决的。无论是 Ethash 还是 ProgPoW,最根本的瓶颈始终是内存访问的带宽。GPU 芯片的表现也受内存右墙的限制,因为 GPU 是为通用计算而设计的,并不是为 Ethash 或 ProgPoW 而专门设计的。实际上,Ethash 的设计初衷就是用内存极限问题来限制计算效率。
IfDefElse 还提到:2 d4 C% c) l" f! ~3 F" W; P2 G
ProgPoW 和 Ethash 之间唯一的相似性就是在 DAG 在全局内存中的运用。从纯粹的计算角度出发,Ethash 只需要固定的 keccak_f1600 核心,以及一个求模方程。ProgPoW 则不同,既需要执行一个 16-lane 的随机数学序列,同时还得访问高带宽的 L1 缓存。设计一个可以运行 ProgPoW 数学序列的计算核心要比设计一个执行固定算法(比如 Keccak 函数)的核心要难得多了。
但在我一个芯片工程师来看,固定算法的电路实现是最容易设计的电路了,既不需要做硬件和软件之间的交互,也没有针对不同运算兼容性和普遍性的限制。Ethash 和 ProgPoW 中的函数都可以简单匹配成一套流程化的电路,而且性能相当不赖;逻辑电路的设计工作只需两周就能完成。但是 GUP 是通用芯片,既要考虑软硬件交互的问题,又需要保证普遍性,要设计指令、设计架构、开发模型,等等。想在半年内完成一款 GPU 芯片模型的设计都是不可能的事。
Innosilicon(芯动)和 Bitmain(比特大陆),甚至 linzhi(凛炙),可能都已经为原始的 Ethash ASIC矿机找到了一个成功的架构,我相信对他们的 ASIC 设计者来说,将 Ethash ASIC 升级到 ProgPoW 只需要几周时间。整个设计流程、封装、测试模块和计算模块都可以重用,所以他们很容易就可以升级。: W3 s( c! w5 y, m% t4 P9 S
IfDefElse 还认为:; t& \3 {) O' K. b) X" k+ G
首先,带宽倍增之后,计算能力也需要倍增,所以这是线性上升的,没有谁具有优势。
正如我们在上面说到的那样,ASIC 与 GPU 是不一样的。内存带宽而不是计算部分,才是 ASIC 的性能瓶颈。然而,用上了 GDDR6 内存,哪怕只是 8GB,ASIC 也会获得对 NV RTC1060 的 4 倍性能优势
$ n% h& I% w. Q/ c3 E
对于一款只有一个功能单元(functional unit)的芯片来说,更小的芯片面积的生产率会比大面积芯片更高。但对于现代 GPU 来说并非如此,因为今天的 GPU 用的是无数个非常微小、缺陷可忽略不计的重复单元,几乎可以任意组合(binnable)和恢复(recoverable)。只要每一个可二进制化功能单元都很小,那么大芯片的生产率可以跟使用更大功能单位的小面积芯片一样高,甚至更高。
( o1 N) e8 P4 X, s( B- F
IfDefElse 上面的说法是不准确的。虽然在大芯片中使用冗余设计可以修复一些芯片并提高成品率,这些次级芯片中只有少量才能挽救下来。冗余和修复在 SRAM 生产中是很常用的,因为它逻辑比较简单而且结构上有很多重复单元。对计算逻辑单元来说,电路并不像 SRAM 那么简单。使用冗余设计意味着加入冗余的 SM 核心,或者类似的东西。这种冗余性必然回增大硅的面积,并因此拉高成本。对于 SRAM 来说,冗余一般会试成本提高 10%。而且,不是所有的失败可以用冗余核心来补救。只有预计算的失败(pre-calculated failure)才可以用冗余逻辑来修复。, e9 @$ |* D, C0 }
7 n( w: K+ B6 r3 N" _, F$ _ B
顺带说一句,从芯片区域估计一款芯片的成本是所有 ASCI 工程师的基本技能。从表 1 中可以看出,GPU 的成本可以基于硅晶片面积估算出来,可以看出成本和价格是相关的。9 z+ o3 i: v, _, V! ?
- ~/ h2 g1 g* B" [# H: K* `, A$ J
2 I* l+ G. C- q- K
如果芯片只是由计算单元组成的,那么低电压设计是可行的,比如 SHA256d 的 ASIC。一旦整合了其它模块,比如 SRAM(ProgPoW 数据缓存所必须的模块),低电压设计就变得非常难,甚至根本不可能。
还是那句话,不够准确。SRAM 的电路结构如图 3 所示,由两部分组成:比特阵列(Bit Array)以及外围电路。比特阵列的工作电压可以降低到 0.55V,但它仅占 SRAM 功耗的 10%。外围电路的电压可以降低到 0.4V,但是构成了整体能耗的 90%。在 ASIC 芯片中,整个 SRAM 在能耗上的下降与节能是兼容的。因此,RrogPoW 的 ASIC 可以通过降低电压来大幅减少能耗,然后获得对 GPU 在能源效率上的 4 倍优势。
成为第一个吐槽的人