MXNET GPU支持中的多处理

时间:2019-10-16 06:50:07

标签: python multiprocessing mxnet

我有一个受mxnet gpu支持训练的模型,并将此模型加载到gpu上。我的问题是当我进行多进程处理时,我得到一个无效的指针错误。如何在mxnet gpu支持下进行多处理?

1 个答案:

答案 0 :(得分:1)

MXNet用C ++编写,并且在相关时本机使用并行性。您几乎不需要手动进行显式多处理。您可以对CPU主导的数据传输操作(胶粘剂num_workers中的DataLoaders)或发送inference payloads to an array of contexts such as here时使用并行性,但是当面对单个上下文(例如单个GPU)时,我不会认为CUDA似乎无法在多处理中挣扎(请参阅herehere),

相反,我建议通过以下方式尽可能利用本机MXNet和CUDA并行性:

  • CPU:在训练模式下使用经过多处理的DataLoader(通过num_workers
  • GPU:将批处理发送到GPU。在非常正常的训练模式下,在推理模式下,这意味着异步进行入队请求并将批次发送到 GPU。诸如MMS之类的现代DL服务器允许这样做。