GPU训练NN
今天配置了GPU,用来训练NN,本以为很简单,不就弄俩驱动装上嘛,但是也搞了不短时间,主要就是,版本不匹配,比较坑……
Tensorflow-gpu-1.7 + CUDA-9.0 + cuDNN-7.0 forCUDA-9.0
前面说了,配置过程中最坑的是版本问题,tensorflow-gpu用最新的没问题,CUDA我一开始用最新的9.1,下载安装配置好后编译提示版本不对(tensorflow 目前只支持9.0),卸载重装9.0。cuDNN用的和CUDA-9.0匹配,感觉没毛病,但是装好后编译又提示版本不对,网上一查都说cuDNN版本较低,纳闷,明明就是对应怎么会版本较低,下载与CUDA-9.1匹配的,果然还是版本不对。纠结半天又运行看了一下错误,发现是版本较高!!!what?……又去cuDNN官网看了一下版本,发现匹配CUDA-9.0的cuDNN不止一个版本,有7.1和7.0等版本……错误信息提示应该用7.0,卸载、重装,又熟练重复一遍配置操作,编译运行,ok,版本问题解决了……
突然,程序又卡住了,又是一堆错误,一查,显卡存储不足,我X,显卡型号满足,可以训练,但是你告诉我显存不够……没办法,想半天只能测试时把数据分批喂入神经网络,然后最后对几批数据测试的准确率求均值,改程序,nice,开始训练,一会儿一轮,一会儿又一轮,明显比CPU快多了……
经过对比,我的一个不大的CNN,且训练次数较少,CPU训练用了22min,GPU用了2min,快了10倍多,很正常……
训练FC网络时,发现GPU比CPU并没有快多少,确实GPU更适合深度学习,像CNN这种有大量卷积、矩阵运算的网络,GPU就是歪打正着正好很适合搞这个,Nvidia人品爆炸,已经超神了(新出的爆炸贵的GPU,可以说专为深度学习而生,时势造英雄……)
正常你的笔记本是肯定不够用的,配好的GPU的笔记本性价比太低,很贵,个人开发的话要么配台式,CPU+GPU都可以兑到高配i7-8+GPU1080,够了,且比笔记本划算得多。
当然,在学校里条件可以的话,实验室提供的服务器就很美滋滋了,顶配CPU+GPU(9999元以上,很正常)+内存,连上去跑程序,飞一般的感觉,确实比一个热得烫手的东西在你边上,风扇呼呼吹还没啥用爽多了……
附:CPU+GPU这个搭配,往下一点,和ARM+FPGA是类似的,GPU加速下PC机上NN训练很舒服,没错,类似的,当你在终端嵌入式产品上用FPGA加速NN时也很舒服,AI算法最终要落地实现,相比GPU的浮夸(成本、功耗),ARM+FPGA在未来是很不错的趋势(当然,ASIC还是最合适的,寒武纪,可以的……)