| 22 | |
| 23 | namespace { |
| 24 | std::string serialize_policy(const megdnn::ExecutionPolicy& policy) { |
| 25 | std::string ret; |
| 26 | //! serialize AlgorithmDesc |
| 27 | megdnn::Algorithm::serialize_write_pod(policy.algo.handle_type, ret); |
| 28 | megdnn::Algorithm::serialize_write_pod(policy.algo.type, ret); |
| 29 | uint32_t param_size = policy.algo.param.size(); |
| 30 | uint32_t name_size = policy.algo.name.size(); |
| 31 | megdnn::Algorithm::serialize_write_pod<uint32_t>(param_size, ret); |
| 32 | megdnn::Algorithm::serialize_write_pod<uint32_t>(name_size, ret); |
| 33 | ret += policy.algo.param; |
| 34 | ret += policy.algo.name; |
| 35 | |
| 36 | //! serialize sub_policy |
| 37 | uint32_t size = policy.sub_policy.size(); |
| 38 | megdnn::Algorithm::serialize_write_pod(size, ret); |
| 39 | for (auto&& sub : policy.sub_policy) { |
| 40 | ret += serialize_policy(sub); |
| 41 | } |
| 42 | return ret; |
| 43 | } |
| 44 | |
| 45 | megdnn::ExecutionPolicy deserialize_policy( |
| 46 | const char* buf, uint32_t size, uint32_t& offset) { |
no test coverage detected