搭建低成本的机器学习系统,GTX950/960足矣

最近搭建自己的机器学习平台跑一些小实验,看网上(知乎)各种大神的回复一定要上Tesla架构的K40,K80之流的,深感知乎的装13气氛。

其实当前搭建机器学习平台,可能有9成是要用来跑Tensorflow,所以要想成本低,我们从各个方面满足Tensorflow的底线就可以了。

要跑Tensorflow,一个重要门槛就是显卡的Compute Capability。Tensorflow官方要求的是3.0,参考官方文档。不过看stackoverflow上抱怨的,默认安装的Tensorflow需要最低的CC是3.5,如果用3.0的显卡可能需要特别配置。所以,在NVidia官方列表中,尽可能选择Compute Capability高(高于等于5.0)的显卡,基本上可选择范围就是从GTX 950到GTX  1080之间,加上TITAN X。

下面我们来看看闲鱼上相应显卡(二手)的价格:(为什么要闲鱼?低成本啊难道还要买新的?)

Titan X:上万了

GTX 1080:4000

这俩都不用考虑了

GTX 1050:1000

再往下

GTX 960 (4G) :800左右

GTX 950 (2G):600左右

这么看来,如果是个人跑跑实验,其实二手GTX950就差不多了。如果需要显存大就用960。真要有production级别的要跑,还是找单位申请资源吧。


下面是我在GTX 950和Azure云上的K80上跑CIFAR-10的性能数据对比:

GTX950:

2016-12-0622:44:04.522231: step 999960, loss = 0.15 (1110.0 examples/sec; 0.115sec/batch)

2016-12-0622:44:05.656540: step 999970, loss = 0.12 (1155.5 examples/sec; 0.111sec/batch)

2016-12-0622:44:06.794353: step 999980, loss = 0.11 (1127.8 examples/sec; 0.113sec/batch)

2016-12-0622:44:07.935796: step 999990, loss = 0.17 (1200.5 examples/sec; 0.107sec/batch)

GTX950的信息

搭建低成本的机器学习系统,GTX950/960足矣_第1张图片

Azure的K80 (K80一块卡有2个GPU,Azure上的虚拟机只使用其中一个GPU):

2016-12-0505:07:11.700220: step 2390, loss = 1.37 (830.5 examples/sec; 0.154 sec/batch)

2016-12-0505:07:13.299182: step 2400, loss = 1.36 (794.5 examples/sec; 0.161 sec/batch)

2016-12-0505:07:15.158027: step 2410, loss = 1.42 (884.1 examples/sec; 0.145 sec/batch)

2016-12-0505:07:16.771681: step 2420, loss = 1.46 (753.8 examples/sec; 0.170 sec/batch)

K80的信息

搭建低成本的机器学习系统,GTX950/960足矣_第2张图片


而用CPU的话,性能惨不忍睹:

2016-12-0801:37:51.446112: step 20, loss = 4.64 (370.9 examples/sec; 0.345 sec/batch)

2016-12-0801:37:54.999149: step 30, loss = 4.62 (365.6 examples/sec; 0.350 sec/batch)

2016-12-0801:37:58.550736: step 40, loss = 4.60 (346.0 examples/sec; 0.370 sec/batch)


最后总结一下,个人学习ML,动手做些实验,二手GTX9X0几百块即可解决问题,如果真需要大显存跑大网络,用AWS的按时付费的虚拟机即可,或者用公司和学校的正经机器学习系统。不要再为了学习买个高级显卡,最后全部用来打游戏了...




你可能感兴趣的:(搭建低成本的机器学习系统,GTX950/960足矣)