Skip to content

Conversation

@sguada
Copy link
Contributor

@sguada sguada commented Jun 19, 2014

This PR introduces a VirtualBlob that has dimensions but not data or diff. To be used it needs to ShareData or ShareDiff with a real Blob.

Inspired by conversations with @forresti about using a shared_col_buffer between different ConvolutionLayers, this PR uses VirtualBlob to create a VirtualBlob col_buffer in the ConvolutionLayers and a Blob shared_buffer_ in the Net.

The size of the shared_buffer_ will be maximum of the sizes of the shared col_buffer.

By default, any ConvolutionLayer would use a shared col_buffer, but it can have its own col_buffer by setting the corresponding ConvolutionParam.shared_col_buffer to false in the prototxt.

This PR further reduces the memory consumption of Caffe.

@sguada
Copy link
Contributor Author

sguada commented Jun 19, 2014

@Yangqing @jeffdonahue could you take a look a this PR and tell me if you like the design?

@sguada sguada changed the title Virtual blob and shared_col_buffer Virtual blob and shared_col_buffer [Don't Merge Yet] Jun 19, 2014
@sguada
Copy link
Contributor Author

sguada commented Jun 19, 2014

I just realize that we can achieve a shared col_buffer without need of a VirtualBlob.

@forresti
Copy link
Contributor

Very cool! I'm following this.

@sguada
Copy link
Contributor Author

sguada commented Jun 19, 2014

Closing this PR, replacing it with a simpler version #520

@sguada sguada closed this Jun 19, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants