从零搭建FPGA区块链运算机——ASIC、GPU、FPGA对比

从零搭建FPGA区块链运算机——ASIC、GPU、FPGA对比

开源!开源!开源!
只分享技术!只分享技术!只分享技术!

2020年末到2021年初,区块链技术被持续看好,各路英雄好汉涌入,导致游戏显卡的需求和价格暴增。这使得我只能给新攒的电脑配一张50元亮机卡,苟且偷生。显卡奸商们的唯利是图,让我和我的小伙伴愤愤不平,决定根据自身所学,使用FPGA做个区块链运算机。以寻求区块链运算机需求分流,显卡价格下降的“曲线救卡”路线,或者说是一种充满希望的尝试。

在项目的前期,我们在网上查阅了大量的相关资料。其中更多是对区块链原理科普性质的介绍,鲜有从零搭建FPGA区块链运算机的技术分享。我们只好逐步摸索,制定了区块链运算机三步走策略。终于历经半年,我们逐步实现了纯软件的基于Python3的CPU区块链运算机,基于FPGA的1.0区块链运算机,还有现在想和大家分享的基于FPGA的2.0区块链运算机(后面简称FPGA运算机)。

三步走策略的第一步是最难的,这里主要想感谢GitHub上ricmoo大神开源的基于Python2的CPU区块链运算机工程(https://github.com/ricmoo/nightminer)。它很好地帮助我们了解了整个区块链运算的流程。我们也将其升级到了Python3的版本,尽可能多地添加了中文注释,并分享给大家(https://github.com/WF-2021/BTC-Miner)。

我们想把整个区块链运算机搭建的过程分享出来,一个是分享我们独立做出FPGA运算机的喜悦,另一个是希望给想要了解区块链,以及想要自己搭建区块链运算机的朋友一些参考和交流的机会,尽可能帮助大家少走弯路。

我们FPGA运算机的硬件部分,使用Vivado2019.2开发环境,和Xilinx公司CX7A100T的FPGA实现,而软件部分使用Python3实现。目前使用SHA-256加密算法,可实现100MHash/s的算力。这是我们在该型号FPGA下,可实现的最高算力(也希望有大神可以提供更好的改进建议)。使用Vivado2019.2进行功耗评估,其功耗约为0.5W,算力功耗比约为200MHash/sW

同时我们也查阅了相关GPU在区块链中的算力(https://technical.city/en/video/bitcoin-rating)。可以看到,主流显卡的算力虽然很高,但是功耗也很高。算力功耗比最高不会超过6MHash/sW。在这个方面,我们的FPGA运算机是主流显卡的约33倍,具有绝对的优势。
在这里插入图片描述
当然,对于使用SHA-256加密算法的区块链运算机来说,ASIC是绝对的霸主,我们以蚂蚁区块链运算机DR5 35T版本为例,其算力为35THash/s,功耗为1610W,算力功耗比约为21739MHash/sW。这是我们的FPGA运算机的100多倍
在这里插入图片描述
综上,从算力和功耗的角度分析,ASIC >> FPGA >> GPU。这是芯片的设计初衷所导致的。ASIC专为特定加密算法的区块链而设计,不能实现其他功能;FPGA相比于ASIC具有可编程性,牺牲了一些性能;GPU本身是做图形处理的,只是因为核多和并行计算,才用来搭建区块链。

从硬件成本的角度讲,ASIC和GPU都具有很完整的产品供应链,性价比都很高。而FPGA在区块链运算这个行业,更多是技术验证,没有形成完整的产品供应链,所以性价比要低很多,没有任何“曲线救卡”的可能性的。但我们认为技术验证才是FPGA的定位,所以前面才说是“一种充满希望的尝试”。

我们希望以多篇连载的方式分享整个区块链运算机的搭建过程,一个是因为我们的业余时间都很少。另一个是我在给小伙伴讲解其中的设计思路时,发现有很多问题不是一两句能说明白的。如果我们力争用一篇万字长文,把算法原理、设计思路和搭建实现都和大家说清楚是不可能的。所以也希望感兴趣的朋友可以保持关注。像对区块链运算非常感兴趣,已经按耐不住的朋友,我们也提前将FPGA区块链运算机的开源工程连接放在了这里(https://github.com/WF-2021/BTC_FPGA_MINER),它仅需符合BSD开源协议即可被二次开发。

后面我们会从区块链算法原理、FPGA设计实现(主要)、Python3上位机设计实现和集成联调这几方面,和大家分享,敬请期待。

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
GPU(图形处理器)是最早开始用作AI处理的芯片之一。GPU被用于加速深度学习中的大规模矩阵计算。它可以处理数百甚至数千个并行计算任务,提供了高度并行的处理能力。GPU的缺点是它只能进行一般计算,而不是针对特定任务进行优化。 FPGA(现场可编程逻辑门阵列)是一种可编程的硬件,它允许不同类型的算法被编程到同一硬件上。FPGA具有高度并行的处理能力,因此它们可以用于加速各种不同类型的AI应用,包括器学习和数据分析。相较于GPUFPGA具有更高的能效和更好的节能性。 ASIC(专用集成电路)是一种专门为一项任务而设计的芯片。ASIC很好用于特别重要的AI任务,例如在需要进行高质量图像处理的情况下,通过使用ASIC优化算法,可以提高计算效率,并且大大降低延迟。ASIC通常比其他AI芯片更快、更高效,但也更昂贵。 TPU(张量处理单元)是专门为深度学习而设计的ASIC芯片。通过优化对张量运算的支持,谷歌公司创造了这一芯片。TPU卡片可以取代GPU来优化器学习模型的训练和执行。与其他AI芯片相比,TPU的能效更好,但价格更高。 综上所述,推荐使用哪种芯片将取决于需要执行的任务以及实际需求。每种芯片都有优点和缺点,适用于各种不同类型的AI应用。为了取得最佳性能并保证开发成本的最小化,需要对系统的结构和性能需求进行深入思考。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值