Switch to GPU mode when pointer is move to or from GPU in SyncedMemory
authorKai Li <kaili_kloud@163.com>
Wed, 9 Jul 2014 02:12:07 +0000 (10:12 +0800)
committerKai Li <kaili_kloud@163.com>
Thu, 10 Jul 2014 00:03:22 +0000 (08:03 +0800)
src/caffe/syncedmem.cpp

index 9fe5528..5d6d058 100644 (file)
@@ -33,6 +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_);
     head_ = SYNCED;
     break;
@@ -53,6 +54,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_);
     head_ = SYNCED;
     break;