You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

max_tensor_diff.cpp 1.3 kB

123456789101112131415161718192021222324252627282930
  1. #include "megdnn/oprs.h"
  2. #include "megdnn/tensor_format.h"
  3. #include "src/common/utils.h"
  4. using namespace megdnn;
  5. void megdnn::MaxTensorDiff::check_exec(
  6. const TensorLayout& layout1, const TensorLayout& layout2,
  7. size_t workspace_in_bytes) {
  8. megdnn_assert(
  9. layout1.eq_layout(layout2), "layout1: %s, layout2: %s",
  10. layout1.to_string().c_str(), layout2.to_string().c_str());
  11. if (Image2DPack4TensorFormat::is_valid_image(layout1)) {
  12. megdnn_assert(
  13. layout1.is_contiguous() && layout1.ndim == 2 && layout1.shape[0] &&
  14. layout1.eq_layout(layout2),
  15. "layout1: %s, layout2: %s", layout1.to_string().c_str(),
  16. layout2.to_string().c_str());
  17. } else {
  18. megdnn_assert(
  19. layout1.is_contiguous() && (layout1.ndim == 1 || layout1.ndim == 2) &&
  20. layout1.shape[0] && layout1.eq_layout(layout2),
  21. "layout1: %s, layout2: %s", layout1.to_string().c_str(),
  22. layout2.to_string().c_str());
  23. }
  24. auto required_workspace_in_bytes = get_workspace_in_bytes(layout1, layout2);
  25. megdnn_assert(workspace_in_bytes >= required_workspace_in_bytes);
  26. }
  27. // vim: syntax=cpp.doxygen