MCPcopy Create free account
hub / github.com/BVLC/caffe / apply_buffers

Function apply_buffers

src/caffe/parallel.cpp:25–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23
24template<typename Dtype>
25static void apply_buffers(const vector<Blob<Dtype>*>& blobs,
26 Dtype* buffer, size_t total_size, Op op) {
27 Dtype* ptr = buffer;
28 for (int i = 0; i < blobs.size(); ++i) {
29 int size = blobs[i]->count();
30 switch (op) {
31 case copy: {
32 // Init buffer to current values of blobs
33 caffe_copy(size,
34 reinterpret_cast<const Dtype*>(blobs[i]->data()->cpu_data()),
35 ptr);
36 break;
37 }
38 case replace_cpu:
39 blobs[i]->data()->set_cpu_data(ptr);
40 break;
41 case replace_gpu:
42 blobs[i]->data()->set_gpu_data(ptr);
43 break;
44 case replace_cpu_diff:
45 blobs[i]->diff()->set_cpu_data(ptr);
46 break;
47 case replace_gpu_diff:
48 blobs[i]->diff()->set_gpu_data(ptr);
49 break;
50 }
51 ptr += size;
52 }
53 // total_size is at least one byte
54 CHECK_EQ(total_size, (ptr == buffer ? 1 : ptr - buffer));
55}
56
57// Buffer size necessary to store given blobs
58template<typename Dtype>

Callers 2

GPUParamsMethod · 0.85
ConfigureMethod · 0.85

Calls 8

caffe_copyFunction · 0.85
countMethod · 0.80
dataMethod · 0.80
diffMethod · 0.80
sizeMethod · 0.45
cpu_dataMethod · 0.45
set_cpu_dataMethod · 0.45
set_gpu_dataMethod · 0.45

Tested by

no test coverage detected