网易首页 > 网易号 > 正文 申请入驻

在TPU上运行PyTorch的技巧总结

0
分享至

TPU芯片介绍

Google定制的打机器学习专用晶片称之为TPU(Tensor Processing Unit),Google在其自家称,由于TPU专为机器学习所运行,得以较传统CPU、 GPU降低精度,在计算所需的电晶体数量上,自然可以减少,也因此,可从电晶体中挤出更多效能,每秒执行更复杂、强大的机器学习模组,并加速模组的运用,使得使用者更快得到答案,Google最早是计划用FPGA的,但是财大气粗,考虑到自己的特殊应用,就招了很多牛人来做专用芯片TPU。

TPUs已经针对TensorFlow进行了优化,并且主要用于TensorFlow。但是Kaggle和谷歌在它的一些比赛中分发了免费的TPU时间,并且一个人不会简单地改变他最喜欢的框架,所以这是一个关于我在GCP上用TPU训练PyTorch模型的经验的备忘录(大部分是成功的)。

PyTorch/XLA是允许这样做的项目。它仍在积极的开发中,问题得到了解决。希望在不久的将来,运行它的体验会更加顺畅,一些bug会得到修复,最佳实践也会得到更好的交流。

https://github.com/pytorch/xla

设置

这里有两种方法可以获得TPU的使用权

GCP计算引擎虚拟机与预构建的PyTorch/XLA映像并按照PyTorch/XLA github页面上的“使用预构建的计算VM映像”部分进行设置。

或者使用最简单的方法,使用google的colab笔记本可以获得免费的tpu使用。

针对一kaggle的比赛您可以在虚拟机上使用以下代码复制Kaggle API令牌并使用它下载竞争数据。还可以使用gsutil cp将文件复制回GS bucket。

gcloud auth logingsutil cp gs://bucket-name/kaggle-keys/kaggle.json ~/.kagglechmod 600 ~/.kaggle/kaggle.jsonkaggle competitions download -c recursion-cellular-image-classification

除了谷歌存储之外,我还使用github存储库将数据和代码从我的本地机器传输到GCP虚拟机,然后再返回。

注意,在TPU节点上也有运行的软件版本。它必须匹配您在VM上使用的conda环境。由于PyTorch/XLA目前正在积极开发中,我使用最新的TPU版本:

使用TPU训练

让我们看看代码。PyTorch/XLA有自己的多核运行方式,由于TPUs是多核的,您希望利用它。但在你这样做之前,你可能想要把你的模型中的device = ' cuda '替换为

import torch_xla_py.xla_model as xm...device = xm.xla_device()...xm.optimizer_step(optimizer)xm.mark_step()

仅在TPU的一个核上测试您的模型。上面代码片段中的最后两行替换了常规的optimizer.step()调用。

对于多核训练,PyTorch/XLA使用它自己的并行类。在这里的测试目录中可以找到一个使用并行训练循环的示例(https://github.com/pytorch/xla/blob/master/test/testtrainmnist.py)

我想强调与它相关的以下三点。

1) DataParallel并行持有模型对象的副本(每个TPU设备一个),并以相同的权重保持同步。你可以通过访问其中一个模型进行保存,因为权重都是同步的:

torch.save(model_parallel._models[0].state_dict(), filepath)

每个并行内核必须运行相同批数量,并且只允许运行完整批。因此,每个历元在小于100%的样本下运行,剩余部分被忽略。对于数据集变换,这对于训练循环来说不是大问题,但对于推理来说却是个问题。如前所述,我只能使用单核运行进行推理。

直接在jupyter笔记本上运行的DataParallel代码对我来说非常不稳定。它可能运行一段时间,但随后会抛出系统错误、内核崩溃。运行它作为一个脚本似乎是稳定的,所以我们使用以下命令进行转换

!jupyter nbconvert --to script MyModel.ipynb!python MyModel.py

工作的局限性

PyTorch/XLA的设计导致了一系列PyTorch功能的限制。事实上,这些限制一般适用于TPU设备,并且显然也适用于TensorFlow模型,至少部分适用。具体地说

张量形状在迭代之间是相同的,这也限制了mask的使用。

应避免步骤之间具有不同迭代次数的循环。

不遵循准则会导致(严重)性能下降。 不幸的是,在损失函数中,我需要同时使用掩码和循环。 就我而言,我将所有内容都移到了CPU上,现在速度要快得多。 只需对所有张量执行 my_tensor.cpu().detach().numpy() 即可。 当然,它不适用于需要跟踪梯度的张量,并且由于迁移到CPU而导致自身速度降低。

我的Kaggle比赛队友Yuval Reina非常同意分享他的机器配置和训练速度,以便在本节中进行比较。 我还为笔记本添加了一列(这是一台物理机),但它与这些重量级对象不匹配,并且在其上运行的代码未针对性能进行优化。

网络的输入是具有6个通道的512 x 512图像。 我们测量了在训练循环中每秒处理的图像,根据该指标,所描述的TPU配置要比Tesla V100好得多。

如上所述(不带DataParallel)的单核TPU的性能为每秒26张图像,比所有8个核在一起的速度慢约4倍。

由于竞争仍在进行中,我们没有透露Yuval使用的体系结构,但其大小与resnet50并没有太大差异。 但是请注意,由于我们没有运行相同的架构,因此比较是不公平的。

尝试将训练映像切换到GCP SSD磁盘并不能提高性能。

总结

总而言之,我在PyTorch / XLA方面的经验参差不齐。 我遇到了多个错误/工件(此处未全部提及),现有文档和示例受到限制,并且TPU固有的局限性对于更具创意的体系结构而言可能过于严格。 另一方面,它大部分都可以工作,并且当它工作时性能很好。

最后,最重要的一点是,别忘了在完成后停止GCP VM!

作者:Zahar Chikishev

deephub翻译组

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
香港再无董建华

香港再无董建华

华人星光
2025-11-25 12:01:27
《飞驰人生3》大爆:除了灵魂人物沈腾,这7位“鲜肉”功劳也不小

《飞驰人生3》大爆:除了灵魂人物沈腾,这7位“鲜肉”功劳也不小

扒点半吃瓜
2026-02-22 07:00:09
为什么老一辈说财不外露?网友 :炫耀了一下,就带着全家跪下借钱

为什么老一辈说财不外露?网友 :炫耀了一下,就带着全家跪下借钱

夜深爱杂谈
2026-01-10 23:00:25
领先11分后开始摆烂!最后5分钟一分未得,被轰18-0如愿输球

领先11分后开始摆烂!最后5分钟一分未得,被轰18-0如愿输球

体坛小李
2026-02-23 07:37:03
你经历过道德绑架吗?网友:事实证明没有道德就不会被绑架

你经历过道德绑架吗?网友:事实证明没有道德就不会被绑架

带你感受人间冷暖
2026-02-21 19:12:24
刚签完离婚协议,婆婆立马回去装指纹锁,我笑着发信息:房子是我的!

刚签完离婚协议,婆婆立马回去装指纹锁,我笑着发信息:房子是我的!

新时代的两性情感
2026-02-23 22:23:28
完了,全完了。澳门英皇宫殿一年净亏2.48亿,彻底崩了。

完了,全完了。澳门英皇宫殿一年净亏2.48亿,彻底崩了。

流苏晚晴
2026-02-12 17:03:00
爱奇艺独播!任素汐、王骁领衔缉毒刑侦大剧《除恶》,实力派加盟

爱奇艺独播!任素汐、王骁领衔缉毒刑侦大剧《除恶》,实力派加盟

乐枫电影
2026-02-21 13:14:47
外交部:美方此举是在干涉中国内政!

外交部:美方此举是在干涉中国内政!

极目新闻
2026-02-23 21:57:05
2026年的保命策略:在这3个地方,主动选择装穷

2026年的保命策略:在这3个地方,主动选择装穷

舒山有鹿
2026-02-21 10:48:07
一位7年护工自白:只要老人进了养老院,九成以上就再也回不了家

一位7年护工自白:只要老人进了养老院,九成以上就再也回不了家

天天热点见闻
2026-02-22 13:33:02
最近的电车起火,辩解很有趣,都不是电池起火,是外因导致

最近的电车起火,辩解很有趣,都不是电池起火,是外因导致

柏铭锐谈
2026-02-23 07:56:14
拿1亿合同,从夺冠核心滑落到局外人!该退役了,你把名声打没了

拿1亿合同,从夺冠核心滑落到局外人!该退役了,你把名声打没了

老梁体育漫谈
2026-02-23 23:25:03
胡春华发表署名文章

胡春华发表署名文章

社评
2025-10-31 10:11:37
年初二,章小蕙挤地铁被偶遇,穿10万香奈儿也难掩灰头土脸的样子

年初二,章小蕙挤地铁被偶遇,穿10万香奈儿也难掩灰头土脸的样子

乡野小珥
2026-02-21 13:18:28
特朗普的愤怒在升级!日本表忠心,白宫高官:随时可对中国加关税

特朗普的愤怒在升级!日本表忠心,白宫高官:随时可对中国加关税

顾蔡卫
2026-02-23 21:39:11
平顶山打人夫妻结婚照曝光:男的酷似昆山龙哥,女的刻薄像燕冬萍

平顶山打人夫妻结婚照曝光:男的酷似昆山龙哥,女的刻薄像燕冬萍

江山挥笔
2026-02-22 09:48:58
惨遭30多国围攻,美国紧急警告中国:别在特朗普最惨的时候捅刀子

惨遭30多国围攻,美国紧急警告中国:别在特朗普最惨的时候捅刀子

阿天爱旅行
2026-02-23 17:21:46
江西女子用公驴器官泡酒,三个月后给丈夫喝,不料发生意外

江西女子用公驴器官泡酒,三个月后给丈夫喝,不料发生意外

古怪奇谈录
2025-06-28 13:49:02
《镖人》看懂知世郎的过往,才知老莫为何要刀马护送知世郎回长安

《镖人》看懂知世郎的过往,才知老莫为何要刀马护送知世郎回长安

小七追剧站
2026-02-20 22:02:24
2026-02-24 02:03:00
deephub incentive-icons
deephub
CV NLP和数据挖掘知识
1929文章数 1456关注度
往期回顾 全部

科技要闻

智谱、MiniMax合计蒸发近千亿市值,为何?

头条要闻

墨西哥最大毒枭被击毙:喜欢杀人灭门 几乎没人看见过他

头条要闻

墨西哥最大毒枭被击毙:喜欢杀人灭门 几乎没人看见过他

体育要闻

哈登版骑士首败:雷霆的冠军课

娱乐要闻

那艺娜账号被禁止关注,视频已清空!

财经要闻

美国海关将停止征收被裁定违法的关税

汽车要闻

续航1810km!smart精灵#6 EHD超级电混2026年上市

态度原创

旅游
游戏
健康
亲子
军事航空

旅游要闻

文化中国行|在祖国最北的地方 过温暖团圆年

海盗PvE生存冒险《风启之旅》Steam愿望单破100万

转头就晕的耳石症,能开车上班吗?

亲子要闻

孩子长得慢长得矮,查查这四项

军事要闻

美军重兵集结蓄力作战之际 新一轮美伊谈判时间“敲定”

无障碍浏览 进入关怀版