MCPcopy Create free account
hub / github.com/MegEngine/MegFlow / splitQpsNode

Function splitQpsNode

flow-debugger/debugger-ui/src/parser.js:356–399  ·  view source on GitHub ↗
(config, graph_name, node)

Source from the content-addressed store, hash-verified

354}
355
356export const splitQpsNode = (config, graph_name, node) => {
357 let splitNode = (cfg) => {
358 if (!cfg) return undefined;
359 let id = cfg.link.id;
360 let ports = Object.entries(node.qps).map(pair=>{
361 return { id: `${id}#${pair[0]}`, descp: `${node.name}:${pair[0]}`, data: { size: pair[1][0], qps: pair[1][1] } };
362 });
363 return { id, is_block: node.is_block, ports };
364 };
365 let splitGraph = (cfg) => {
366 if (!cfg) return undefined;
367 let ids = [];
368 let inputs = (pair) => cfg.link.inputs[pair[0]].map((id, i)=> {
369 ids.push(id);
370 let node = findNodeById(config, cfg.ty, id);
371 let tag = cfg.link.inputs_tag[pair[0]][i];
372 return { id: `${id}#${tag}`, descp: `${node.name}:${tag}`, data: { size: pair[1][0], qps: pair[1][1] } }
373 });
374 let outputs = (pair) => cfg.link.outputs[pair[0]].map((id, i)=> {
375 let node = findNodeById(config, cfg.ty, id);
376 let tag = cfg.link.outputs_tag[pair[0]][i];
377 return { id: `${id}#${tag}`, descp: `${node.name}:${tag}`, data: { size: pair[1][0], qps: pair[1][1] } }
378 });
379 let ports = Object.entries(node.qps).map(pair=>{
380 return inputs(pair).concat(outputs(pair))
381 }).flat();
382 return { ids, is_block: node.is_block, ports };
383 };
384 if (node.name in config.g_nodes) {
385 let cfg = config.nodes[node.name];
386 return splitNode(cfg);
387 }
388 if (node.name in config.g_graphs) {
389 let cfg = config.nodes[node.name];
390 return splitGraph(cfg);
391 }
392 let cfg = config.graphs[graph_name].nodes[node.name];
393 if (!cfg) return undefined;
394 if (isGraph(config, cfg.ty)) {
395 return splitGraph(cfg);
396 } else {
397 return splitNode(cfg);
398 }
399}

Callers 1

AppHeader.jsFile · 0.90

Calls 3

splitNodeFunction · 0.85
splitGraphFunction · 0.85
isGraphFunction · 0.85

Tested by

no test coverage detected