近日,Reddit 上有开发者发现,他的 Colab 环境在执行训练任务时不太一样了。在训练任务中,Colab 显示正在使用的设备是英伟达的特斯拉 P100 GPU,版本是 PCIE 16G 内存版。
该网友在 Reddit 上发帖询问后,Colab 可使用免费 P100 GPU 的消息得到了确认。
之前,机器之心曾介绍过如何使用 Colab 上的算力资源。在今年 4 月份,Colab 将 GPU 从古董级别的 K80 升级到了 Tesla T4,这一种图灵架构的新 GPU 非常适合做低精度的推断,训练也比 K80 快了很多。如今,Colab 再一次开放 P100,今年已经是两次硬件升级了。
机器之心也立即验证了一下,当我们选择采用 GPU 加速后,打印出来的确实是 Tesla P100 GPU。
P100 到底有多强
T4 在深度学习计算中能够很好地平衡训练和推理之间的需求,成本相比 V100 也低很多。但是本次 Colab 将算力升级到 P100,可以说是相当顶尖的 GPU 了。
更何况,这些都是免费的。现在,如果要正常使用这些算力,恐怕也不是一个小数目。如上所示,机器之心从谷歌云官网上查到了现在 GPU 算力的价格。表中,T4 需要的每小时 1.03 美元/训练单元。而 P100 则高达 1.6 美元每小时/训练单元。
看起来没省多少钱?要知道,用一个 P100 GPU 在 ImageNet 上训练一个 ResNet-50 就要差不多一天多的时间(参考 DAWNBench)。如果不中断的话,这也需要 40 多美元,在 Colab 上,这笔钱就可以省掉了。
P100 的算力究竟有多强?可以说,这是目前深度学习领域相当有性价比的一款 GPU 了。从 2017 年发布以来,P100 已经成为了很多科研机构和企业进行模型训练的标配。相比于 K80 等 GPU,P100 在性能上有明显优势。
英伟达官网上 K80 和 P100 的性能对比。
P100 的相关参数。
尽管 T4 相比 K80 是个不小的进步,但是 P100 依然比前两者都要强很多,这足以说明 Colab 本次的福利相当值了。
Colab,远比你想象中的要强
很多开发者在使用 Colab 时,总会抱怨时不时的终止,抱怨每一次结束后所有包和文件都会删除。但实际上,除了科学上网,其它很多问题都能解决,谷歌的 Colab 远比我们想象的要强。首先不说它对各种框架的支持,它在 TPU 和 GPU 等各种硬件上也提供了很多免费资源,更不用说与 Google Drive 联动而保存各种数据了。
首先最大一个问题是 Colab 会断,但小编用过很多次,差不多每次只要保证页面不关闭,连续运行十多个小时是没问题的。按照我们的经验,最好是在北京时间上午 9 点多开始运行,因为这个时候北美刚过凌晨 12 点,连续运行时间更长一些。像 T4 或 P100 这样的 GPU,连续运行 10 多个小时已经是很划算了,即使复杂的模型也能得到初步训练。
那么如果断了呢?这就要考虑加载 Google Drive 了。Colab 非常好的一点是能与谷歌云硬盘互动,也就是说等训练一些 Epoch 后,可以将模型保存在云端硬盘,这样就能做到持久化训练。每当 Colab 断了时,我们可以从云端硬盘读取保存的模型,并继续训练。
如上两行代码可以将谷歌云硬盘加载到远程实例的「content/drive」目录下,后面各种模型操作与数据集操作都可以在这个目录下完成,即使 Colab 断了连接,所有操作的内容也会保存在谷歌云盘。
只要搞定上面两个小技巧,Colab 的实用性就很强了。当然,如果读者发现分配的 GPU 是 K80,你可以重新启动几次 Colab,即释放内存和本地文件的重新启动,每一次重启都会重新分配 GPU 硬件,你可以「等到」P100。
除了最主要的框架和算力支持,Colab 还有很多更有意思的功能。比如说用个魔术符号「%」调用 TensorBoard、黑暗系代码主题、文件浏览和操作系统,以及最近才更新的 Pandas DataFrame 可视化操作。
Colab 的表格数据扩展,它允许对 Pandas 的 DataFrame 进行可视化的排序和过滤等操作。
随着 Colab 支持越来越强大的计算力、提供越来越多的功能和组件,对于很难获得足够算力的初学者与学生,它将会是非常好的一个开放性工具。