GPU,全称Graphics Processing Unit,图形处理器,最早诞生于上个世纪90年代初。随着计算机技术的发展,游戏领域开始出现3D游戏。和2D游戏相比,3D游戏能提供更真实的游戏体验,但它带来的一个问题就是,3D游戏的计算量和2D游戏相比大大增加。
于是问题来了:3D游戏加速的重担,究竟是让CPU来扛,还是让显卡来扛?
历史的重任还是交给了显卡,因为显卡本身承担着2D加速的任务,再加一个3D加速的功能可以让游戏玩家玩得更爽,因此,GPU,作为游戏加速的芯片,就加到了显卡中。
然而,上个世纪90年代,做GPU的都是业内赫赫有名的实力派显卡厂商,比如3dfx,Trident,ATI等,Nvidia只是众多不起眼的一个小厂商。当时3dfx推出的高性能3D加速卡Voodoo一度是游戏玩家的首选,并且他们还搞了一个Glide API作为3D加速的软件接口。在当时,3D加速接口除了Glide API,还有跨平台的OpenGL,以及微软自己的Direct3D。
Direct3D在最初很长一段时间都没有OpenGL流行,但Nvidia做了一个简单而重要的决定,即放弃支持其他的3D接口,全力支持微软的Direct3D。随着Direct3D的版本迭代并在游戏中应用越来越广泛,Nvidia的3D显卡逐渐成为市场的头号玩家,并于2000年收购了3dfx的大部分资产。
GPU,实际上诞生于90年代初,但GPU这个名字,直到1999年才由Nvidia为了推广它的GeForce256芯片才正式提出。
随着历史的行程来到2008年,中国人民正在喜迎奥运,美国人民也喜提次贷危机。此时,一个叫中本聪的神秘人物提出并设计开发了一种点对点的电子现金系统,他把这个系统命名为比特币。通过挖矿的形式,以强大的密码学理论为基础,比特币成为人类历史上第一个加密货币。挖矿,则是当时网络极客的一种行为艺术。
比特币和GPU看似不相关,但这个世界是万物互联的,冥冥中自有安排。在2010年,一位早期比特币持有者决定用1万个比特币买了两个披萨,这一史诗级事件让比特币第一次有了定价,即10000BTC=$25。
实际上披萨哥并不是普通人,他是早期比特币核心开发者。他有一台高性能游戏电脑,因为挖矿,披萨哥意识到GPU巨大的并行计算能力可以大大提高挖矿速度,所以,披萨哥编写了第一个GPU挖矿程序。由于GPU挖矿效率碾压CPU,大家迅速转向了GPU挖矿。但比特币的GPU挖矿并没有持续多久,就被ASIC挖矿取代了。
GPU并行算力虽然非常强大,但是它毕竟是为图形加速设计的,而比特币挖矿所需的SHA-256算法只能利用GPU的一小部分能力。如果设计一种专用的只能进行SHA-256并行计算的芯片,则可以大大提升挖矿效率。针对比特币挖矿的ASIC芯片最早诞生于2013年,迅速取代了GPU挖矿与FPGA挖矿。
虽然GPU很快不再用于比特币挖矿,但是又一个名叫Vitalik的小伙因为对比特币提出的改进不被社区接受,他决定开发一个新的区块链系统——以太坊。以太坊设计为与比特币类似的挖矿机制,但以太坊的挖矿算法不是简单的SHA-256,而是故意设计的一种极其消耗内存的Ethash算法,这使得针对以太坊的ASIC芯片因难产而迟迟不能面世。因为比特币的ASIC芯片对内存几乎没有需求,但以太坊的ASIC芯片如果加上巨大的内存那不就变成显卡了嘛,所以,GPU挖矿一直是以太坊矿工的主流选择。