(self, op)
| 82 | return return_mem_block |
| 83 | |
| 84 | def fake_new(self, op): |
| 85 | output_size = len(op.output) |
| 86 | for i in range(output_size): |
| 87 | mem_size = self.get_mem_size(op, op.output_shape[i].dims) |
| 88 | final_mem_block = None |
| 89 | reused = False |
| 90 | for mem_block in self.free_mem_list: |
| 91 | if mem_block.size >= mem_size: |
| 92 | mem_block.tensor_name = op.output[i] |
| 93 | final_mem_block = mem_block |
| 94 | self.free_mem_list.remove(mem_block) |
| 95 | mace_check(final_mem_block is not None, |
| 96 | "Error: final_mem_block should not be None") |
| 97 | reused = True |
| 98 | # print("reuse a tensor mem: %s -> %s" % |
| 99 | # (mem_size, mem_block.size)) |
| 100 | break |
| 101 | if not reused: |
| 102 | final_mem_block = MemBlock(op.output[i], self.buffer_size, |
| 103 | mem_size) |
| 104 | self.buffer_size += mem_size |
| 105 | # print("new a tensor mem: %s" % final_mem_block.size) |
| 106 | |
| 107 | # for micro, mem_id is mem_offset |
| 108 | op.mem_id.append(final_mem_block.offset) |
| 109 | self.used_mem_list.append(final_mem_block) |
| 110 | |
| 111 | def fake_delete(self, op): |
| 112 | for tensor_name in op.input: |
no test coverage detected