芯片工程来看ProgPoW
落日余晖97
post on 2023-1-1 10:27:09
24
0
0
不管是 ProgPow 算法还是 ETHash 算法,算力都是由外部 DRAM 的存储带宽决定的。也就是说
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 矿机。
ASIC 矿机可以基于 GDDR6 和 HBM2 显存采用很多优化方法。其中一种是,在 ASIC 矿机中添加比 GPU 多的 GDDR6/HBM2 显存单元。以 Nvidia 的 2080 显卡为例,配备的是 8GB GDDR6 显存,运转速率为 14Gbps ,总带宽(BW)达 8 * 14 * 32/8 = 448Gbps。根据 ProgPoW 算法的带宽需求来算,哈希率(hashrate)理论上应该达到
hashrate = BW/64/256 = 27.3Mh/s考虑到存储效率的影响,实际值应该为 25.5Mh/s 。ASIC 生产商可以使用小一点的 GDDR6 内存条,这样相比 GPU 就有了成本上的优势。采用 16 个 GDDR6 4GB 内存条可以在保持 GDDR6 成本不变的同时实现 2 倍带宽。在这种情况下,带宽可达到 16 * 14 * 32/8 = 896Gbps ,哈希率理论上可达到
hahsrate = 896Gbps/256/64 = 54.6Mh/s哈希率也翻了一番。但是,4GB GDDR6 芯片的面积只有 8GB GDDR6 芯片的一半。因此,前者的价格比后者低了 60% 多。GDDR6 芯片的总成本见下表一。
现在,以 Nvidia 的 RTX2080 显卡为例,我们来看一下 GPU 芯片的内部结构,见 Nvidia 显卡介绍的图一。
-图一:Nvidia RTX2080 显卡的架构-RTX2080 显卡内部有很多模块,占据了很大一部分芯片面积,而且对 ProgPow 算法毫无用处。这些模块包括 PCIE、NVLINK、L2Cache 、3072 个着色单元、64 个 ROP 和 192 个 TMU 等等。ASIC 矿机生产商可以去掉这些图形功能,将这部分芯片面积进行优化,用于 ProgPow 算法,可以将 Nvidia 的 RTX2080 芯片面积减少大约 2/3 。
这样一来,生产一个 RTX2080 显卡所用的硅晶片数量可以生产出 3 个ASIC 芯片。也就是说,ASIC 芯片的成本就只是 RTX2080 显卡的 1/3 。
跟大芯片相比,小芯片的收益率更高,封装和测试所需的成本更低。收益率的计算公式为:
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 的耗电量是可以通过降低电压来减少的。根据欧姆定律,电功率与电压的平方成正比:
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 倍。如表二所示。
-表二:GPU 和 ProgPoW ASIC 的功率效率对比-此外,设计 GPU 所需的研发投入要高得多,无论是人力还是时间成本。作为一种通用计算芯片,GPU 通常需要 12 个月来进行设计、制造和测试,而且需要针对不同的计算场景投入大量硬件模拟和软件开发工作。相比之下,ProgPoW ASIC 在设计和测试方面的成本要低得多,只需要一个经验丰富的 IC 设计师团队花 2 个月的时间进行设计,6 周的时间进行制造,以及 2 周的时间进行测试即可。因此,ProgPoW ASIC 只需 3 至 4 个月的时间就可以投入量产。对于比特大陆和 Innosilicon 这样的矿机研发公司来说,他们已经有过生产 ETHash ASIC 矿机的经验,只要在原有的设计基础上融入 ProgPoW 算法,就可以轻而易举地生产出 ProgPoW ASIC 。
像 Nvidia 这样的 GPU 生产商雇佣了近 8000 人来开发较为复杂的 GPU ,而像 Linzhi 这样的 ASIC 生产商仅雇佣了十几个人来开发 ETHash ASIC 矿机。两类公司在人力成本上就有 100 倍的差距。相比 GPU ,ASIC 在成本和上市速度上占尽了优势。
总之,如果采用了 ProgPoW 算法,未来势必会出现 ProgPoW ASIC ,而且只需要 3 至 4 个月就能实现量产。而且,ProgPoW ASIC 在成本和功率效率方面起码是 GPU 的 4 倍。绕了一圈之后,我们还是得面对同一个问题:为什么要采用 ProgPoW 算法,为什么要抵制 ASIC 挖矿?
ProgPoW 后续:ASIC 的研发成本很高兴看到 IfDefElse 写了一篇有趣的文章《ASIC 的设计成本》来回应我之前写的文章。不过,我觉得 IfDefElse 其实并不熟悉 ASIC 设计,所以文章里多有表述不准确之处。
在他们的文章里,IfDefElse 指出:
ProgPoW 的哈希率是由两个因素决定的:计算核心以及内存带宽。这就是 Ethash 与 ProgPoW 存在区别的原因……
在 ASIC 的世界里,这话是不对的。虽然 ProgPoW 中加入了很多数学方程以及合并函数(Merge Function,来提升计算过程中对计算机核心和内存的使用率,但 ASIC 芯片可以轻而易举实现这些方程(请看这篇文章:《仅带来1%能耗比提升的开源芯片设计》)。我们都知道,计算性能的增长符合摩尔定律,也就是说每 18 个月计算性能就会翻一番,但是,内存访问的性能远远落后于计算性能的进展。所以内存访问性能才是整个系统性能的瓶颈,这也就是所谓的 ”内存极限右墙“,如图一所示。
-图 1. 计算性能与存储性能之间的区别-在 ASIC 芯片中,计算问题是非常容易通过设计上的优化来解决的。无论是 Ethash 还是 ProgPoW,最根本的瓶颈始终是内存访问的带宽。GPU 芯片的表现也受内存右墙的限制,因为 GPU 是为通用计算而设计的,并不是为 Ethash 或 ProgPoW 而专门设计的。实际上,Ethash 的设计初衷就是用内存极限问题来限制计算效率。
IfDefElse 还提到:
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 只需要几周时间。整个设计流程、封装、测试模块和计算模块都可以重用,所以他们很容易就可以升级。
IfDefElse 还认为:
首先,带宽倍增之后,计算能力也需要倍增,所以这是线性上升的,没有谁具有优势。
正如我们在上面说到的那样,ASIC 与 GPU 是不一样的。内存带宽而不是计算部分,才是 ASIC 的性能瓶颈。然而,用上了 GDDR6 内存,哪怕只是 8GB,ASIC 也会获得对 NV RTC1060 的 4 倍性能优势
对于一款只有一个功能单元(functional unit)的芯片来说,更小的芯片面积的生产率会比大面积芯片更高。但对于现代 GPU 来说并非如此,因为今天的 GPU 用的是无数个非常微小、缺陷可忽略不计的重复单元,几乎可以任意组合(binnable)和恢复(recoverable)。只要每一个可二进制化功能单元都很小,那么大芯片的生产率可以跟使用更大功能单位的小面积芯片一样高,甚至更高。
IfDefElse 上面的说法是不准确的。虽然在大芯片中使用冗余设计可以修复一些芯片并提高成品率,这些次级芯片中只有少量才能挽救下来。冗余和修复在 SRAM 生产中是很常用的,因为它逻辑比较简单而且结构上有很多重复单元。对计算逻辑单元来说,电路并不像 SRAM 那么简单。使用冗余设计意味着加入冗余的 SM 核心,或者类似的东西。这种冗余性必然回增大硅的面积,并因此拉高成本。对于 SRAM 来说,冗余一般会试成本提高 10%。而且,不是所有的失败可以用冗余核心来补救。只有预计算的失败(pre-calculated failure)才可以用冗余逻辑来修复。
顺带说一句,从芯片区域估计一款芯片的成本是所有 ASCI 工程师的基本技能。从表 1 中可以看出,GPU 的成本可以基于硅晶片面积估算出来,可以看出成本和价格是相关的。
如果芯片只是由计算单元组成的,那么低电压设计是可行的,比如 SHA256d 的 ASIC。一旦整合了其它模块,比如 SRAM(ProgPoW 数据缓存所必须的模块),低电压设计就变得非常难,甚至根本不可能。
还是那句话,不够准确。SRAM 的电路结构如图 3 所示,由两部分组成:比特阵列(Bit Array)以及外围电路。比特阵列的工作电压可以降低到 0.55V,但它仅占 SRAM 功耗的 10%。外围电路的电压可以降低到 0.4V,但是构成了整体能耗的 90%。在 ASIC 芯片中,整个 SRAM 在能耗上的下降与节能是兼容的。因此,RrogPoW 的 ASIC 可以通过降低电压来大幅减少能耗,然后获得对 GPU 在能源效率上的 4 倍优势。
BitMere.com is Information release platform,just provides information storage space services.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
Write the first review