PaddlePaddle CPU和GPU内存的拷贝

 if (platform::is_gpu_place(context.GetPlace())) {                                                  
      loc_cpu.mutable_data(loc_tensor.dims(), platform::CPUPlace());                                
      framework::CopyFrom(loc_tensor, platform::CPUPlace(),                                            
                          context.device_context(), &loc_cpu);                                         
      loc_data = loc_cpu.data();                                                                    
      conf_cpu.mutable_data(conf_tensor.dims(), platform::CPUPlace());                              
      framework::CopyFrom(conf_tensor, platform::CPUPlace(),                                           
                          context.device_context(), &conf_cpu);                                        
      conf_data = conf_cpu.data();                                                                  
      priorbox_cpu.mutable_data(in_priorbox->dims(), platform::CPUPlace());                         
      framework::CopyFrom(*in_priorbox, platform::CPUPlace(),                                          
                          context.device_context(), &priorbox_cpu);                                    
      priorbox_data = priorbox_cpu.data();                                                          
    }              

类似上面的代码,之前一直没有太领会为什么会需要判断是GPU的时候进行这样的内存拷贝。
后来编码的时候遇到在GPU模式下,有些需要进行CPU计算的时候,会有这样的操作,之后,根据需要,可能还要把计算的结果拷贝回GPU

你可能感兴趣的:(PaddlePaddle CPU和GPU内存的拷贝)