原作 Interogativ 郭一璞 编译 ,下面我们就来说一说关于pytorch如何加速?我们一起去了解并探讨一下这个问题吧!
pytorch如何加速
原作 Interogativ
郭一璞 编译
量子位 报道 | 公众号 QbitAI
英伟达Jetson Nano,作为老黄家最便宜的硬件,只要99美元。
看到便宜就想捡,拿到手里怎么玩?
造机器人、造小车、在家里DIY一个语音控制的窗帘,都得先装轮子。
如果你使用的框架是PyTorch,那你最好再装一个Fast.ai。
Fast.ai是在PyTorch上非常好用的深度学习库,来自MOOC平台Fast.ai,只要一个API,就包含了所有常见的深度学习应用。
那么,拿到Jetson Nano之后,如何把轮子部署上去呢?一位名叫Interogativ的用户就把用它运行PyTorch 1.0和Fast.ai 1.0的攻略发在了Fast.ai的论坛上,量子位全文编译如下:
英伟达Jetson Nano,配备了ARM Cortex A57处理器和4G内存,CUDA和PyTorch两者都可以在上面运行,这块开发板有难以置信的价值。
当然,你也可以用它来运行截至2019年4月最新最好的PyTorch和Fast.ai版本,这里是攻略。本攻略仅适用于Python 3,如果你没有Linux经验,不知道如何使用SSH,不知道IP网络的原理或者IP地址是什么,不建议用本攻略来安装。
软硬件准备1、花99美元买一块英伟达Jetson Nano,现在国内已经可以买到了,当然,价格会比99美元(665人民币)要贵一点。
2、一张64G的Micro SD卡,确保它是class 10或者更高级别。
△ SD卡速度等级,来自SD协会网站
3、USB键盘,就台式机上那种。
4、2.5Amp电源线,带一个Micro-USB插头。
5、一个HDMI或者DisplayPort连接线和显示器。
6、连网:以太网网线,无线路由器或者HUB,这块板子没有本机无线支持,所以请确保你能用有线网络。
7、能插Micro SD卡的PC,不能插SD卡的话你还需要准备读卡器。
8、可以创建SSH终端的PC软件,以及可以使用SSH传输文件的软件。如果你用Windows的话,我推荐Tera Term(免费)和WinSCP(免费),下载链接在文末。
9、把这些zip文件下载到你的PC上,下载链接请参见文末传送门。里面有作者Interogativ写的脚本,包括:
setup_swapfile.sh
fastai_jetson.sh
setup_Jupyter.sh
jetson_headless.sh
jupyter_notebook_config.py
当然,得记住你的存储路径。
可以开箱啦你的新板子到货之后,无视里面自带的纸架,找一些防静电的泡沫塑料,其他的防静电的材料也行,把你的板子放上去。
去文末传送门里复制英伟达开发者网站Jetson Nano开发套件指南的链接到浏览器打开,按照里面写的一步一步操作,确保:
1、下载带有SD卡映像的Nvidia zip文件。
2、按照说明把这些文件装到SD卡里。
3、将SD卡插入Nano,插上USB键盘、显示器和网线。
4、开机,接受各种许可协议之类的。
5、设置用户名密码,别忘了。
联网之后1、在网络设置里找到你Nano的IPV4地址,记下来,或者如果你懂IP网络的话,设置一个固定的IP地址。
2、用PC终端程序打开与Jetson Nano的SSH会话。
3、用文件传输软件把之前下载的zip文件传到Nano的用户主目录下。
4、通过SSH把你的PS和Nano的IP地址连起来。
5、从控制台或通过SSH连接,为刚刚下载的脚本设置执行权限:
1chmod x fastai_jetson.sh 2chmod x jetson_headless.sh 3chmod x setup_swapfile.sh 4chmod x setup_jupyter.sh
设置交换文件Nano只有4GB的RAM(GPU共享),你需要设置一个交换文件,如果已经有了就跳过此步骤。你可以从终端会话中运行setup_swapfile.sh:
/setup_swapfile.sh
确保这一步只进行一次,因为脚本里没写检查是否已设置,你可以执行以下操作检查是否设置了交换文件:
free
这时候你就应该看到创建了一个8GB的交换文件。
安装PyTorch和Fast.ai如果这会儿你就想安装标准的Fast.ai和PyTorch,那就装吧,反正装不上。
这会儿,标准的pip命令根本没法用,但是如果你只是运行fastai_jetson.sh脚本,就可以把俩都装上。这个过程需要几个小时,所以不用屏住呼吸。
/fastai_jetson.sh
安装Jupyter笔记本安装好Fast.ai后,它会告诉你:
Done with part1 – now logout, login again and run setup_jupyter.sh
这是因为Jupyter安装不会导出运行所需的shell变量。所以现在,关闭所有终端、SSH会话等,从图形界面重启Nano。重启完了就从图形界面打开终端,然后:
1、确保您下载的jupyter_notebook_config.py文件位于Nano的主目录中。
2、运行/setup_jupyter.sh。
/setup_jupyter.sh
这也得一阵儿,所以这里也不用屏住呼吸。
此脚本的最后一步需要Jupyter密码,记住:
不是Jupyter登录密码!
不是Jupyter登录密码!
不是Jupyter登录密码!
就是设置一个单独的密码,你可以用这个密码在你网络上的任何PC上登录Jupyter笔记本,设置好密码后记住它。
默认的Jupyter笔记本安装只能从控制台或图形界面登录,之前下载的修改后的jupyter_notebook_config.py文件和脚本安装可以从你网络上的任何计算机登录。
运行Jupyter笔记本的话,需要打开终端或SSH实例并运行:
jupyter notebook
如果它没有运行,可能是因为你没有退出后再次登录。
好了,现在你可以运行PyTorch和Fast.ai了。
但如果你像我一样,你不需要在Nano上使用图形界面,并且想把所有内存都拿来跑程序的话,就接着往下看。
关于Python,Pip和VirtualEnv一些有经验的Python用户习惯于虚拟环境(virtualenv,conda),它要求您在安装或运行软件之前激活“source activate”,我们现在还没安装,其中一个副作用是pip和Python命令将在活动环境中自动运行Python 3或pip 3。
你必须用pip3和Python3分别运行pip和Python。因此,如果你正在运行一些使用!python xyz的笔记本,除非你将代码更改为!python3 xyz,否则它将无效。
存储空间不是一切,但绝对非常重要:
过去,比如说2010年,4GB的内存很大。如果不在这块板子上跑GPU,那就足以让笔记本电脑运行良好(8 GB的交换文件有很大帮助)。但是你要想跑CUDA,那就没法在交换磁盘上运行,因此它占满了4GB的每个字节。
所以,为了省下一些存储空间,放弃图形界面吧,通过SSH用远程控制台操作。
现在,如果你准备好了,就找到最后一个脚本jetson_headless.sh,运行它,卸载图形界面,还能顺带清除300多M的不必要的软件包。
运行之后,重新启动,你就能拥有Nano控制台访问权限,现在机器只占用了大约378M的内存,留下了3.6G左右的空间可以运行PyTorch和Fast.ai。
1、运行
/jetson_headless.sh
2、重启,用SSH连接Nano。
最后说明一下,本文发布的2019年4月,这种方法是可以安装PyTorch 1.0和Fast.ai 1.0的,如果以后版本更新了或者需要装别的东西,欢迎去原文git repo~
传送门攻略原文:
http://forums.fast.ai/t/share-your-work-here/27676/1274
Tera Term
http://ttssh2.osdn.jp/index.html.en
WinSCP
http://winscp.net/eng/docs/lang:chs
zip文件下载链接:
http://gist.github.com/interogativ/4f5669dad3f9252a5709dc6844e12a29/archive/50845f5e9e8994eec78a4b27c6f23e4822ba00d7.zip
英伟达开发者网站Jetson Nano开发套件指南
http://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit
— 完 —
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态