Browse Source

fix(mgb): fix fastrun for imperative

GitOrigin-RevId: db54984b92
tags/v1.3.1
Megvii Engine Team 4 years ago
parent
commit
0d165399e6
12 changed files with 20 additions and 17 deletions
  1. +6
    -3
      dnn/include/megdnn/oprs/base.h
  2. +1
    -1
      dnn/src/cuda/conv_bias/algo.h
  3. +1
    -1
      dnn/src/cuda/convolution/backward_data/algo.h
  4. +1
    -1
      dnn/src/cuda/convolution/backward_filter/algo.h
  5. +1
    -1
      dnn/src/cuda/convolution3d/backward_data/algo.h
  6. +1
    -1
      dnn/src/cuda/convolution3d/backward_filter/algo.h
  7. +1
    -1
      dnn/src/cuda/convolution3d/forward/algo.h
  8. +4
    -4
      dnn/src/fallback/conv_bias/algos.h
  9. +1
    -1
      dnn/src/fallback/conv_bias/common.h
  10. +1
    -1
      dnn/src/fallback/conv_bias/conv1x1/algos.h
  11. +1
    -1
      dnn/src/fallback/conv_bias/im2col/algos.h
  12. +1
    -1
      dnn/src/fallback/convolution/algos.h

+ 6
- 3
dnn/include/megdnn/oprs/base.h View File

@@ -172,7 +172,10 @@ public:


template <typename T> template <typename T>
static void serialize_write_pod(const T& val, std::string& result) { static void serialize_write_pod(const T& val, std::string& result) {
static_assert(std::is_standard_layout<T>::value, "invalid type");
static_assert(std::is_trivially_copyable<T>::value,
"type should be trivially copyable");
static_assert(!std::is_pointer<T>::value,
"serialize pointer is unsafe in eager execution mode");
result.append(reinterpret_cast<const char*>(&val), sizeof(T)); result.append(reinterpret_cast<const char*>(&val), sizeof(T));
} }


@@ -182,7 +185,7 @@ public:


template <typename T> template <typename T>
static T deserialize_read_pod(const std::string& data, size_t offset = 0) { static T deserialize_read_pod(const std::string& data, size_t offset = 0) {
static_assert(std::is_standard_layout<T>::value, "invalid type");
static_assert(std::is_trivially_copyable<T>::value, "invalid type");
T ret; T ret;
//! A pointer to an object or incomplete type may be converted to a //! A pointer to an object or incomplete type may be converted to a
//! pointer to a different object or incomplete type. If the resulting //! pointer to a different object or incomplete type. If the resulting
@@ -197,7 +200,7 @@ public:


template <typename T> template <typename T>
static T deserialize_read_pod(const char* data, size_t offset = 0) { static T deserialize_read_pod(const char* data, size_t offset = 0) {
static_assert(std::is_standard_layout<T>::value, "invalid type");
static_assert(std::is_trivially_copyable<T>::value, "invalid type");
T ret; T ret;
//! A pointer to an object or incomplete type may be converted to a //! A pointer to an object or incomplete type may be converted to a
//! pointer to a different object or incomplete type. If the resulting //! pointer to a different object or incomplete type. If the resulting


+ 1
- 1
dnn/src/cuda/conv_bias/algo.h View File

@@ -439,7 +439,7 @@ public:


std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_impl, ret);
serialize_write_pod(m_impl->name(), ret);
return ret; return ret;
} }




+ 1
- 1
dnn/src/cuda/convolution/backward_data/algo.h View File

@@ -238,7 +238,7 @@ public:


std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_impl, ret);
serialize_write_pod(m_impl->name(), ret);
return ret; return ret;
} }
}; };


+ 1
- 1
dnn/src/cuda/convolution/backward_filter/algo.h View File

@@ -223,7 +223,7 @@ public:


std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_impl, ret);
serialize_write_pod(m_impl->name(), ret);
return ret; return ret;
} }
}; };


+ 1
- 1
dnn/src/cuda/convolution3d/backward_data/algo.h View File

@@ -174,7 +174,7 @@ public:
MEGDNN_DECL_ALGO_TYPE(CUDA_GROUP_CONV_GENERAL) MEGDNN_DECL_ALGO_TYPE(CUDA_GROUP_CONV_GENERAL)
std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_impl, ret);
serialize_write_pod(m_impl->name(), ret);
return ret; return ret;
} }
}; };


