| 46 | } |
| 47 | |
| 48 | void dv_helper::check_in_exec(const DeviceTensorND& val, VarNode* var) { |
| 49 | auto&& oval = var->dev_tensor(); |
| 50 | if (!(val.comp_node().mem_node() == oval.comp_node().mem_node() && |
| 51 | val.raw_ptr() == oval.raw_ptr() && val.layout().eq_layout(oval.layout()) && |
| 52 | val.dtype() == var->dtype())) { |
| 53 | var->owner_opr()->owner_graph()->record_async_error( |
| 54 | cg::OperatorNodeExcExtraInfo::ExcMaker{var->owner_opr()} |
| 55 | .make_unique<MegBrainError>(ssprintf( |
| 56 | "value changed in DeviceTensorHolder: cn=(%s,%s), " |
| 57 | "ptr=(%p,%p), " |
| 58 | "layout=(%s,%s), dtype=(%s,%s)", |
| 59 | val.comp_node().to_string().c_str(), |
| 60 | oval.comp_node().to_string().c_str(), val.raw_ptr(), |
| 61 | oval.raw_ptr(), val.layout().to_string().c_str(), |
| 62 | oval.layout().to_string().c_str(), val.dtype().name(), |
| 63 | var->dtype().name()))); |
| 64 | } |
| 65 | } |
| 66 | |
| 67 | /* ===================== HostIONodeBase ===================== */ |
| 68 |
nothing calls this directly
no test coverage detected