| 298 | } |
| 299 | |
| 300 | void TensorImplDft::reset(void* prepared_data) { |
| 301 | auto raw_ptr = static_cast<mgb::dt_byte*>(prepared_data); |
| 302 | auto raw_storage = std::shared_ptr<mgb::dt_byte>(raw_ptr, [](void*) {}); |
| 303 | bool host = is_host(); |
| 304 | if (host) { |
| 305 | auto cn = m_host_tensor->comp_node(); |
| 306 | auto mge_layout = m_host_tensor->layout(); |
| 307 | size_t size = mge_layout.span().dist_byte(); |
| 308 | mgb::HostTensorStorage storage; |
| 309 | storage.reset(cn, size, raw_storage); |
| 310 | if (m_record_reset) { |
| 311 | m_host_tensor->only_reset_raw_storage(storage); |
| 312 | } else { |
| 313 | m_host_tensor->reset(storage, mge_layout); |
| 314 | } |
| 315 | } else { |
| 316 | auto cn = m_dev_tensor->comp_node(); |
| 317 | auto mge_layout = m_dev_tensor->layout(); |
| 318 | size_t size = mge_layout.span().dist_byte(); |
| 319 | mgb::DeviceTensorStorage storage; |
| 320 | storage.reset(cn, size, raw_storage); |
| 321 | if (m_record_reset) { |
| 322 | m_dev_tensor->only_reset_raw_storage(storage); |
| 323 | } else { |
| 324 | m_dev_tensor->reset(storage, mge_layout); |
| 325 | } |
| 326 | } |
| 327 | if (m_reset_callback) { |
| 328 | m_reset_callback(this); |
| 329 | } |
| 330 | } |
| 331 | |
| 332 | void TensorImplDft::reset(void* prepared_data, const Layout& layout) { |
| 333 | set_layout(layout); |
no test coverage detected