打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
为什么做深度学习的人很多都用Linux?

作为一个用了十五年Linux的算法工程师,我来回答下这个问题:

  • 首先说明下Linux的开源带来的核心优势

  • 接着分析Linux在深度学习单机环境配置的便捷性

  • 最后分析Linux在深度学习多机领域(服务器)的优势

结论,Linux是首选环境,对于绝大多数算法工程师来说是必选。

Linux的开源基因,相比Windows和Mac有众多优势

目前操作系统市场上基本就三家: Linux, Windows和Mac。 而Linux相比其他两家,最核心和最根本的不同,就是开源。(Linux的发明者, Linus的一句名言: Talk is cheap, Show me the code. 翻译过来就是: 废话少说,放码过来。)

简单说, GNU/Linux上的所有软件,源代码都是赤裸裸展现给用户的,而不是一个黑盒。开源性,使得全球码农研究、贡献代码贡献给Linux,带来的好处就是:

  • 高度稳定, 即使在低成本硬件上,也高度稳定。以我个人为例, 公司8G内存的笔记本,我用windows收邮件,每次启动卡的要死。最近自动更新失败,失败重试,再失败,再还原,重启个三四次,才能进入桌面。交给IT同事,最后给的结论是重装系统。而用Linux, 一如既往的稳定。
  • 终端工具,解放双手,使得执行效率提升。 举个例子, windows中鼠标点来点去,而linux中就是命令敲来敲去。前者不能复制,后者写个脚本,方便复制,甚至自动调度,可以每天每个固定时刻运行对应的程序。再比如, 一个apt命令,就可以安装、升级一个或一些列软件包。而不是想Windows 一样,每次都要手动下载,手动点击。
  • 服务器市场,Linux主导。免费、稳定,使得Linux在服务器市场份额巨大。
  • 社区支持。很多开发软件,tensorflow,torch,docker等,很多都是先支持Linux, 后期再考虑的windows的。

单机深度学习开发环境依赖于GPU, Linux配置速度极快

深度学习的网络中,各种矩阵运算,动不动就上千维的大矩阵运算,而 Nvidia的GPU能加速这些运算, 在卷积神经网络上的相比CPU能带来10倍甚至更高的速度提升。想想,训练一个网络,用CPU训练用30天,而用GPU只需2-3 天。现阶段的深度学习个人开发环境,严重依赖GPU。

目前深度学习两大阵营,Google的Tensorflow和facebook的pytorch。 pytorch自带cuda, 相对简单些,但google的tensorflow安装就底层硬件GPU 的配置环境,需要安装驱动、CUDA、加速库cudnn。以windows为例,安装这些软件,没那么简单,各种依赖关系,有人耗时几天,也不一定能搞定。而用Linux, 拷贝几个命令,分分钟能搞定。

最新Tensorflow 2.0的官网安装要求:

The following NVIDIA® software must be installed on your system:

  • NVIDIA® GPU drivers —CUDA 10.0 requires 410.x or higher.
  • CUDA® Toolkit —TensorFlow supports CUDA 10.0 (TensorFlow >= 1.13.0)
  • CUPTI ships with the CUDA Toolkit.
  • cuDNN SDK (>= 7.4.1)
  • (Optional) TensorRT 5.0 to improve latency and throughput for inference on some models.

官网的安装步骤,以Ubuntu 18.04 (CUDA 10)为例: 复制以下几个命令,安装就能完成:


对于Windows的安装说明,原文如下:

Windows setup
See the hardware requirements and software requirements listed above. Read the CUDA® install guide for Windows.
Make sure the installed NVIDIA software packages match the versions listed above. In particular, TensorFlow will not load without the cuDNN64_7.dll file. To use a different version, see the Windows build from source guide.

简单总结下,请看英伟达的官方CUDA Windows安装指南。(google工程师的言外之意, 可能是: 情况太复杂了, 你们还是找英伟达吧)

多机服务器环境配置,稳定性、免费性的Linux优势更突出

GPU价格不便宜,对于公司来说,每个人配置GPU不现实,也不经济,维护、使用效率也不高。配置GPU的服务器开发和生产环境是必选。每个深度学习算法工程师,相信都希望有一个单机多卡、多机多卡的服务器环境。

高效的训练环境,对学术和工业界都十分有利。最近深度学习的论文,好多都是在多机多卡上训练完成(当然Google有自家的TPU),所谓“大力出奇迹”,放进几百G的文本数据, 在Transformer网络稍微调整下,在服务器上跑个几周,效果就出来了。

众所周知, 服务器领域是Linux的天下。作为云环境的部署, 容器解决方案 Docker可谓是大名鼎鼎。Docker,是基于Linux的开发的,利用了linux内核的cgroups机制。所以,开始Docker是不支持Windows的。

深度学习的单机环境配置的效率,上一段已经讲过。对于几十台甚至几百几千台的服务器,用收费的Windows去配置,我想没有工程师会去做。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
配置深度学习tensorflow GPU版本
深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置)
一万元搭建深度学习系统:硬件、软件安装教程,以及性能测试
超详细配置教程:用Windows电脑训练深度学习模型
用Windows电脑训练深度学习模型?超详细配置教程来了
解密深度学习,从配置机器学习机器开始入门
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服