| 67 | } |
| 68 | |
| 69 | flatbuffers::Offset<fbs::v2::MiddleTensor> GraphDumperOSSV2::build_middle_tensor( |
| 70 | const SymbolVar var) { |
| 71 | mgb_assert(var.node()); |
| 72 | auto fbname = m_builder.CreateSharedString(var.node()->name()); |
| 73 | flatbuffers::Offset<fbs::v2::MiddleTensor> serialized_middle_tensor; |
| 74 | if (var.node()->dev_tensor_valid()) { |
| 75 | auto layout = var.node()->layout(); |
| 76 | auto fshape = |
| 77 | m_builder.CreateVectorScalarCast<uint32_t>(layout.shape, layout.ndim); |
| 78 | |
| 79 | auto fcomp_node = fbs::v2::CreateCompNode( |
| 80 | m_builder, m_builder.CreateSharedString( |
| 81 | var.node()->comp_node().to_string_logical())); |
| 82 | |
| 83 | auto fdtype = build_dtype(layout.dtype); |
| 84 | auto fformat_type = get_flatbuffer_tensor_format_type(layout.format); |
| 85 | auto fformat = build_tensor_format(layout.format); |
| 86 | serialized_middle_tensor = fbs::v2::CreateMiddleTensor( |
| 87 | m_builder, fbname, fshape, fcomp_node, fdtype, fformat_type, fformat); |
| 88 | } else if (var.node()->shape().ndim > 0) { |
| 89 | auto shape = var.node()->shape(); |
| 90 | auto fshape = |
| 91 | m_builder.CreateVectorScalarCast<uint32_t>(shape.shape, shape.ndim); |
| 92 | serialized_middle_tensor = |
| 93 | fbs::v2::CreateMiddleTensor(m_builder, fbname, fshape); |
| 94 | |
| 95 | } else { |
| 96 | serialized_middle_tensor = fbs::v2::CreateMiddleTensor(m_builder, fbname); |
| 97 | } |
| 98 | return serialized_middle_tensor; |
| 99 | } |
| 100 | |
| 101 | flatbuffers::Offset<fbs::v2::OutputVar> GraphDumperOSSV2::build_output_var( |
| 102 | const SymbolVar var) { |
nothing calls this directly
no test coverage detected