| 1504 | |
| 1505 | } |
| 1506 | void update_permute_module_opcode_table(Opcode_info & obj_module_opcode,map<opcode_num_e, Opcode_info> & opcode_info_map,int batch_size){ |
| 1507 | |
| 1508 | Module_info module_default; |
| 1509 | module_default.module_target_info = CPU; |
| 1510 | module_default.module_type = SW_PERMUTE; |
| 1511 | module_default.module_name = "Permute"; /// TODO abid needs to update the layer information based on the enum instead of layer name |
| 1512 | module_default.num_total_ports=11; // TODO need to check with buffer management & init module |
| 1513 | obj_module_opcode.mega_module = module_default; |
| 1514 | |
| 1515 | /*** xcustom mega module ports & these port order should be same as deploy file******/ |
| 1516 | |
| 1517 | Port_info port_defualt; |
| 1518 | port_defualt.data_type = XI_INT8; |
| 1519 | port_defualt.port_width=XI_128BIT_WIDTH; |
| 1520 | port_defualt.size_datatype = XI_INT8_S; |
| 1521 | port_defualt.memory_align_required=32; // TODO need to check with buffer management & init module |
| 1522 | port_defualt.memory_map_info = __SDS_NON_CACHEABLE; |
| 1523 | port_defualt.port_enum=XI_INPUT; |
| 1524 | port_defualt.qant_scheme_type = g_quant_value; |
| 1525 | |
| 1526 | packinfo input_pack; |
| 1527 | |
| 1528 | input_pack.dim = XI_CHANNEL; |
| 1529 | input_pack.mem_contiguous = true; |
| 1530 | input_pack.mod_div_factor = (port_defualt.port_width/port_defualt.size_datatype)/batch_size; |
| 1531 | input_pack.sep=XI_DIVISION; |
| 1532 | |
| 1533 | port_defualt.pack_info_vec.push_back(input_pack); |
| 1534 | |
| 1535 | |
| 1536 | |
| 1537 | input_pack.dim = XI_HEIGHT; |
| 1538 | input_pack.mem_contiguous = true; |
| 1539 | input_pack.mod_div_factor = 0; |
| 1540 | input_pack.sep=XI_NONE; |
| 1541 | |
| 1542 | port_defualt.pack_info_vec.push_back(input_pack); |
| 1543 | |
| 1544 | input_pack.dim = XI_WIDTH; |
| 1545 | input_pack.mem_contiguous = true; |
| 1546 | input_pack.mod_div_factor = 0; |
| 1547 | input_pack.sep=XI_NONE; |
| 1548 | |
| 1549 | port_defualt.pack_info_vec.push_back(input_pack); |
| 1550 | |
| 1551 | input_pack.dim = XI_INTERLEAVED; |
| 1552 | input_pack.mem_contiguous = true; |
| 1553 | input_pack.mod_div_factor = (port_defualt.port_width/port_defualt.size_datatype)/batch_size; |
| 1554 | input_pack.sep=XI_MODULO; |
| 1555 | port_defualt.pack_info_vec.push_back(input_pack); |
| 1556 | |
| 1557 | input_pack.dim = XI_BATCH; |
| 1558 | input_pack.mem_contiguous = true; |
| 1559 | input_pack.mod_div_factor = 0; |
| 1560 | input_pack.sep=XI_NONE; |
| 1561 | |
| 1562 | port_defualt.pack_info_vec.push_back(input_pack); |
| 1563 | |