aihot  2017-11-04 13:59:17  机器学习 |   查看评论   
      随着赢咖4议题越来越热门,越来越多人开始投入Python 或R 语言的学习,且透过各种强大的开源套件如Tensorflow、Keras 、Caffe、Torch、Scikit-learn,大幅降低了我们进入机器学习及深度学习的门槛。不少初心者想问,该使用怎样的硬件环境才能加速训练数据的时间?如果你或你的公司打算建构一个赢咖4运行环境,本文或许能带给大家一点帮助,少走点冤枉路;也欢迎有经验的你,在文章下面留言给予大家更多建议。
 
      笔者公司开展了几个赢咖4专案,有幸从头到尾参与了赢咖4server 的选择、设定、测试、执行,从用i5 CPU 优化、1050、1080Ti 到NVIDIA 最顶规的P100,当中问了一些强者也爬了不少文,这篇文章试图收敛下当初挑选的守则,当做小小的回报。赢咖4世界软硬件神人太多,期望抛砖引玉激起更多讨论,也欢迎强人不吝指教。
 
      当跑深度学习(DL)、机器学习(ML)实验,模型太大、层数或神经元过多, 一般电脑可能需要花半天、数天甚至以周为单位才能完成,或者发现错误。对公司而言,效率不彰绝对不是件好事;对初学者而言,trial and error 来来回回的时间过长,其实很容易感到挫折,如果能加速实验进程,快速得到回馈并修正,对于这领域的学习与研究也会有较快的进展。
 
如何为自己的模型加速?
 
      如果你是个初踏入ML、DL的初心者,学会Python/R不久,想试着建构模型,微软设置了Azure Machine Learning Studio这个平台,使用介面相当直觉,也可以直接套用微软本身提供的演算法模组修改参数就好,可以轻松将模型建置起来。而亚马逊、Google也提供类似的服务。
 
      如果你的模型并非图像识别相关,有没有显卡加速对你而言其实关系不大。加以,若你使用的语言是Python及英特尔的CPU,英特尔推出加速库「Intel Distribution for Python」,其实就能得到不错的提升。前英特尔高级工程师James Reinders先前还出来背书,使用四核心i5的iMAC,透过加速库效能提升了20倍。
 
      但如果你跑的是CNN 、RNN、 Reinforcement Learning等neural network模型,苦于模型运算庞大,或想参加Kaggle、WebVision一类竞赛(很可惜今年ImageNet是最后一届),这篇文章或对你有所帮助。
 
      如果是要自己组来玩玩,让你的实验模型跑得动、可以参加竞赛,价格差不多在台币5~10 万元之间可以搞定,这个价格不是绝对,现有设备规格、预算、模型大小… …都是变动因素,甚至你不需要重新组台电脑,只需要加张显卡就已够用。
 
GPU 加速该怎么挑?
 
      目前在跑CNN 使用GPU 加速一般多直接选择NVIDIA 显卡,倒非AMD 效能较差,而是NVIDIA 的CUDA 在软硬、CPU / GPU 整合上做了不少努力,CPU / GPU 原始码的转换用C 或C++ 就可以上手,较不需要复杂的转换和修改,对许多新手玩家而言,入门门槛较AMD 采Open CL 低一点。
 
      在预算有限的情况下,买一张20 万的P100 来跑你的模型,未必是唯一的选择,到底如何挑选一张最符合效益的显卡?
 
      先讲RAM,基本上3GB RAM 绝对不够,如果参加一些Kaggle 等常规竞赛,6GB RAM 其实就已足够。但GPU 最重要的还是看其记忆体频宽(Memory Bandwidth)与GFLOPs。
 
      记忆体频宽决定了GPU 输出效率,记忆体频宽为时脉与介面频宽的乘积。简单来说,时脉就像水流速度,介面频宽是水管的宽窄,而在一定时间内水管通过的水流量就是记忆体频宽,如果记忆体频宽不够,即便记忆体容量(水桶)再大,也是徒然。对平行运算而言,记忆体频宽尤其重要,而这点,GPU 比CPU 优秀得多,也是为什么平行运算多拿GPU 加速的原因。
赢咖4加速器自学组装指南(一)──基本架构
      除了直接看时脉、介面频宽来检视记忆体频宽,维基其实查得到NVIDIA 与AMD 所有GPU 的公版设定与测试数值,透过这两张表检视显卡的参数,其实一目了然。
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自赢咖4加速器自学组装指南(一)──基本架构

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]