使用张量流和多个GPU进行即时并行超参数扫描

时间:2016-11-22 12:59:27

标签: tensorflow gpu

我在想是否可以使用tensorflow在多个GPU卡上并行地在相对较小的数据上训练多个小模型(通过在单个图形中以“独立”的方式放置它们)。这对于快速超参数扫描非常有用。

我天真的期望是,只要模型和数据适合卡存储器,就应该几乎不会将执行时间与模型数量相关联。

我使用了带有4张Tesla K80卡的系统来测试它。模型以循环方式放置在GPU上(第一个模型 - GPU0,第二个 - GPU1,......,第五个 - GPU0再次)。 4个独立的数据副本也放在GPU上。我看到执行时间与模型数量的依赖性如下:

enter image description here

从类似步骤的行为看,一张卡片能够适应一个模型(当某个卡上放置一个额外的模型时,我们会在图上“加强”)。我知道如何才能达到理想的性能(即只要卡片内存不饱和,就不会对所安装的模型数量的执行时间产生依赖性)?

更多信息:

  • nvidia-smi为每张卡提供了354 MB内存利用率(当模型拟合与gpu_options.allow_growth = True运行时),因此剩余大量可用内存

  • 源代码(改编自tensorflow udacity课程)可在https://github.com/fruboes/parallel-small-models上使用 - 为简化而训练相同的模型

0 个答案:

没有答案