harvard-acc/smaug

Clean up public APIs that may not need to be public or exist at all

xyzsam opened this issue · 0 comments

In the course of updating docs, I've come across a number of public APIs that should either be removed or hidden. Listing them here to keep track and fix if necessary.

  1. We have an allocateStorage(dataType) method which dispatches to an underlying templated allocateStorage<T> method. Is there any reason why the templated method needs to be public too?
  2. TiledTensor has a ctor with no shape. Why?
  3. Should _useRawTensor be part of the public API for TiledTensor? It's an optimization that is rarely useful and difficult for the user to understand.
  4. Do we still need copyTensorData, which copies a linear region of memory, if we already have copyTensorRegion?
  5. generateTiledTensor requires an Operator param, but we only use the name field. We should just pass the name directly.
  6. There are two overloads on generateTiledTensorAndCopyData - I believe we only need the variadic templated one.
  7. REGISTER_SPECIAL_OP is a macro used for the ref backend operators, but not for SMV. We may want to get rid of this since a user who comes across this may assume this is all that is required to add his/her operator to SMAUG.
  8. MAYBE_UNUSED appears...unused.
  9. ConvolutionOp implements an empty run method. Should this be pure virtual?