我想使用TF2.0在我的GPU集群上运行分布式预测。我用镜像策略训练了一个由Keras制作的CNN,并保存了它。我可以加载模型并在其上使用.predict(),但我想知道这是否会使用可用的GPU自动进行分布式预测。如果没有,我如何运行分布式预测来加速推理并使用所有可用的GPU内存
目前,在运行许多大型预测时,我的一个GPU(12gb)的内存(需要17gb),推断失败,因为内存不足:
Allocator (GPU_0_bfc) ran out of memory trying to allocate 1.12GiB
但我有多个GPU,我也想使用它们的内存。谢谢
我能够将单个工人、多个GPU的预测组合在一起,如下所示(将其视为一个草图-它使用的管道代码通常不适用,但应该为您提供一个模板):
这确实会在GPU之间分配负载,但不幸的是,它们的使用非常糟糕——在我的特殊情况下,相应的单个GPU代码运行时间约为12小时,运行时间为7.7小时,因此即使是2倍的加速,也不会有8倍的GPU数量
我认为这主要是一个数据传输问题,但我不知道如何解决它。希望其他人能提供一些更好的见解
相关问题 更多 >
编程相关推荐