租刀
我平常不玩游戏,考虑到轻薄的电脑搬家时更方便带,一直没有买带GPU的台式机。哪怕后来在家里DIY的东西越来越多,树莓派上跑不动了,我也只是买了个企业里淘汰下来的挂显示器背面用的迷你主机当服务器——广告图片里比高尔夫球还薄,放书架上和两本书差不多大。
然而读书人终归是需要用到GPU的。几个月前科研项目突然间涉及无人机,我自告奋勇负责拼装调试,但我以前只飞过国产廉价遥控无人机,对现代化开源飞控固件不熟悉,需要在模拟器里练练手。微软提供了一款基于Unreal Engine的无人机飞行模拟器AirSim,号称精确模拟螺旋桨气流的物理模型,也可以和PX4飞控固件的软件模拟器对接。只是AirSim需要GPU,不管多差的都行,就是不能没有。
公款玩无人机已经足够有罪恶感了,我实在不想再公款买台式机,于是我不得不找有GPU的服务器。近年来随着深度学习变得火爆,有一大堆人需要在网上租GPU跑training,这样的公司一搜一大堆,价格也都差不多;然而这些租来的GPU服务器预装的系统都没有自带图形界面——事实证明把图形界面装好不难,但伺候好Unreal Engine并看到输出的3D画面还是太难了。免费用学校集群里的GPU同理。于是我把目光转向了方兴未艾的云游戏行业,然后惊讶的发现他们帮我解决了全部问题,不但可以看到高清低延迟画面,而且价格还便宜。其中一家公司一个月只收15美金,按照市场价算,一个月能用上50小时GPU就已经赚回来了。
经过了一番折腾,我总算是把云端运行的AirSim、PX4飞控模拟器和本地的QGroundControl、Steam手柄全部连起来,在虚拟的小镇公园地图里四处乱飞,掌握平衡。经过许多训练之后,我开始尝试在现实中飞行,渐渐的我也可以熟练的在室内把无人机从地毯上飞到沙发上了。
俗话说磨刀不误砍柴功。我很清楚GPU主要的用途是训练神经网络(而不是玩游戏),于是趁暑假比较闲,也在租来的服务器环境里把Nvidia的一整套软件都装了一轮,调试好了用显卡加速深度学习训练。虽然这时候柴都还不知道在哪,我还是得仔细维护一下租来的刀。
事实证明这个公司的定价策略非常高明。只要顾客不是死宅,怎么可能平均每天玩两个小时游戏?我起初觉得GPU不拿来玩游戏太浪费,欣赏了一下GTA5的剧情,之后也不再登录了。我每个月交着月租费,却用不到一两个小时的GPU,亏大了。
时间过的很快,新学期来临时我把无人机移交给了学妹,学校装好位置追踪系统的专业室内飞行场地搭建好了,我也不再需要在模拟器里或者在沙发上飞无人机。暑假期间我还顺便做了一下Nvidia发来的GPU导师培训课,学了一些底层CUDA语法,感觉在各路高级语言都支持CUDA后端的今天根本没机会写。租来的服务器也逐渐被我淡忘,只记得中间那个公司破产了一次,被欧洲最大云计算公司老板出面收购之后月租费翻倍了。然而我一直没舍得把服务器取消,理智上我其实并不在乎游戏存档,可能是潜意识里还记着自己磨好的刀。
最近这两天我突然又需要GPU了。朋友闲聊时产生的创意需要我帮忙实现一下,用一些训练好的神经网络先做迁移学习,再在一些图片上跑deep dreaming和style transfer。我首先打开的是Colab,写代码、训练、画图一切顺利。然而Google毕竟不是慈善家,今天的Colab比当年鸡贼多了,不交保护费不能好好用。免费版Colab加入了好多限制,不再能连续跑12个小时,加上每次重启数据都被清空,要重新上传自己的数据集,体验实在很差。我甚至在连续调试一个下午之后直接用完了某种配额,不能再开GPU,不得不换一个Google账号打开Colab才能接着训练。然而我实在懒得再去搭别的服务器、安装各种环境,便抱着“能凑合用就先用”的心理忍了两天。
这时候我猛然想起来,我在那个云游戏公司的服务器上早就搭好了环境,不但独占GPU随便训练,而且绝对没人会删我的数据。我立刻把各种代码和数据复制上去。或许是云游戏的服务器相比于普通的数据中心服务器对高负载优化过,即便是同年代的GPU,训练跑得都快不少。这边跑着代码,那边还可以看着图形界面里的任务管理器,体验很不错,一个下午就把我要跑的各种实验都跑完了。
事实证明租来的刀也可以磨得很利,磨好了舍不得扔啊。看来下台笔记本也未必非得有GPU。
发表回复