Refactor Convolution Coaster API and put workspace into ConvolutionConfig (which is renamed to ConvolutionContext).
Previously, workspace was opaque to the users of the API as they had to construct it and pass to API functions but had no use of it otherwise. And workspace is an internal details of CUDA as for example native implementation doesn't use it (although native implementation is currently incomplete).
This is in preparation for reimplementing the convolution layer in the new arch.
🧠Architecture
Changes proposed by this PR:
Rename ConvolutionConfig to ConvolutionContext.
Put workspace into ConvolutionContext for CUDA and make CUDA impl manage it.
Notes to reviewer:
Tests are not yet changed, I'll update them if you're OK with the overall idea.
Verified that mnist conv runs as before and converges to 95% accuracy.
What does this PR accomplish?
Refactor Convolution Coaster API and put workspace into ConvolutionConfig (which is renamed to ConvolutionContext).
Previously, workspace was opaque to the users of the API as they had to construct it and pass to API functions but had no use of it otherwise. And workspace is an internal details of CUDA as for example native implementation doesn't use it (although native implementation is currently incomplete).
This is in preparation for reimplementing the convolution layer in the new arch.
Changes proposed by this PR:
Notes to reviewer:
Tests are not yet changed, I'll update them if you're OK with the overall idea.
Verified that
mnist conv
runs as before and converges to 95% accuracy.📜 Checklist
juice-examples
run just fine