From 3805bddd58e7f39c814f40e8db292886f4a04601 Mon Sep 17 00:00:00 2001 From: wuyulong17 <2284273586@qq.com> Date: Tue, 22 Jul 2025 10:56:09 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=8F=8F=E8=BF=B0=E3=80=91=E5=B0=86su?= =?UTF-8?q?bgraph=E5=91=BD=E5=90=8D=E6=9B=B4=E6=94=B9=E4=B8=BAfsg=EF=BC=88?= =?UTF-8?q?=E9=A2=91=E7=B9=81=E5=AD=90=E5=9B=BE=EF=BC=89=E4=BB=A5=E5=92=8C?= =?UTF-8?q?=E5=90=8E=E7=BB=AD=E5=BC=95=E5=85=A5=E7=9A=84subgraph=EF=BC=88?= =?UTF-8?q?=E5=AD=90=E5=9B=BE=EF=BC=89=E6=A6=82=E5=BF=B5=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ModelVis/app/src-tauri/Cargo.toml | 2 +- .../ModelVis/app/src-tauri/resources/bin.ts | 4 +- .../ModelVis/app/src-tauri/src/commands.rs | 6 +- .../ModelVis/app/src-tauri/src/lib.rs | 4 +- .../{SubgraphControl.tsx => FsgControl.tsx} | 18 ++-- .../app/src/ModelStructure/Control/index.tsx | 4 +- .../{Subgraph => Fsg}/Filter.tsx | 18 ++-- .../{Subgraph => Fsg}/index.tsx | 91 ++++++++++--------- .../ModelVis/app/src/ModelStructure/index.tsx | 10 +- .../ModelVis/app/src/hooks/useCleanup.ts | 10 +- .../app/src/hooks/useNewPathForLayout.ts | 6 +- .../app/src/icons/{subgraph.svg => fsg.svg} | 0 .../ModelVis/app/src/locales/en.json | 14 +-- .../ModelVis/app/src/locales/zh-CN.json | 16 ++-- .../app/src/src-worker/convex-hull.ts | 8 +- .../ModelVis/app/src/src-worker/render.ts | 12 +-- .../ModelVis/app/src/src-worker/worker.ts | 28 +++--- .../ModelVis/app/src/stores/app-context.ts | 6 +- .../ModelVis/app/src/types/ipc.d.ts | 16 ++-- .../ModelVis/app/src/types/model.d.ts | 10 +- .../ModelVis/app/src/worker-apis.ts | 10 +- .../rust/{subgraph => fsg}/.gitignore | 0 .../rust/{subgraph => fsg}/Cargo.toml | 2 +- .../ModelVis/rust/{subgraph => fsg}/README.md | 0 .../rust/{subgraph => fsg}/src/gspan/gspan.rs | 0 .../rust/{subgraph => fsg}/src/gspan/misc.rs | 0 .../rust/{subgraph => fsg}/src/gspan/mod.rs | 0 .../{subgraph => fsg}/src/gspan/models/dfs.rs | 0 .../src/gspan/models/dfs_code.rs | 0 .../src/gspan/models/edge.rs | 0 .../src/gspan/models/graph.rs | 0 .../src/gspan/models/history.rs | 0 .../{subgraph => fsg}/src/gspan/models/mod.rs | 0 .../src/gspan/models/prev_dfs.rs | 0 .../src/gspan/models/projected.rs | 0 .../src/gspan/models/vertex.rs | 0 .../{subgraph => fsg}/src/gspan/result.rs | 0 .../rust/{subgraph => fsg}/src/io/mod.rs | 0 .../{subgraph => fsg}/src/io/model_graph.rs | 0 .../rust/{subgraph => fsg}/src/io/node.rs | 0 .../rust/{subgraph => fsg}/src/io/output.rs | 0 .../rust/{subgraph => fsg}/src/lib.rs | 2 +- .../ModelVis/rust/parser/src/model.rs | 2 +- .../ModelVis/rust/parser/src/pbtxt/onnx.rs | 10 +- .../rust/parser/src/processors/geir.rs | 2 +- .../rust/parser/src/processors/mindir.rs | 2 +- .../rust/parser/src/processors/onnx.rs | 2 +- 47 files changed, 160 insertions(+), 155 deletions(-) rename plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/{SubgraphControl.tsx => FsgControl.tsx} (63%) rename plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/{Subgraph => Fsg}/Filter.tsx (86%) rename plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/{Subgraph => Fsg}/index.tsx (60%) rename plugins/mindstudio-insight-plugins/ModelVis/app/src/icons/{subgraph.svg => fsg.svg} (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/.gitignore (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/Cargo.toml (93%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/README.md (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/gspan.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/misc.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/mod.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/models/dfs.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/models/dfs_code.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/models/edge.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/models/graph.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/models/history.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/models/mod.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/models/prev_dfs.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/models/projected.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/models/vertex.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/gspan/result.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/io/mod.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/io/model_graph.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/io/node.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/io/output.rs (100%) rename plugins/mindstudio-insight-plugins/ModelVis/rust/{subgraph => fsg}/src/lib.rs (98%) diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/Cargo.toml b/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/Cargo.toml index a22ca5932..2d91c8ba8 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/Cargo.toml +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/Cargo.toml @@ -20,5 +20,5 @@ serde = { workspace = true, features = ["derive"] } serde_json.workspace = true parser = { path = "../../rust/parser" } layout = { path = "../../rust/layout" } -subgraph = { path = "../../rust/subgraph" } +fsg = { path = "../../rust/fsg" } anyhow = { workspace = true } diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/resources/bin.ts b/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/resources/bin.ts index a753673a3..77a162821 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/resources/bin.ts +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/resources/bin.ts @@ -7,12 +7,12 @@ const RS_PATH = join(CACHE_FOLDER, "rs.json") const RsData = await Bun.file(RS_PATH).json() -const {nodes: rawNodes, edges: rawEdges, subgraphes, nesting_map} = RsData +const {nodes: rawNodes, edges: rawEdges, subgraphs, nesting_map} = RsData const nodes = [] const edges = [] -for (const name of Object.keys(subgraphes)) { +for (const name of Object.keys(subgraphs)) { nodes.push({ v: name, opType: "subgraph" diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/src/commands.rs b/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/src/commands.rs index 21784b567..21f88f888 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/src/commands.rs +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/src/commands.rs @@ -6,7 +6,7 @@ use layout::{layout, Graph, GraphEdge, GraphNode, Key, KeyCodecExt}; use parser::{parse_bin, Model}; use serde::{de::DeserializeOwned, Deserialize, Serialize}; use smartstring::alias::String; -use subgraph::{result::JSONResult, subgraphs_bin}; +use fsg::{result::JSONResult, fsgs_bin}; use tauri::{path::BaseDirectory, AppHandle, Manager, Result as InvokeResult}; use tauri_plugin_shell::ShellExt; @@ -305,8 +305,8 @@ fn read_from<'a, T: DeserializeOwned, P: AsRef>(path: P) -> T { } #[tauri::command] -pub fn mine_subgraph(path: &str, min_sup: usize, min: usize, max: usize) -> InvokeResult> { - wrap(subgraphs_bin(path, min_sup, min, max)) +pub fn mine_fsg(path: &str, min_sup: usize, min: usize, max: usize) -> InvokeResult> { + wrap(fsgs_bin(path, min_sup, min, max)) } fn wrap(src: Result) -> InvokeResult { diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/src/lib.rs b/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/src/lib.rs index fa82de044..83c6237d4 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/src/lib.rs +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src-tauri/src/lib.rs @@ -1,13 +1,13 @@ mod commands; -use commands::{layout_bin, mine_subgraph}; +use commands::{layout_bin, mine_fsg}; #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() .plugin(tauri_plugin_dialog::init()) .plugin(tauri_plugin_shell::init()) - .invoke_handler(tauri::generate_handler![layout_bin, mine_subgraph]) + .invoke_handler(tauri::generate_handler![layout_bin, mine_fsg]) .run(tauri::generate_context!()) .expect("error while running tauri application"); } diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/SubgraphControl.tsx b/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/FsgControl.tsx similarity index 63% rename from plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/SubgraphControl.tsx rename to plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/FsgControl.tsx index b8e3d1b02..8bb21c1b7 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/SubgraphControl.tsx +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/FsgControl.tsx @@ -14,28 +14,28 @@ // limitations under the License. import { useI18n } from "hooks" -import SubgraphIcon from "icons/subgraph.svg?react" +import FsgIcon from "icons/fsg.svg?react" import { useAtom } from "jotai" -import { subgraphPanelVisibleAtom } from "stores" +import { fsgPanelVisibleAtom } from "stores" import { Tooltip } from "ui" -const SubgraphControl = () => { - const [visible, setVisible] = useAtom(subgraphPanelVisibleAtom) +const FsgControl = () => { + const [visible, setVisible] = useAtom(fsgPanelVisibleAtom) const t = useI18n() - const i18nKey = visible ? "control.hideSubgraphPanel" : "control.displaySubgraphPanel" + const i18nKey = visible ? "control.hideFsgPanel" : "control.displayFsgPanel" - const handleToggleSubgraph = () => { + const handleToggleFsg = () => { setVisible(!visible) } - return } -export default SubgraphControl +export default FsgControl diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/index.tsx b/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/index.tsx index 2b4b2bdba..c887d4a83 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/index.tsx +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Control/index.tsx @@ -18,7 +18,7 @@ import Divider from "./Divider" import DynOpMarkControl from "./DynOpMarkControl" import GridControl from "./GridControl" import MinimapControl from "./MinimapControl" -import SubgraphControl from "./SubgraphControl" +import FsgControl from "./FsgControl" import { TranslateControl, ZoomControl } from "./TransformControl" const Control = () =>
- +
diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Subgraph/Filter.tsx b/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Fsg/Filter.tsx similarity index 86% rename from plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Subgraph/Filter.tsx rename to plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Fsg/Filter.tsx index 5f4151f2c..0c06d0dc2 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Subgraph/Filter.tsx +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Fsg/Filter.tsx @@ -17,7 +17,7 @@ import { useI18n } from 'hooks' import { joinCls } from 'libs' import { useState } from 'react' import { useAtomValue } from "jotai" -import { subgraphsVisibleAtom } from "../../stores" +import { fsgVisibleAtom } from "../../stores" import { toast } from "sonner"; const commonInputNumberClass: string = joinCls( @@ -32,7 +32,7 @@ const Filter = (props: { onQuery: (repeat: number, min: number, max: number) => const [repeatTimes, setRepeatTimes] = useState(2) const [minNodes, setMinNodes] = useState(2) const [maxNodes, setMaxNodes] = useState(8) - const visible = useAtomValue(subgraphsVisibleAtom) + const visible = useAtomValue(fsgVisibleAtom) const handleInput = (e: React.FormEvent, type: string): void => { const value = parseInt((e.target as HTMLInputElement).value) @@ -53,23 +53,23 @@ const Filter = (props: { onQuery: (repeat: number, min: number, max: number) => const handleQuery = (): void => { if (minNodes > maxNodes) { - toast.warning(t('subgraph.invalidQueryWarning')) + toast.warning(t('fsg.invalidQueryWarning')) return } props.onQuery(repeatTimes, minNodes, maxNodes) } - const toggleSubgraphVis = (): void => { + const toggleFsgVis = (): void => { props.onToggle() } return
- {t('subgraph.minRepeatTimes')} + {t('fsg.minRepeatTimes')} handleInput(e, 'repeat')} /> - {t('subgraph.nodeInSubgraph')} + {t('fsg.nodeInFsg')} handleInput(e, 'min')} @@ -81,11 +81,11 @@ const Filter = (props: { onQuery: (repeat: number, min: number, max: number) => + >{t('fsg.query')} + onClick={toggleFsgVis} + >{ t(visible ? 'fsg.hideFsgs' : 'fsg.displayFsgs')}
} diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Subgraph/index.tsx b/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Fsg/index.tsx similarity index 60% rename from plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Subgraph/index.tsx rename to plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Fsg/index.tsx index fd9231351..d28daa610 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Subgraph/index.tsx +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/Fsg/index.tsx @@ -20,22 +20,22 @@ import Filter from './Filter' import { loadingAtom, modelPathAtom, - subgraphPanelVisibleAtom, - subgraphsVisibleAtom, themeAtom + fsgPanelVisibleAtom, + fsgVisibleAtom, themeAtom } from '../../stores' import { useAtom, useSetAtom } from 'jotai/index' import { invoke } from '@tauri-apps/api/core' import type { ColumnsType } from 'antd/es/table' import { ConfigProvider, Table, theme } from 'antd' -import { useState } from 'react' -import { workerInitSubgraphs, workerToggleSubgraphs } from '../../worker-apis' +import { useEffect, useState } from 'react' +import { workerInitFsgs, workerToggleFsgs } from '../../worker-apis' /** * The current algorithm is flawed, results returned are duplicated, * and there are differences only in order * @param graphs Array of NodeId array */ -const dedup = (graphs: SubgraphRet[]): SubgraphTableRow[] => { +const dedup = (graphs: FsgRet[]): FsgTableRow[] => { const seen = new Set() return graphs.map((item, index) => { const dup_nodes = item.instances.map(i => i.node_ids.map(n => n.nid)) @@ -48,7 +48,7 @@ const dedup = (graphs: SubgraphRet[]): SubgraphTableRow[] => { return { key: `${item.optype_struct}_${index}`, - subgraph: item.optype_struct, + fsg: item.optype_struct, count: nodes.length, nodeCount: item.instances[0]?.node_num ?? 0, meanDuration: 0, @@ -58,86 +58,91 @@ const dedup = (graphs: SubgraphRet[]): SubgraphTableRow[] => { }).filter(item => item.count > 0 && item.nodeCount > 0) } -const sortFn = (lhs: SubgraphRet, rhs: SubgraphRet) => +const sortFn = (lhs: FsgRet, rhs: FsgRet) => (rhs.instances[0]?.node_num ?? 0) - (lhs.instances[0]?.node_num ?? 0) -const sortedSubgraphs = (raw: SubgraphRet[]) => raw.sort(sortFn) +const sortedFsgs = (raw: FsgRet[]) => raw.sort(sortFn) -const getColumns = (t: I18nFunc): ColumnsType => { +const getColumns = (t: I18nFunc): ColumnsType => { return [ { - dataIndex: 'subgraph', - title: t('subgraph.subgraph'), - sorter: (a: SubgraphTableRow, b: SubgraphTableRow): number => a.subgraph.localeCompare(b.subgraph), + dataIndex: 'fsg', + title: t('fsg.fsg'), + sorter: (a: FsgTableRow, b: FsgTableRow): number => a.fsg.localeCompare(b.fsg), width: '50%', ellipsis: true }, { dataIndex: 'count', - title: t('subgraph.count'), - sorter: (a: SubgraphTableRow, b: SubgraphTableRow): number => a.count - b.count + title: t('fsg.count'), + sorter: (a: FsgTableRow, b: FsgTableRow): number => a.count - b.count }, { dataIndex: 'nodeCount', - title: t('subgraph.nodeCount'), - sorter: (a: SubgraphTableRow, b: SubgraphTableRow): number => a.nodeCount - b.nodeCount + title: t('fsg.nodeCount'), + sorter: (a: FsgTableRow, b: FsgTableRow): number => a.nodeCount - b.nodeCount }, { dataIndex: 'meanDuration', - title: t('subgraph.meanDuration'), - sorter: (a: SubgraphTableRow, b: SubgraphTableRow): number => a.meanDuration - b.meanDuration + title: t('fsg.meanDuration'), + sorter: (a: FsgTableRow, b: FsgTableRow): number => a.meanDuration - b.meanDuration }, { dataIndex: 'totalDuration', - title: t('subgraph.totalDuration'), - sorter: (a: SubgraphTableRow, b: SubgraphTableRow): number => a.totalDuration - b.totalDuration + title: t('fsg.totalDuration'), + sorter: (a: FsgTableRow, b: FsgTableRow): number => a.totalDuration - b.totalDuration } ] } -const Subgraph = () => { - const visible = useAtomValue(subgraphPanelVisibleAtom) +const Fsg = () => { + const visible = useAtomValue(fsgPanelVisibleAtom) const t = useI18n() const setLoading = useSetAtom(loadingAtom) - const [subgraphVis, setSubgraphVis] = useAtom(subgraphsVisibleAtom) + const [fsgVis, setFsgVis] = useAtom(fsgVisibleAtom) const path = useAtomValue(modelPathAtom) - const [subgraphData, setSubgraphData] = useState([]) - const [selectedRow, setSelectedRow] = useState() + const [fsgData, setFsgData] = useState([]) + const [selectedRow, setSelectedRow] = useState() const columns = getColumns(t) const globalTheme = useAtomValue(themeAtom) - const querySubgraph = async (repeat: number, min: number, max: number) => { + const queryFsg = async (repeat: number, min: number, max: number) => { setLoading(true) - const res = await invoke( - 'mine_subgraph', + const res = await invoke( + 'mine_fsg', { path, minSup: repeat, min, max } ) - const subgraphs = dedup(sortedSubgraphs(res)) - setSubgraphData(subgraphs) + const fsgs = dedup(sortedFsgs(res)) + setFsgData(fsgs) setLoading(false) } - const toggleSubgraph = (): void => { - setSubgraphVis(!subgraphVis) - workerToggleSubgraphs(!subgraphVis) - if (!subgraphVis) { - workerInitSubgraphs(selectedRow?.nodes ?? []) + const toggleFsg = (): void => { + setFsgVis(!fsgVis) + workerToggleFsgs(!fsgVis) + if (!fsgVis) { + workerInitFsgs(selectedRow?.nodes ?? []) } } - const onRow = (record: SubgraphTableRow) => { + const onRow = (record: FsgTableRow) => { return { onClick: () => { setSelectedRow(record) - if (subgraphVis) { - workerInitSubgraphs(record.nodes) + if (fsgVis) { + workerInitFsgs(record.nodes) } } } } + useEffect(() => { + setFsgData([]); + setSelectedRow(undefined); + }, [path]); + return
{ )} style={{display: visible ? 'block' : 'none'}} > - + { record.key === selectedRow?.key ? 'bg-blue-300' : ''} pagination={{ className: '!my-2', pageSizeOptions: ['10', '20', '50', '100'], - total: subgraphData.length, - showTotal: (total: number): string => t('subgraph.paginationTotal', {total: total}), + total: fsgData.length, + showTotal: (total: number): string => t('fsg.paginationTotal', {total: total}), showSizeChanger: true, showQuickJumper: true }} @@ -171,4 +176,4 @@ const Subgraph = () => { } -export default Subgraph +export default Fsg diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/index.tsx b/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/index.tsx index 19a8439df..dc4e51a6e 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/index.tsx +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/ModelStructure/index.tsx @@ -24,7 +24,7 @@ import { useRef, useState } from "react" -import { nodesEdgesAtom, subgraphsVisibleAtom, themeAtom, translateAtom, useZoom } from "stores" +import { nodesEdgesAtom, fsgVisibleAtom, themeAtom, translateAtom, useZoom } from "stores" import { workerHitTest, workerInit, @@ -36,7 +36,7 @@ import { import Control from "./Control" import Dynamic from "./Dynamic" import Properties from "./Properties" -import Subgraph from "./Subgraph" +import Fsg from "./Fsg" const ModelStructureComp = ({ width, height }: WindowSize) => { const [isDragging, setIsDragging] = useState(false) @@ -46,7 +46,7 @@ const ModelStructureComp = ({ width, height }: WindowSize) => { const [translate, setTranslate] = useAtom(translateAtom) const [zoom, zoomIn, zoomOut] = useZoom() const theme = useAtomValue(themeAtom) - const subgraphVis = useAtomValue(subgraphsVisibleAtom) + const fsgVis = useAtomValue(fsgVisibleAtom) const ref = useRef(null!) const hlRef = useRef(null!) @@ -128,7 +128,7 @@ const ModelStructureComp = ({ width, height }: WindowSize) => { useEffect(() => { if (!width || !height || !data) return - workerResize({ width, height, subgraphVis }) + workerResize({ width, height, fsgVis }) }, [width, height]) useEffect(() => workerTransform(translate, zoom), [translate, zoom]) @@ -169,7 +169,7 @@ const ModelStructure = () => <> - + diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/hooks/useCleanup.ts b/plugins/mindstudio-insight-plugins/ModelVis/app/src/hooks/useCleanup.ts index c3a19d143..af8b9b804 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/hooks/useCleanup.ts +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/hooks/useCleanup.ts @@ -19,7 +19,7 @@ import { modelDataAtom, modelPathAtom, nodesEdgesAtom, - subgraphsAtom, subgraphsVisibleAtom, useSelectionHistory + fsgAtom, fsgVisibleAtom, useSelectionHistory } from "stores" import { workerCleanUp } from "worker-apis" @@ -30,8 +30,8 @@ export const useCleanup = (): VoidFunction => { const setNodesEdges = useSetAtom(nodesEdgesAtom as any) const setDynamicNodes = useSetAtom(dynamicNodesAtom as any) const setDynamicVisible = useSetAtom(dynamicVisibleAtom) - const setSubgraphs = useSetAtom(subgraphsAtom as any) - const setSubgraphsVisible = useSetAtom(subgraphsVisibleAtom) + const setFsgs = useSetAtom(fsgAtom as any) + const setFsgsVisible = useSetAtom(fsgVisibleAtom) return () => { workerCleanUp() @@ -42,7 +42,7 @@ export const useCleanup = (): VoidFunction => { setModelPath(null) setDynamicNodes(null) setDynamicVisible(false) - setSubgraphs(null) - setSubgraphsVisible(false) + setFsgs(null) + setFsgsVisible(false) } } diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/hooks/useNewPathForLayout.ts b/plugins/mindstudio-insight-plugins/ModelVis/app/src/hooks/useNewPathForLayout.ts index 5189a06bb..95a95f2a8 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/hooks/useNewPathForLayout.ts +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/hooks/useNewPathForLayout.ts @@ -23,7 +23,7 @@ import { modelPathAtom, nodesEdgesAtom, recentProjCache, - subgraphsVisibleAtom, + fsgVisibleAtom, translateAtom, useSelectionHistory, useZoom } from "stores" @@ -35,7 +35,7 @@ export const useNewPathForLayout = (): LayoutNewPath => { const setModelData = useSetAtom(modelDataAtom) const setLayoutRet = useSetAtom(nodesEdgesAtom) const setDynamicVisible = useSetAtom(dynamicVisibleAtom) - const setSubgraphsVisible = useSetAtom(subgraphsVisibleAtom) + const setFsgsVisible = useSetAtom(fsgVisibleAtom) const [translate, setTranslate] = useAtom(translateAtom) const [zoom, , resetZoom] = useZoom() const setLoading = useSetAtom(loadingAtom) @@ -64,7 +64,7 @@ export const useNewPathForLayout = (): LayoutNewPath => { setModelData(model) setLayoutRet({nodes, edges}) setDynamicVisible(false) - setSubgraphsVisible(false) + setFsgsVisible(false) if (translate.x !== 0 || translate.y !== 0) setTranslate({ x: 0, y: 0 diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/icons/subgraph.svg b/plugins/mindstudio-insight-plugins/ModelVis/app/src/icons/fsg.svg similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/app/src/icons/subgraph.svg rename to plugins/mindstudio-insight-plugins/ModelVis/app/src/icons/fsg.svg diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/locales/en.json b/plugins/mindstudio-insight-plugins/ModelVis/app/src/locales/en.json index 8b6332482..8d6692997 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/locales/en.json +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/locales/en.json @@ -10,8 +10,8 @@ "resetZoom": "Reset Zoom", "zoomOut": "ZoomOut", "center": "Center", - "displaySubgraphPanel": "Display SubGraphs Panel", - "hideSubgraphPanel": "Hide SubGraphs Panel", + "displayFsgPanel": "Display FSG Panel", + "hideFsgPanel": "Hide FSG Panel", "markDynOp": "Mark Dynamic Op", "unmarkDynOp": "Unmark Dynamic Op" }, @@ -29,18 +29,18 @@ "close": "Close Project", "recent": "Recent Projects" }, - "subgraph": { + "fsg": { "minRepeatTimes": "Minimum Repetition: ", - "nodeInSubgraph": "Nodes Number: ", + "nodeInFsg": "Nodes Number: ", "query": "Query", - "subgraph": "SubGraph", + "fsg": "Structure", "count": "Count", "nodeCount": "Nodes Number", "meanDuration": "Mean Duration(us)", "totalDuration": "Total Duration(us)", "paginationTotal": "Total {total} items", - "displaySubgraphs": "Display", - "hideSubgraphs": "Hide", + "displayFsgs": "Display", + "hideFsgs": "Hide", "invalidQueryWarning": "Invalid Condition: The number of nodes on the left side cannot be greater than that on the right side" } } diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/locales/zh-CN.json b/plugins/mindstudio-insight-plugins/ModelVis/app/src/locales/zh-CN.json index aac674a29..a27c52df1 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/locales/zh-CN.json +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/locales/zh-CN.json @@ -10,8 +10,8 @@ "resetZoom": "重置缩放", "zoomOut": "放大", "center": "居中", - "displaySubgraphPanel": "显示重复子图配置看板", - "hideSubgraphPanel": "隐藏重复子图配置看板", + "displayFsgPanel": "显示重复结构配置看板", + "hideFsgPanel": "隐藏重复结构配置看板", "markDynOp": "添加动态算子标识", "unmarkDynOp": "去除动态算子标识" }, @@ -29,18 +29,18 @@ "close": "关闭项目", "recent": "最近的项目" }, - "subgraph": { + "fsg": { "minRepeatTimes": "至少重复:", - "nodeInSubgraph": "子图中节点数量", + "nodeInFsg": "结构中节点数量", "query": "查询", - "subgraph": "子图", + "fsg": "结构", "count": "出现次数", "nodeCount": "节点数量", "meanDuration": "平均耗时(us)", "totalDuration": "总耗时(us)", "paginationTotal": "总共{total}条", - "displaySubgraphs": "标记重复子图", - "hideSubgraphs": "隐藏重复子图", - "invalidQueryWarning": "无效查询条件:子图中节点数量范围左侧不能大于右侧" + "displayFsgs": "标记重复结构", + "hideFsgs": "隐藏重复结构", + "invalidQueryWarning": "无效查询条件:结构中节点数量范围左侧不能大于右侧" } } diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/convex-hull.ts b/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/convex-hull.ts index 6e4470edd..b86b8cb1c 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/convex-hull.ts +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/convex-hull.ts @@ -15,11 +15,11 @@ import { Nodes } from "./worker" -const collectPoints = (subgraph: string[]) => { +const collectPoints = (fsg: string[]) => { const points: Point[] = [] for (const { id, x, y, width, height } of Nodes) { - if (subgraph.includes(id)) { + if (fsg.includes(id)) { points.push({ x, y }) points.push({ x: x + width, y }) points.push({ x: x + width, y: y + height }) @@ -70,7 +70,7 @@ const isClockwise = (points: Point[], p: Point) => { const crossProduct = (o: Point, a: Point, b: Point) => (a.x - o.x) * (b.y - o.y) - (a.y - o.y) * (b.x - o.x) -export const generatePath = (subgraph: string[]) => { - const points = collectPoints(subgraph) +export const generatePath = (fsg: string[]) => { + const points = collectPoints(fsg) return convexHull(points) } diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/render.ts b/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/render.ts index 339b34949..3ce24e1bf 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/render.ts +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/render.ts @@ -28,12 +28,12 @@ import { Ctx, DYN_HEIGHT, DYN_WIDTH, - DisplaySubgraph, + DisplayFsg, Edges, GraphTheme, Height, MarkDynOp, - MaxSubgraphs, + MaxFsgs, Nodes, TranslateX, TranslateY, @@ -67,7 +67,7 @@ const render = () => { const ex = (Width - TranslateX) / Zoom const ey = (Height - TranslateY) / Zoom - if (DisplaySubgraph && MaxSubgraphs !== null) renderMaxSubgraphs() + if (DisplayFsg && MaxFsgs !== null) renderMaxFsgs() renderNodes(Nodes, sx, sy, ex, ey) // When the zoom is too small, the edge is hard to see, so it is hidden @@ -77,8 +77,8 @@ const render = () => { renderEdges(Edges, sx, sy, ex, ey) } -const renderSubgraph = (subgraph: string[]) => { - const path = generatePath(subgraph) +const renderFsg = (fsg: string[]) => { + const path = generatePath(fsg) Ctx.save() Ctx.lineWidth = 2 Ctx.strokeStyle = GraphTheme === "dark" ? "#8D98D4" : "#6440B4" @@ -96,7 +96,7 @@ const renderSubgraph = (subgraph: string[]) => { Ctx.restore() } -const renderMaxSubgraphs = () => MaxSubgraphs.forEach(renderSubgraph) +const renderMaxFsgs = () => MaxFsgs.forEach(renderFsg) const MARGIN = 3 const PADDING_X = 3 diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/worker.ts b/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/worker.ts index 12f2e4c4f..d36d4d4df 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/worker.ts +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/src-worker/worker.ts @@ -38,8 +38,8 @@ export let Edges: RenderEdge[] | null = null! export let VisibleNodes: RenderNode[] | null = null! export let VisibleEdges: RenderEdge[] | null = null! export let HighlightTarget: RenderNode | RenderEdge | null = null! -export let MaxSubgraphs: string[][] = null! -export let DisplaySubgraph = false +export let MaxFsgs: string[][] = null! +export let DisplayFsg = false export let MarkDynOp = false export let Width: number export let Height: number @@ -117,8 +117,8 @@ const handleInit = (payload: InitPayload) => { const handleNewProj = (payload: NewProjectPayload) => { applyLayoutResul(payload.data) MarkDynOp = false - DisplaySubgraph = false - MaxSubgraphs = null + DisplayFsg = false + MaxFsgs = null HighlightTarget = null HighlightCtx.clearRect(0, 0, Width, Height) @@ -140,7 +140,7 @@ const handleResize = (payload: ResizePayload) => { HighlightCanvas.width = payload.width * DPR HighlightCanvas.height = payload.height * DPR HighlightCtx = HighlightCanvas.getContext("2d") - DisplaySubgraph = payload.subgraphVis + DisplayFsg = payload.fsgVis rerender() } @@ -255,15 +255,15 @@ const handleHighlight = (payload: HighlightPayload) => { highlight() } -const handleInitSubgraphs = (payload: InitSubgraphsPayload) => { - MaxSubgraphs = payload.subgraphs - DisplaySubgraph = true +const handleInitFsg = (payload: InitFsgsPayload) => { + MaxFsgs = payload.fsgs + DisplayFsg = true rerender() } -const handleToggleSubgraph = (payload: ToggleSubgraphsPayload) => { - DisplaySubgraph = payload.display +const handleToggleFsg = (payload: ToggleFsgsPayload) => { + DisplayFsg = payload.display rerender() } @@ -284,8 +284,8 @@ const handleDestroy = () => { VisibleNodes = null VisibleEdges = null MarkDynOp = false - DisplaySubgraph = false - MaxSubgraphs = null + DisplayFsg = false + MaxFsgs = null } const Handlers: PayloadHandlers = { @@ -298,8 +298,8 @@ const Handlers: PayloadHandlers = { "search": handleSearch, "hit-test": handleHitTest, "highlight": handleHighlight, - "init-subgraphs": handleInitSubgraphs, - "toggle-subgraphs": handleToggleSubgraph, + "init-fsgs": handleInitFsg, + "toggle-fsgs": handleToggleFsg, "toggle-dyn-op": handleToggleDynOp, "clear-highlight": handleClearHighlight, "destroy": handleDestroy diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/stores/app-context.ts b/plugins/mindstudio-insight-plugins/ModelVis/app/src/stores/app-context.ts index 465cba515..48115a43e 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/stores/app-context.ts +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/stores/app-context.ts @@ -1,9 +1,9 @@ import { atom } from "jotai" export const gridVisibleAtom = atom(true) -export const subgraphsVisibleAtom = atom(false) -export const subgraphPanelVisibleAtom = atom(false) -export const subgraphsAtom = atom(null!) +export const fsgVisibleAtom = atom(false) +export const fsgPanelVisibleAtom = atom(false) +export const fsgAtom = atom(null!) export const dynamicVisibleAtom = atom(false) export const dynamicNodesAtom = atom(null) export const modelPathAtom = atom(null) diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/types/ipc.d.ts b/plugins/mindstudio-insight-plugins/ModelVis/app/src/types/ipc.d.ts index 44e3a9733..ca25a622f 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/types/ipc.d.ts +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/types/ipc.d.ts @@ -17,7 +17,7 @@ type ResizePayload = { type: "resize" width: number height: number - subgraphVis: boolean + fsgVis: boolean } type TransformPayload = { @@ -53,13 +53,13 @@ type HighlightPayload = { target: RenderNode | RenderEdge } -type InitSubgraphsPayload = { - type: "init-subgraphs" - subgraphs: string[][] +type InitFsgsPayload = { + type: "init-fsgs" + fsgs: string[][] } -type ToggleSubgraphsPayload = { - type: "toggle-subgraphs" +type ToggleFsgsPayload = { + type: "toggle-fsgs" display: boolean } @@ -86,8 +86,8 @@ type Payload = | SearchPayload | HitTestPayload | HighlightPayload - | InitSubgraphsPayload - | ToggleSubgraphsPayload + | InitFsgsPayload + | ToggleFsgsPayload | ToggleDynOpPayload | ClearHighlightPayload | DestroyPayload diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/types/model.d.ts b/plugins/mindstudio-insight-plugins/ModelVis/app/src/types/model.d.ts index e02731a20..4ab092b53 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/types/model.d.ts +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/types/model.d.ts @@ -97,20 +97,20 @@ type NodeId = { nid: string } -type SubgraphInstance = { +type FsgInstance = { node_num: number node_ids: NodeId[] } -type SubgraphRet = { +type FsgRet = { optype_struct: string total: number - instances: SubgraphInstance[] + instances: FsgInstance[] } -type SubgraphTableRow = { +type FsgTableRow = { key: string - subgraph: string + fsg: string count: number nodeCount: number meanDuration: number diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/worker-apis.ts b/plugins/mindstudio-insight-plugins/ModelVis/app/src/worker-apis.ts index 53055c4f8..879eb51b6 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/worker-apis.ts +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/worker-apis.ts @@ -49,7 +49,7 @@ export const workerResize = (payload: MainThreadResizePayload) => { type: "resize", width: payload.width, height: payload.height, - subgraphVis: payload.subgraphVis + fsgVis: payload.fsgVis } ) } @@ -91,11 +91,11 @@ export const workerHighlight = (target: RenderNode | RenderEdge) => export const workerToggleDynOp = (mark: boolean) => WebWorker.postMessage({type: "toggle-dyn-op", mark}) -export const workerInitSubgraphs = (subgraphs: string[][]) => - WebWorker.postMessage({type: "init-subgraphs", subgraphs}) +export const workerInitFsgs = (fsgs: string[][]) => + WebWorker.postMessage({type: "init-fsgs", fsgs}) -export const workerToggleSubgraphs = (display: boolean) => - WebWorker.postMessage({type: "toggle-subgraphs", display}) +export const workerToggleFsgs = (display: boolean) => + WebWorker.postMessage({type: "toggle-fsgs", display}) export const workerCleanUp = () => WebWorker.postMessage({type: "destroy"}) diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/.gitignore b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/.gitignore similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/.gitignore rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/.gitignore diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/Cargo.toml b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/Cargo.toml similarity index 93% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/Cargo.toml rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/Cargo.toml index 853af43ba..aa2d62cca 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/Cargo.toml +++ b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "subgraph" +name = "fsg" version = "0.1.0" edition = "2024" diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/README.md b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/README.md similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/README.md rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/README.md diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/gspan.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/gspan.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/gspan.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/gspan.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/misc.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/misc.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/misc.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/misc.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/mod.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/mod.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/mod.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/mod.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/dfs.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/dfs.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/dfs.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/dfs.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/dfs_code.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/dfs_code.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/dfs_code.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/dfs_code.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/edge.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/edge.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/edge.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/edge.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/graph.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/graph.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/graph.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/graph.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/history.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/history.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/history.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/history.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/mod.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/mod.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/mod.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/mod.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/prev_dfs.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/prev_dfs.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/prev_dfs.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/prev_dfs.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/projected.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/projected.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/projected.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/projected.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/vertex.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/vertex.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/models/vertex.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/models/vertex.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/result.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/result.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/gspan/result.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/gspan/result.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/io/mod.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/io/mod.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/io/mod.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/io/mod.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/io/model_graph.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/io/model_graph.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/io/model_graph.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/io/model_graph.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/io/node.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/io/node.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/io/node.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/io/node.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/io/output.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/io/output.rs similarity index 100% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/io/output.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/io/output.rs diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/lib.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/lib.rs similarity index 98% rename from plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/lib.rs rename to plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/lib.rs index 3085e09b4..0d23f33e6 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/rust/subgraph/src/lib.rs +++ b/plugins/mindstudio-insight-plugins/ModelVis/rust/fsg/src/lib.rs @@ -40,7 +40,7 @@ impl From for ModelNode { } } -pub fn subgraphs_bin( +pub fn fsgs_bin( path: &str, min_inner_support: usize, min_vertices: usize, diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/model.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/model.rs index c195b0a8e..6170f1777 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/model.rs +++ b/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/model.rs @@ -25,7 +25,7 @@ pub struct Model { pub nodes: HashMap, pub edges: Vec<(String, String)>, pub parameters: HashMap, - pub subgraphes: HashMap, + pub subgraphs: HashMap, pub nesting_map: HashMap, } diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/pbtxt/onnx.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/pbtxt/onnx.rs index d0b53a153..58dd52bd8 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/pbtxt/onnx.rs +++ b/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/pbtxt/onnx.rs @@ -56,8 +56,8 @@ impl From for Model { nodes: ctx.nodes.into_iter().map(|(k, v)| (String::from(k), v)).collect(), edges: ctx.edges.into_iter().map(|(s, t)| (String::from(s), String::from(t))).collect(), parameters: HashMap::new(), - subgraphes: ctx - .subgraphes + subgraphs: ctx + .subgraphs .into_iter() .map(|k| (String::from(k), Subgraph { name: String::from(k) })) .collect(), @@ -92,7 +92,7 @@ struct GraphParsingContext<'a> { nodes: HashMap<&'a str, Node>, edges: Vec<(&'a str, &'a str)>, tensors: HashMap<&'a str, Tensor>, - subgraphes: Vec<&'a str>, + subgraphs: Vec<&'a str>, input_count_map: HashMap<&'a str, i32>, output_count_map: HashMap<&'a str, i32>, nesting_map: HashMap<&'a str, &'a str>, @@ -105,7 +105,7 @@ impl<'a> GraphParsingContext<'a> { nodes: HashMap::new(), edges: Vec::new(), tensors: HashMap::new(), - subgraphes: vec![], + subgraphs: vec![], input_count_map: HashMap::new(), output_count_map: HashMap::new(), nesting_map: HashMap::new(), @@ -122,7 +122,7 @@ impl<'a> GraphParsingContext<'a> { match attr.type_.enum_value_or_default() { GRAPH => if let Some(graph) = attr.g.as_ref() { - self.subgraphes.push(&node.name); + self.subgraphs.push(&node.name); self.preprocess(graph) }, GRAPHS => attr.graphs.iter().for_each(|g| self.preprocess(g)), diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/geir.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/geir.rs index dade16f47..09ff295de 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/geir.rs +++ b/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/geir.rs @@ -62,7 +62,7 @@ impl From for Model { nodes, edges: vec![], parameters, - subgraphes: HashMap::new(), + subgraphs: HashMap::new(), nesting_map: HashMap::new(), } } diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/mindir.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/mindir.rs index ec62f6efe..1ec0ce3a5 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/mindir.rs +++ b/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/mindir.rs @@ -50,7 +50,7 @@ impl From for Model { nodes: ctx.nodes, edges: ctx.edges, parameters: ctx.parameters, - subgraphes: HashMap::new(), + subgraphs: HashMap::new(), nesting_map: HashMap::new(), } } diff --git a/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/onnx.rs b/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/onnx.rs index faaedcc46..15995f734 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/onnx.rs +++ b/plugins/mindstudio-insight-plugins/ModelVis/rust/parser/src/processors/onnx.rs @@ -134,7 +134,7 @@ impl From for Model { nodes, edges, parameters, - subgraphes: HashMap::new(), + subgraphs: HashMap::new(), nesting_map: HashMap::new(), } } -- Gitee