Implement @Yangqing's solution to copy memory in the SyncedMemory
authorKai Li <kaili_kloud@163.com>
Wed, 9 Jul 2014 17:57:16 +0000 (01:57 +0800)
committerKai Li <kaili_kloud@163.com>
Thu, 10 Jul 2014 00:03:22 +0000 (08:03 +0800)
src/caffe/syncedmem.cpp

index 5d6d058..3f9a3be 100644 (file)
@@ -33,8 +33,7 @@ inline void SyncedMemory::to_cpu() {
       CaffeMallocHost(&cpu_ptr_, size_);
       own_cpu_data_ = true;
     }
-    Caffe::set_mode(Caffe::GPU);
-    caffe_memcpy(size_, gpu_ptr_, cpu_ptr_);
+    CUDA_CHECK(cudaMemcpy(cpu_ptr_, gpu_ptr_, size_, cudaMemcpyDefault));
     head_ = SYNCED;
     break;
   case HEAD_AT_CPU:
@@ -54,8 +53,7 @@ inline void SyncedMemory::to_gpu() {
     if (gpu_ptr_ == NULL) {
       CUDA_CHECK(cudaMalloc(&gpu_ptr_, size_));
     }
-    Caffe::set_mode(Caffe::GPU);
-    caffe_memcpy(size_, cpu_ptr_, gpu_ptr_);
+    CUDA_CHECK(cudaMemcpy(gpu_ptr_, cpu_ptr_, size_, cudaMemcpyDefault));
     head_ = SYNCED;
     break;
   case HEAD_AT_GPU: