Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Virtual blob and shared_col_buffer [Don't Merge Yet] #517

Closed
wants to merge 23 commits into from

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