雅典娜矿池(RRmine.com)黑科技揭秘(二)C2云化,GPU的最佳使用姿势

上篇雅典娜矿池(RRmine.com)黑科技解密(一)最安全的矿池资产管理方案推出后,大家都在抱怨,小编你写这个好难啊,读了半天都没读懂。小编认真反省,觉得说得有道理,是有点难了。所以,小编决定这篇文章换个思路,尽量简单明了地把雅典娜矿池(RRmine.com)的Commit2(以下简称C2)云化思路,给大家介绍清楚。首先,一如既往地感谢冰河实验室高级算法工程师王大爷对本文内容的大力支持。
言归正传,问题来了,C2是什么呢?这里有必要简单解释下。
Filecoin作为一个分布式存储项目,其核心作用是存储有效数据。为保证数据在分布式存储服务器中的安全完整和长期稳定存储,协议实验室为Filecoin网络设计了独特的证明机制——复制证明SDR;时空证明WindowPoSt/WinningPoSt。
而C2就是复制证明SDR下的最后一环,完整的SDR分为P1、P2、C1、C2。SDR和WindowPoSt/WinningPoSt的具体环节和在Filecoin网络中的作用,在冰河实验室文章《硬件科普|Filecoin挖矿硬件配置》里讲的很清楚,不了解的可自行翻阅。
1. 为什么C2可以云化?
在生成C2阶段,需要用到的主要硬件设备是GPU,因此,也可以把C2云化称之为云GPU。
为什么是C2云化?而不是把复制证明SDR中的其他环节云化呢?冰河实验室高级算法工程师王大爷介绍说:“从C1到C2的输入文件大概在10M左右,压缩后在8M左右。而C2的输出文件还不到100K。8M对于整个Filecoin的存储数据来说很小,要知道Filecoin的一个Window都是32G。”所以,8M大小是云化实现的前提条件。
 
2. C2云化——最大化GPU利用率和速度
C2环节一般需要花费20分钟——30分钟左右。在群雄逐鹿时代,许多厂商都在考虑如何优化自身算法,从而减少C2的时间。王大爷说:”我们的C2已经优化到13分钟,处于行业顶尖水平。”

但这样的优化结果,王大爷并不满足,“C2云化,我们雅典娜矿池(RRmine.com)已经完全实现了,机房没有专门的C2机器。在C1完成后,直接将文件丢到云端,再分配到各个机器上进行运算。这让我们的GPU利用率和速度达到了最大化,C2云化速度超普通优化近数倍。”说完这句话,王大爷暂停了一下,嘬了一口电子烟。

那么如何理解王大爷口中的GPU利用率和速度达到了最大化?
传统的Filecoin挖矿模式是单线程模式,包括协议实验室给出的方案。在复制证明SDR阶段,P1/P2/C1/C2是线性排列的。这会导致C2阶段的GPU利用效率低下,因为在Filecoin集群挖矿模式下,可能会出现部分机器C2运行速度慢,部分机器C2运行速度快,带来时间差,影响了GPU的使用效率。
冰河实验室的C2云化模式采用的是多线程并发“抢单模式”。比如,一个云端的C2机器有4张显卡(一般情况下,我们所说的显卡=GPU),这个时候只有1个C2任务传输到该机器,那么4张显卡将会共同完成该任务。在完成任务过程中,还可以添加其他C2任务。如果一张显卡提前完成C2,可以无缝切换其他C2任务,免去时间差。“抢单模式”发挥出GPU极致效率,最大化C2速度,提高了整体封装效率。这便是C2云化的概念。
在为小编滔滔不绝地普及后,王大爷身子往椅子靠了靠,一种属于技术控的光辉萦绕在他身旁,久久未曾散去。黑科技系列未完待续………….