+ 1
- 1
dnn/src/cuda/convolution3d/backward_filter/algo.h View File

@@ -183,7 +183,7 @@ public:
MEGDNN_DECL_ALGO_TYPE(CUDA_GROUP_CONV_GENERAL) MEGDNN_DECL_ALGO_TYPE(CUDA_GROUP_CONV_GENERAL)
std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_impl, ret);
serialize_write_pod(m_impl->name(), ret);
return ret; return ret;
} }
}; };


+ 1
- 1
dnn/src/cuda/convolution3d/forward/algo.h View File

@@ -135,7 +135,7 @@ public:
MEGDNN_DECL_ALGO_TYPE(CUDA_GROUP_CONV_GENERAL) MEGDNN_DECL_ALGO_TYPE(CUDA_GROUP_CONV_GENERAL)
std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_impl, ret);
serialize_write_pod(m_impl->name(), ret);
return ret; return ret;
} }
}; };


+ 4
- 4
dnn/src/fallback/conv_bias/algos.h View File

@@ -67,7 +67,7 @@ public:
MEGDNN_DECL_ALGO_TYPE(FB_WINOGRAD_F32) MEGDNN_DECL_ALGO_TYPE(FB_WINOGRAD_F32)
std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_matmul_algo, ret);
serialize_write_pod(m_matmul_algo->name(), ret);
return ret; return ret;
} }


@@ -103,7 +103,7 @@ public:
MEGDNN_DECL_ALGO_TYPE(FB_WINOGRAD_4X4_F32) MEGDNN_DECL_ALGO_TYPE(FB_WINOGRAD_4X4_F32)
std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_matmul_algo, ret);
serialize_write_pod(m_matmul_algo->name(), ret);
return ret; return ret;
} }


@@ -139,7 +139,7 @@ public:
MEGDNN_DECL_ALGO_TYPE(FB_WINOGRAD_QS8) MEGDNN_DECL_ALGO_TYPE(FB_WINOGRAD_QS8)
std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_matmul_algo, ret);
serialize_write_pod(m_matmul_algo->name(), ret);
return ret; return ret;
} }


@@ -175,7 +175,7 @@ public:
MEGDNN_DECL_ALGO_TYPE(FB_WINOGRAD_8X8_QS8) MEGDNN_DECL_ALGO_TYPE(FB_WINOGRAD_8X8_QS8)
std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_matmul_algo, ret);
serialize_write_pod(m_matmul_algo->name(), ret);
return ret; return ret;
} }




+ 1
- 1
dnn/src/fallback/conv_bias/common.h View File

@@ -157,7 +157,7 @@ using BiasMode = ConvBiasForward::BiasMode;
} \ } \
std::string param() const override { \ std::string param() const override { \
std::string ret; \ std::string ret; \
serialize_write_pod(m_matmul_algo, ret); \
serialize_write_pod(m_matmul_algo->name(), ret); \
serialize_write_pod(m_tile_size, ret); \ serialize_write_pod(m_tile_size, ret); \
return ret; \ return ret; \
} \ } \


+ 1
- 1
dnn/src/fallback/conv_bias/conv1x1/algos.h View File

@@ -65,7 +65,7 @@ public:
MEGDNN_DECL_ALGO_TYPE(FB_WINOGRAD_8X8_QS8) MEGDNN_DECL_ALGO_TYPE(FB_WINOGRAD_8X8_QS8)
std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_matmul_algo, ret);
serialize_write_pod(m_matmul_algo->name(), ret);
serialize_write_pod(m_oc_block_size, ret); serialize_write_pod(m_oc_block_size, ret);
return ret; return ret;
} }


+ 1
- 1
dnn/src/fallback/conv_bias/im2col/algos.h View File

@@ -74,7 +74,7 @@ public:


std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_matmul_algo, ret);
serialize_write_pod(m_matmul_algo->name(), ret);
serialize_write_pod(m_ohw_tile_size, ret); serialize_write_pod(m_ohw_tile_size, ret);
return ret; return ret;
} }


+ 1
- 1
dnn/src/fallback/convolution/algos.h View File

@@ -157,7 +157,7 @@ public:


std::string param() const override { std::string param() const override {
std::string ret; std::string ret;
serialize_write_pod(m_algorithm, ret);
serialize_write_pod(m_algorithm->name(), ret);
return ret; return ret;
} }




Loading…
Cancel
Save