第44章 GPU的妙用
作者:马了个甲   学霸的AI系统最新章节     
    深夜的宿舍内,只有三人起伏的鼾声。

    齐凡逛遍外网各大技术论坛,还有各类论文数据库,以及各种大小期刊数据库。

    他发现一个可悲的现实--没人想过要用gpu来跑深度学习模型。

    所谓的深度学习,就是n层神经网络的叠加。就好比是千层糕,每一层神经网络就相当于千层糕中的一层。于是一层又一层的神经网络叠加,这块千层糕就越来高。相对来说,就是神经网络的深度越来越深。

    因此,采用多层神经网络的模型才会被称为深度学习模型。

    而神经网络层数越多,模型的深度越深,势必就会带来运算量的增加。

    虽然深度学习的概念早就被提出了,可是碍于cpu运算能力的限制,也就是碍于硬件能力的限制,一直没得到长足发展。

    齐凡好奇。既然cpu的运算量能力不足,那干嘛不上超算,搞它个一堆cpu。众人拾柴火焰高,几百个cpu一块运算,就不信这还不够。

    正在他好奇之间,脑海中的系统面板有了变化。

    【任务--开启并行计算。奖励:经验、积分、一次中级转盘奖励。】

    齐凡嘴角邪魅一笑。他如今对这系统的尿性已经有十足了解。每当自己接触新东西时,就会触发这系统的提示。

    既然眼下系统提示了,那说明自己的路子就是正确的。

    并行计算?多核cpu还是用gpu?

    齐凡查了下多核cpu的现状。除了那些被当成国之重器的超级计算机,一般的服务器撑死了十几个cpu就不得了了。

    这系统不可能指引自己去碰超级计算机的,因为那玩意儿根本就不是如今的自己能触碰的。况且这任务的奖励是一次中级转盘,从奖励来看也不是难于上青天的任务。

    那也就只有两种可能。用多核心服务器或者是用gpu。

    齐凡先查了下cpu和gpu的运算原理。cpu和gpu相比,前者更像是串行计算,就是一条条数据排着队一次被cpu处理。而gpu则不同,它可以让格式雷同的数据,排排站手牵手并排地被它处理。

    多核心的cpu本身并未改变cpu的计算方式,只是相当于多找了些帮手。一个核心的cpu就是一個帮手,多核心cpu相当于一群人一起干活,但是每个人干活的方式却并未改变。

    那答案就呼之欲出了,肯定是用gpu来支持并行计算。

    而眼下遗憾的是,齐凡并未在网上找到任何相关的资料。不过呢,这既是他的麻烦,也是他的机会。

    因为没人做过,他就成了那个第一个吃螃蟹的人。

    齐凡当即上英威达的官网,下载了gtx680的底层库。他打算动手自己写。

    这底层库非常不好找,在英威达官网极其角落的地方。或许连英威达官方都觉得不会有人拿显卡来跑图形计算以外的工作。底层库被打开后,也证实了这一点。

    整个底层库的应用介绍中,全部都是关于图形计算的。齐凡无奈吐槽:可怕的惯性思维,待我来给你们一点小小的震撼。

    贤者饮料被大口大口的灌下,齐凡快速检索着底层库的英文文档。

    这显卡底层库的设计初衷,是给photoshop和cad等绘图软件用的。因而提供的接口文档简直稀烂。英威达官方就没打算给个人开发者使用,而对于photoshop那类大公司产品,英威达自然会派专业工程师负责对接。

    齐凡猜测,英威达肯定不会给那些大公司也提供这种晦涩难懂的破文档。这放在官网上的底层库鬼知道是什么垃圾版本,弄不好是bug一堆。可无奈,他眼下只好先凑合拿来用用。因为他要是给英威达官方发邮件,对方肯定不会鸟他。

    临近拂晓,齐凡总算用c++写了个英威达显卡的python接口库。测试了下,果然bug一堆。而且细看那些bug,很多都是无厘头,在文档上找不到半点信息的。

    无奈,齐凡只好想了个折中的办法--跑去github吐槽。

    齐凡登录github账号。自己的那个去除马赛克项目又涨了不少start和评论。

    他灵机一动,正好利用这波小热度。

    于是他fork了一个去除马赛克2.0版本。

    很多人都在呼吁他出2.0版本,现在2.0版本来了。

    齐凡写了个项目介绍。

    “hello,everyone.v2.0iscoming.”

    “igotagoodideal,wecanusedeaplearningwithgpuforthiswork.”

    “now,allwhatineedisthefuckingnvidiacouldoffertheircompletebasiclib.”

    齐凡的意思是:他打算用gpu加持深度学习来出去除马赛克的第二版,现在万事俱备只欠东风,他需要英威达的完整底层库。

    齐凡项目刚创建,他的这个新项目就上了github首页推荐。然后项目第一条评论来自github官方维护人员。

    “it‘sawonderfulideal,benefitingallhumanity.”(这是一个造福全人类的伟大创意)

    齐凡只能感慨:果然有些东西是可以跨越种族和文化的界限。

    完成这一整套操作后,齐凡拖着疲惫的身躯爬上床睡觉。

    当他醒来时,宿舍已经空无一人。手机上的时间显示是下午一点。微信上自然少不了李月的消息。

    齐凡先给李月回了个电话,告诉对方自己还活着。然后洗漱完毕去食堂吃饭。

    至于实验楼那边,许阳三人按着先前齐凡的思路按部就班,齐凡以近日课业繁忙为借口,最近都不打算再去了。

    回到宿舍后,齐凡第一件事自然是登录github。

    我擦。他一声惊呼。

    新创建的v2.0版本,一行代码都没有,只有一个项目介绍文件,可竟然一夜之间就获得了上千个点赞。

    来自世界各地的屌丝们,对于齐凡用深度学习来去除马赛克的想法,佩服的五体投地。他们给齐凡升级了外号。

    原先齐凡的外号是drivermaster,简称dm。如今他的外号是:rocketdriver,简称rd。

    大致意思是:齐凡的车速像火箭一样快,让众人始料未及。

    全球各大技术公司的cto们,往往都在github这个顶尖开源网站上有账号,英威达的cto也不例外。

    于是,英威达的cto被一群人at。

    “offeryourfuckingbasiclib,orwewillkickyourass.”

    “yeah,rightnow,ifudon‘twanttosuckmydick.”

    来自世界各地的屌丝们情绪高涨,嚷嚷着让英威达cto快点吧完整的底层库交出来,否则就要他好看。

    在一众技术屌丝们的狂轰滥炸之下,英威达cto总算现身了。因为他要是再不现身,都有人号称要去英威达总部和他决斗。

    最后,齐凡真的收到了来自英威达cto个人邮箱发来的一封邮件。

    邮件附件包含了最新的英威达显卡底层库,而且对方还表示:有任何问题都可以给他写邮件反馈。同时对方还向齐凡发来了一份实习邀请。因为齐凡在github的个人简介中有提到自己的年龄和教育背景。

    齐凡当然是先感谢了对方的帮助,然后婉拒了英威达cto的实习邀约。因为他觉得自己如今的实力还不够,正是需要学习的时候。况且,远渡重洋好麻烦的。护照、路费,一堆的问题要解决。

    齐凡将最新的底层库下载下来,果然一下子就少了很多bug,他当即投入到了编码工作中。