909 lines
88 KiB
Plaintext
909 lines
88 KiB
Plaintext
<mxfile host="Electron" modified="2026-03-04T08:30:19.973Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.4.0 Chrome/112.0.5615.204 Electron/24.5.1 Safari/537.36" etag="QubUAcj6knHrdmYaBs74" version="21.4.0" type="device" pages="3">
|
|
<diagram name="DeployWorkflow" id="LzJQsPxNJvw67I1T4rUK">
|
|
<mxGraphModel dx="3164" dy="2313" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
|
<root>
|
|
<mxCell id="0" />
|
|
<mxCell id="1" parent="0" />
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-96" value="<br>combined:<br>for calbin:" style="rounded=1;whiteSpace=wrap;html=1;align=left;dashed=1;fillColor=none;verticalAlign=top;arcSize=3;" parent="1" vertex="1">
|
|
<mxGeometry x="10" y="590" width="490" height="1630" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-92" value="<br>discrete:<br>foreach configuredNetwork:" style="rounded=1;whiteSpace=wrap;html=1;align=left;dashed=1;fillColor=none;verticalAlign=top;arcSize=3;" parent="1" vertex="1">
|
|
<mxGeometry x="-580" y="590" width="560" height="1630" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-1" value="bool AilLoadModel(&amp;vDev, path)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="40" y="-360" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-2" value="Calbin createCalbin(path)" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="80" y="-260" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-3" value="bool Configure(&amp;vDev, calbin)" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="80" y="-160" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-8" value="calbin {<br>&nbsp; networkA/B/C: {&nbsp; &nbsp;&nbsp;<br>&nbsp; &nbsp; chip0/1/2/x: {<br>&nbsp; &nbsp; &nbsp; cpu_cmd: {txt, size, ptr = -1},<br>&nbsp; &nbsp; &nbsp; ccu_elf: {bin, size, ptr = -1},<br>&nbsp; &nbsp; &nbsp; so_file:{.so, size, ptr=-1},<br>&nbsp; &nbsp; &nbsp; network_param: {data, ptr, size},<br>&nbsp; &nbsp; &nbsp; network_ibuf: {ptr, size},<br style="border-color: var(--border-color);">&nbsp; &nbsp; &nbsp; network_obuf: {ptr, size}<br>&nbsp; &nbsp; },<br>&nbsp; &nbsp; shared_ddr_space: {ptr, size}<br>&nbsp; }<br>&nbsp; job_type: {combined|discrete}<br style="border-color: var(--border-color);">&nbsp; job_ibuf: {ptr, size},<br style="border-color: var(--border-color);">&nbsp; job_obuf: {ptr, size},<br>}" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
|
<mxGeometry x="-240" y="-610" width="240" height="230" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-9" value="ConfiguredNetwork ConfigNetwork(&amp;vDev, calbin)" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="120" y="-60" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-10" value="for tar_data in {cpu_cmd, ccu_elf, param}: {<br>&nbsp; auto tar_data = GetParamFromCalbin(calbin);<br>&nbsp; pcie.ioctrl(fp, DMA_WRITE, &amp;tar_data, calbin.tar.ptr, calbin.tar.size);<br>}" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="160" y="40" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-11" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="600" y="2220" as="sourcePoint" />
|
|
<mxPoint x="600" y="-360" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-12" value="cpu_cmd, ccu_elf, param_data copied to {ptr, size}" style="rounded=1;whiteSpace=wrap;html=1;align=left;dashed=1;" parent="1" vertex="1">
|
|
<mxGeometry x="640" y="40" width="280" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-14" value="InputStream CreateInputStream(<font color="#ff0000">calbin</font>)<br>OutputStream CreateOutputStream(calbin)" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="120" y="600" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-16" value="InputStream {<br>&nbsp; direction HostToDev;<br>&nbsp; void* hostBufPtr;<br>&nbsp; dev_paddr;<br>&nbsp; data_size,<br>&nbsp; data_shape // ??<br>};<br><br>OutputStream {<br style="border-color: var(--border-color);">&nbsp; direction DevToHost;<br style="border-color: var(--border-color);">&nbsp; void* hostBufPtr;<br style="border-color: var(--border-color);">&nbsp; dev_paddr;<br>&nbsp; data_size,<br>&nbsp; data_shape // ??<br style="border-color: var(--border-color);">};" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
|
<mxGeometry x="240" y="-610" width="240" height="230" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-18" value="DevCache CreateCache(calbin.ddr_space.ptr, calbin.ddr_space.size)" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="120" y="700" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-20" value="RegisterResource(&amp;vDev, ConfiguredNetwork, DevCache)&nbsp;" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="120" y="800" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-21" value="HalCreateDevBuffer(&amp;vDev, void** device_ptr, size);" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="160" y="900" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-22" value="void HalCreateHostBuffer(&amp;inputStream)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="40" y="1020" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-23" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="1lCEvAD2Rnn47IWYKUgo-2" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="60" y="-280" as="sourcePoint" />
|
|
<mxPoint x="570" y="130" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="60" y="-220" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-24" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="1lCEvAD2Rnn47IWYKUgo-3" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="60" y="-220" as="sourcePoint" />
|
|
<mxPoint x="80" y="-121" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="60" y="-120" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-25" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.1;exitY=0.99;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="100" y="-80" as="sourcePoint" />
|
|
<mxPoint x="120" y="-19" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="100" y="-19" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-26" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.1;exitY=0.99;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="140" y="20" as="sourcePoint" />
|
|
<mxPoint x="160" y="81" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="140" y="81" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-27" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="100" y="-20" as="sourcePoint" />
|
|
<mxPoint x="120" y="641" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="100" y="641" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-28" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="100" y="640" as="sourcePoint" />
|
|
<mxPoint x="120" y="741" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="100" y="741" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-29" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="100" y="740" as="sourcePoint" />
|
|
<mxPoint x="120" y="841" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="100" y="841" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-30" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.1;exitY=0.99;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="140" y="880" as="sourcePoint" />
|
|
<mxPoint x="160" y="941" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="140" y="941" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-31" value="void HalCreateHostBuffer(&amp;outputStream)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="40" y="1120" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-32" value="AilGetModelInputs(&amp;inputStream)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="40" y="1220" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-35" value="pcie.ioctrl(fp, DMA_WRITE, istream.hostBufPtr, istream.dev_paddr, istream.data_size);" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="80" y="1320" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-36" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="1408.3333333333333" y="1000" as="sourcePoint" />
|
|
<mxPoint x="-620" y="1000" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-37" value="input_data copied to dev {ptr, size}" style="rounded=1;whiteSpace=wrap;html=1;align=left;dashed=1;" parent="1" vertex="1">
|
|
<mxGeometry x="680" y="1320" width="280" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-38" value="Infer(calbin);" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="40" y="1420" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-39" value="pcie.ioctrl(fp, REG_WRITE, DEV_JOBQ_LOW, calbin.A.cpu_cmds.ptr &amp; _32BIT_MASK);<br>pcie.ioctrl(fp, REG_WRITE, DEV_JOBQ_HIGH, (calbin.A.cpu_cmds.ptr &gt;&gt; 32) &amp; _32BIT_MASK);" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="80" y="1520" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-40" value="int32_t doneStatus = 0;<br>while(doneStatus == 0) {<br>&nbsp; pcie.ioctrl(fp, REG_READ, DEV_DONEQ_EMPTY, doneStatus);<br>}" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="80" y="1620" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-41" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.1;exitY=0.99;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="1lCEvAD2Rnn47IWYKUgo-39" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="60" y="1500" as="sourcePoint" />
|
|
<mxPoint x="80" y="1561" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="60" y="1560" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-45" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="60" y="1560" as="sourcePoint" />
|
|
<mxPoint x="80" y="1660" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="60" y="1660" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-50" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="60" y="1300" as="sourcePoint" />
|
|
<mxPoint x="80" y="1360" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="60" y="1360" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-51" value="AilGetModelOutputs(&amp;OutputStream, hostData)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="40" y="1720" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-52" value="while(true) {<br>&nbsp; cpuPollingJobStartQ();<br>&nbsp; cpuExecCmd() {<br>&nbsp; &nbsp; cpuPreprocess(); // optional<br>&nbsp; &nbsp; chip0StartChipxCpu(); // optional<br>&nbsp; &nbsp; cpuStartCcu();<br>&nbsp; &nbsp; cpuPollingCcuDone();<br>&nbsp; &nbsp; cpuPollingChipxDone(); // optional<br>&nbsp; &nbsp; cpuPostprocess(); // optional<br>&nbsp; &nbsp; cpuUpdateJobDoneQ();<br>&nbsp; }<br>}" style="rounded=1;whiteSpace=wrap;html=1;align=left;arcSize=7;" parent="1" vertex="1">
|
|
<mxGeometry x="680" y="1520" width="280" height="180" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-53" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="1lCEvAD2Rnn47IWYKUgo-39" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="520" y="1580" as="sourcePoint" />
|
|
<mxPoint x="680" y="1560" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-54" value="pcie.ioctrl(fp, DMA_READ, ostream.hostBufPtr, ostream.dev_paddr, ostream.data_size);" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="80" y="1820" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-55" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="60" y="1800" as="sourcePoint" />
|
|
<mxPoint x="80" y="1860" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="60" y="1860" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-56" value="output_data copied to hostBufPtr" style="rounded=1;whiteSpace=wrap;html=1;align=left;dashed=1;" parent="1" vertex="1">
|
|
<mxGeometry x="680" y="1820" width="280" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-57" value="" style="endArrow=classic;html=1;rounded=0;exitX=-0.001;exitY=0.774;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitPerimeter=0;" parent="1" source="1lCEvAD2Rnn47IWYKUgo-52" target="1lCEvAD2Rnn47IWYKUgo-40" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="410" y="1570" as="sourcePoint" />
|
|
<mxPoint x="690" y="1570" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-58" value="configuredNetwork {<br>&nbsp; &nbsp; chip0/1/2/x: {<br>&nbsp; &nbsp; &nbsp; cpu_cmd: {txt, size, ptr = -1},<br>&nbsp; &nbsp; &nbsp; ccu_elf: {bin, size, ptr = -1},<br>&nbsp; &nbsp; &nbsp; network_param: {data, ptr, size},<br>&nbsp; &nbsp; &nbsp; network_ibuf: {ptr, size},<br style="border-color: var(--border-color);">&nbsp; &nbsp; &nbsp; network_obuf: {ptr, size}<br>&nbsp; &nbsp; },<br>&nbsp; &nbsp; shared_ddr_space: {ptr, size},<br>&nbsp; &nbsp; istream,<br>&nbsp; &nbsp; ostream<br>}" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
|
<mxGeometry y="-610" width="240" height="230" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-59" value="Infer(configurednetworkA/B/C);" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="-480" y="1420" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-60" value="pcie.ioctrl(fp, REG_WRITE, DEV_JOBQ_LOW, network.cpu_cmds.ptr &amp; _32BIT_MASK);<br>pcie.ioctrl(fp, REG_WRITE, DEV_JOBQ_HIGH, (network.cpu_cmds.ptr &gt;&gt; 32) &amp; _32BIT_MASK);" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-440" y="1520" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-61" value="int32_t doneStatus = 0;<br>while(doneStatus == 0) {<br>&nbsp; pcie.ioctrl(fp, REG_READ, DEV_DONEQ_EMPTY, doneStatus);<br>}" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-440" y="1620" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-62" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.1;exitY=0.99;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="1lCEvAD2Rnn47IWYKUgo-60" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-460" y="1500" as="sourcePoint" />
|
|
<mxPoint x="-440" y="1561" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-460" y="1560" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-63" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-460" y="1560" as="sourcePoint" />
|
|
<mxPoint x="-440" y="1660" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-460" y="1660" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-64" value="AilGetModelOutputs(&amp;OutputStream, hostData)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="-480" y="1720" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-65" value="pcie.ioctrl(fp, DMA_READ, ostream.hostBufPtr, ostream.dev_paddr, ostream.data_size);" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-440" y="1820" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-66" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-460" y="1800" as="sourcePoint" />
|
|
<mxPoint x="-440" y="1860" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-460" y="1860" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-67" value="void HalDevBufFree(&amp;vDev)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="40" y="1920" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-68" value="void HalHostBufferFree(&amp;inputStream)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="40" y="2020" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-69" value="void HalHostBufferFree(&amp;outputStream)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="40" y="2120" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-70" value="bool AilLoadModel(&amp;vDev, path)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="-480" y="-360" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-71" value="Calbin createCalbin(path)" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-440" y="-260" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-72" value="bool Configure(&amp;vDev, calbin)" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-440" y="-160" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-73" value="ConfiguredNetwork ConfigNetwork(&amp;vDev, calbin)" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-400" y="-60" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-74" value="for tar_data in {cpu_cmd, ccu_elf, param}: {<br>&nbsp; auto tar_data = GetParamFromCalbin(calbin);<br>&nbsp; pcie.ioctrl(fp, DMA_WRITE, &amp;tar_data, calbin.tar.ptr, calbin.tar.size);<br>}" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-360" y="40" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-75" value="InputStream CreateInputStream(&amp;<font color="#0000ff">configuredNetwork</font>)<br>OutputStream CreateOutputStream(&amp;configuredNetwork)" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-400" y="600" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-76" value="DevCache CreateCache(configuredNetwork.ddr_space.ptr, configuredNetwork.ddr_space.size)" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-400" y="700" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-77" value="RegisterResource(&amp;vDev, ConfiguredNetwork, DevCache)&nbsp;" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-400" y="800" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-78" value="HalCreateDevBuffer(&amp;vDev, void** device_ptr, size);" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-360" y="900" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-79" value="void HalCreateHostBuffer(&amp;net.inputStream)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="-480" y="1020" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-80" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="1lCEvAD2Rnn47IWYKUgo-71" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-460" y="-280" as="sourcePoint" />
|
|
<mxPoint x="50" y="130" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-460" y="-220" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-81" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="1lCEvAD2Rnn47IWYKUgo-72" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-460" y="-220" as="sourcePoint" />
|
|
<mxPoint x="-440" y="-121" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-460" y="-120" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-82" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.1;exitY=0.99;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-420" y="-80" as="sourcePoint" />
|
|
<mxPoint x="-400" y="-19" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-420" y="-19" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-83" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.1;exitY=0.99;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-380" y="20" as="sourcePoint" />
|
|
<mxPoint x="-360" y="81" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-380" y="81" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-84" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-420" y="-20" as="sourcePoint" />
|
|
<mxPoint x="-400" y="641" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-420" y="641" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-85" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-420" y="640" as="sourcePoint" />
|
|
<mxPoint x="-400" y="741" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-420" y="741" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-86" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-420" y="740" as="sourcePoint" />
|
|
<mxPoint x="-400" y="841" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-420" y="841" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-87" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.1;exitY=0.99;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-380" y="880" as="sourcePoint" />
|
|
<mxPoint x="-360" y="941" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-380" y="941" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-88" value="void HalCreateHostBuffer(&amp;net.outputStream)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="-480" y="1120" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-89" value="AilGetModelInputs(&amp;nt.inputStream)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="-480" y="1220" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-90" value="pcie.ioctrl(fp, DMA_WRITE, istream.hostBufPtr, istream.dev_paddr, istream.data_size);" style="rounded=1;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
|
|
<mxGeometry x="-440" y="1320" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-91" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-460" y="1300" as="sourcePoint" />
|
|
<mxPoint x="-440" y="1360" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-460" y="1360" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-93" value="void HalDevBufFree(&amp;vDev)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="-480" y="1920" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-94" value="void HalHostBufferFree(&amp;nt.inputStream)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="-480" y="2020" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="1lCEvAD2Rnn47IWYKUgo-95" value="void HalHostBufferFree(&amp;nt.outputStream)" style="rounded=1;whiteSpace=wrap;html=1;align=left;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
<mxGeometry x="-480" y="2120" width="320" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="V4Q2w_theFtdO_9fRYQ5-1" value="<b><font style="font-size: 15px;">if (.so == true)</font></b><br>for net.so in {netA/B/C}: {<br>&nbsp; HalCreateDevBuffer(&amp;vDev, void** device_ptr, net.so.size);<br>&nbsp; auto tar_data = GetParamFromCalbin(calbin);<br>&nbsp; pcie.ioctrl(fp, DMA_WRITE, &amp;tar_data, calbin.tar.ptr, calbin.tar.size);<br>}" style="rounded=1;whiteSpace=wrap;html=1;align=left;arcSize=10;" parent="1" vertex="1">
|
|
<mxGeometry x="160" y="140" width="320" height="140" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="V4Q2w_theFtdO_9fRYQ5-2" value="<b><font style="font-size: 15px;">if (.so == true || multichip == true)</font></b><br>auto deployCmd = CreateDeployCmd(calbin);<br>HalCreateDevBuffer(&amp;vDev, void** device_ptr, deployCmd.size);<br>auto tar_data = DeployCmdToArray(deployCmd);<br>pcie.ioctrl(fp, DMA_WRITE, &amp;tar_data, device_ptr, deployCmd.size);<br>pcie.ioctrl(fp, REG_WRITE, DEV_JOBQ, device_ptr);<br>status = 0;<br>while(status == 0) {<br>&nbsp; pcie.ioctrl(fp. REG_READ, DEV_DONEQ, status)<br>}<br>HalDevBufferFree(&amp;vDev, void** device_ptr, deployCmd.size)<br>HalDevBufferFree(&amp;vDev, void** so_device_ptr, so.size)<br><b>// multichip &amp;&amp; multichip .so udpate</b>" style="rounded=1;whiteSpace=wrap;html=1;align=left;arcSize=10;" parent="1" vertex="1">
|
|
<mxGeometry x="160" y="300" width="320" height="260" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-1" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="140" y="80" as="sourcePoint" />
|
|
<mxPoint x="160" y="211" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="140" y="211" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-2" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="140" y="210" as="sourcePoint" />
|
|
<mxPoint x="160" y="421" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="140" y="421" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-3" value="for net.so in {netA/B/C}: {<br>&nbsp; HalCreateDevBuffer(&amp;vDev, void** device_ptr, net.so.size);<br>&nbsp; auto tar_data = GetParamFromCalbin(calbin);<br>&nbsp; pcie.ioctrl(fp, DMA_WRITE, &amp;tar_data, calbin.tar.ptr, calbin.tar.size);<br>}" style="rounded=1;whiteSpace=wrap;html=1;align=left;arcSize=10;" parent="1" vertex="1">
|
|
<mxGeometry x="-360" y="140" width="320" height="140" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-4" value="<b><font style="font-size: 15px;">if (.so == true || multichip == true)</font></b><br>auto deployCmd = CreateDeployCmd(calbin);<br>HalCreateDevBuffer(&amp;vDev, void** device_ptr, deployCmd.size);<br>auto tar_data = DeployCmdToArray(deployCmd);<br>pcie.ioctrl(fp, DMA_WRITE, &amp;tar_data, device_ptr, deployCmd.size);<br>pcie.ioctrl(fp, REG_WRITE, DEV_JOBQ, device_ptr);<br>status = 0;<br>while(status == 0) {<br>&nbsp; pcie.ioctrl(fp. REG_READ, DEV_DONEQ, status)<br>}<br>HalDevBufferFree(&amp;vDev, void** device_ptr, deployCmd.size)<br>HalDevBufferFree(&amp;vDev, void** so_device_ptr, so.size)<br><b style="border-color: var(--border-color);">// multichip &amp;&amp; multichip .so udpate</b>" style="rounded=1;whiteSpace=wrap;html=1;align=left;arcSize=10;" parent="1" vertex="1">
|
|
<mxGeometry x="-360" y="300" width="320" height="260" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-5" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-380" y="210" as="sourcePoint" />
|
|
<mxPoint x="-360" y="421" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-380" y="421" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-6" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="-380" y="80" as="sourcePoint" />
|
|
<mxPoint x="-360" y="211" as="targetPoint" />
|
|
<Array as="points">
|
|
<mxPoint x="-380" y="211" />
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-7" value=".so copied to dev temp space" style="rounded=1;whiteSpace=wrap;html=1;align=left;dashed=1;" parent="1" vertex="1">
|
|
<mxGeometry x="640" y="140" width="280" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-8" value="deployCmd copied to dev temp space<br><br>received deployCmd as Job<br><br>push doneq when exec cmd done" style="rounded=1;whiteSpace=wrap;html=1;align=left;arcSize=5;" parent="1" vertex="1">
|
|
<mxGeometry x="640" y="300" width="280" height="260" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-10" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="480" y="440" as="sourcePoint" />
|
|
<mxPoint x="640" y="440" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-11" value="" style="endArrow=classic;html=1;rounded=0;exitX=-0.005;exitY=0.691;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="FGB3oFuBwOzjHJ2-TQwH-8" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="490" y="450" as="sourcePoint" />
|
|
<mxPoint x="480" y="480" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-12" value="HOST" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=14;" parent="1" vertex="1">
|
|
<mxGeometry x="480" y="-310" width="110" height="50" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-13" value="DEV" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=14;" parent="1" vertex="1">
|
|
<mxGeometry x="610" y="-310" width="110" height="50" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-14" value="DEPLOY" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=14;" parent="1" vertex="1">
|
|
<mxGeometry x="640" y="930" width="110" height="50" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-15" value="RUN / INFER" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=14;" parent="1" vertex="1">
|
|
<mxGeometry x="640" y="1020" width="110" height="50" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="FGB3oFuBwOzjHJ2-TQwH-16" value="TODO:<br><div style=""><span style="background-color: initial;">1. multi-thread host, may start from HalCreateHostBuffer(), current thread need to get ping/pong net.istream from thread manager</span></div><div style=""><span style="background-color: initial;">2. multi-chip and chipx has .so update, TBD in createDeployCmd()</span></div><div style=""><span style="background-color: initial;">ANS: chip0 has largest ocupied memory</span></div><div style=""><span style="background-color: initial;">3. each netA/B/C may has an optional .so, so host should tell dev which .so should be loaded while inferring net</span></div><div style=""><span style="background-color: initial;">4. hostrt thread manager take into account:</span></div><div style=""><span style="background-color: initial;"><span style="white-space: pre;">	</span>4.1 ping/pong thread</span></div><div style=""><span style="background-color: initial;">&nbsp;<span style="white-space: pre;">	</span>4.2 pcie driver multi-task rule</span></div><div style=""><span style="background-color: initial;"><span style="white-space: pre;">	</span>4.3 host app multi-thread<br></span></div><div style=""><span style="background-color: initial;">5. memcopy next input data to dev while inferring current job</span></div><div style="">6. netmodel pipeline -&gt; combined or discrete ?</div><div style=""><br></div><div style="">7. chip0 can't load all chip init data/program</div><div style="">8. dev init details, if device not ready, what is host driver response</div><div style="">9. input data A/B/C/D, shape struct stored in netA/B/C/D</div><div style="">10. user preprocess</div><div style="">11. delete useless .so</div>" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontStyle=0;fontSize=14;" parent="1" vertex="1">
|
|
<mxGeometry x="1000" y="1040" width="410" height="400" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-1" value="<h1>Data struct:</h1><p>CalrtCalbin:&nbsp;<br><span style="white-space: pre;">	</span>|- vector&lt;CalbinNetwork&gt;:<br><span style="white-space: pre;">	</span><span style="white-space: pre;">	</span>|- CalbinSchipNetwork:<br><span style="white-space: pre;">	</span><span style="white-space: pre;">	</span><span style="white-space: pre;">	</span>|- CalbinSection<br></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
|
|
<mxGeometry x="-810" y="-1070" width="400" height="120" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-5" value="CalrtCalbin" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
<mxGeometry x="-810" y="-920" width="170" height="78" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-6" value="vector&lt;CalbinNetwork&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-5" vertex="1">
|
|
<mxGeometry y="26" width="170" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-8" value="CalbinJobType_e jobType" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-5" vertex="1">
|
|
<mxGeometry y="52" width="170" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-9" value="CalbinNetwork" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
<mxGeometry x="-600" y="-920" width="190" height="130" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-10" value="string networkName" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-9" vertex="1">
|
|
<mxGeometry y="26" width="190" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-11" value="int networkId" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-9" vertex="1">
|
|
<mxGeometry y="52" width="190" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-12" value="vector&lt;int&gt; targetChipIndex" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-9" vertex="1">
|
|
<mxGeometry y="78" width="190" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-13" value="vector&lt;CalbinSchpNetwork&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-9" vertex="1">
|
|
<mxGeometry y="104" width="190" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-17" value="CalbinSchipNetwork" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
<mxGeometry x="-380" y="-920" width="250" height="134" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-18" value="unordered_multimap&lt;CalbinSectionType_e, Calbinsection&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-17" vertex="1">
|
|
<mxGeometry y="26" width="250" height="54" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="AF61PKnEK5gGIBZ6lM1Z-20" value="CalbinCoreRsrc_e coreRsrc" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-17" vertex="1">
|
|
<mxGeometry y="80" width="250" height="54" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-21" value="CalbinSection" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
<mxGeometry x="70" y="-920" width="160" height="260" as="geometry">
|
|
<mxRectangle x="-150" y="-922" width="110" height="30" as="alternateBounds" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-22" value="name" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-21" vertex="1">
|
|
<mxGeometry y="26" width="160" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-23" value="path" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-21" vertex="1">
|
|
<mxGeometry y="52" width="160" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-24" value="type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-21" vertex="1">
|
|
<mxGeometry y="78" width="160" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-25" value="id" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-21" vertex="1">
|
|
<mxGeometry y="104" width="160" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-26" value="size" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-21" vertex="1">
|
|
<mxGeometry y="130" width="160" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-27" value="devAddr" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-21" vertex="1">
|
|
<mxGeometry y="156" width="160" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-28" value="offset" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-21" vertex="1">
|
|
<mxGeometry y="182" width="160" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="AF61PKnEK5gGIBZ6lM1Z-17" value="vector&lt;CalbinTensorInfo&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-21" vertex="1">
|
|
<mxGeometry y="208" width="160" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="AF61PKnEK5gGIBZ6lM1Z-16" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-21" vertex="1">
|
|
<mxGeometry y="234" width="160" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-29" value="CalbinSectionType_e" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
<mxGeometry x="-100" y="-920" width="140" height="234" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-30" value="NULL" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-29" vertex="1">
|
|
<mxGeometry y="26" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-31" value="CPU_CMD" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-29" vertex="1">
|
|
<mxGeometry y="52" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-32" value="CPU_SO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-29" vertex="1">
|
|
<mxGeometry y="78" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-33" value="CCU_ELF" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-29" vertex="1">
|
|
<mxGeometry y="104" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-34" value="RODATA" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-29" vertex="1">
|
|
<mxGeometry y="130" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-35" value="IBUF" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-29" vertex="1">
|
|
<mxGeometry y="156" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-36" value="OBUF" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-29" vertex="1">
|
|
<mxGeometry y="182" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="kmocdT7iAFOh53ksdyXf-37" value="MEMRSVD" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="kmocdT7iAFOh53ksdyXf-29" vertex="1">
|
|
<mxGeometry y="208" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="AF61PKnEK5gGIBZ6lM1Z-21" value="CalbinCoreRsrc_e" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
<mxGeometry x="-380" y="-750" width="140" height="104" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="AF61PKnEK5gGIBZ6lM1Z-22" value="CPU+CCU" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="AF61PKnEK5gGIBZ6lM1Z-21" vertex="1">
|
|
<mxGeometry y="26" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="AF61PKnEK5gGIBZ6lM1Z-23" value="CPU" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="AF61PKnEK5gGIBZ6lM1Z-21" vertex="1">
|
|
<mxGeometry y="52" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="AF61PKnEK5gGIBZ6lM1Z-24" value="CCU" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="AF61PKnEK5gGIBZ6lM1Z-21" vertex="1">
|
|
<mxGeometry y="78" width="140" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Xjp-Nfv6kiYs2145v0fd-1" value="CalbinJobType_e" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
<mxGeometry x="-810" y="-760" width="170" height="78" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Xjp-Nfv6kiYs2145v0fd-2" value="COMBINED" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="Xjp-Nfv6kiYs2145v0fd-1" vertex="1">
|
|
<mxGeometry y="26" width="170" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="Xjp-Nfv6kiYs2145v0fd-3" value="DISCRETE" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="Xjp-Nfv6kiYs2145v0fd-1" vertex="1">
|
|
<mxGeometry y="52" width="170" height="26" as="geometry" />
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
<diagram id="oiehN0wZ6b7ckfR2zWyT" name="InferBlock">
|
|
<mxGraphModel dx="3164" dy="1213" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
|
<root>
|
|
<mxCell id="0" />
|
|
<mxCell id="1" parent="0" />
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-3" value="CPU" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="280" y="120" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-4" value="CCU" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="680" y="120" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-7" value="Start" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="280" y="200" width="80" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-8" value="Calc" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="280" y="280" width="80" height="280" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-10" value="" style="endArrow=classic;html=1;rounded=0;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="150" y="200" as="sourcePoint" />
|
|
<mxPoint x="260" y="200" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-21" value="Job Start" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="jgqe-8yhuYv_FWsh-zXU-10" vertex="1" connectable="0">
|
|
<mxGeometry x="0.1262" y="-1" relative="1" as="geometry">
|
|
<mxPoint x="-3" y="-1" as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-11" value="End" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="280" y="560" width="80" height="120" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-13" value="runtime" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="160" y="220" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-14" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="260" y="200" width="20" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-15" value="compiler" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="160" y="400" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-16" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="260" y="280" width="20" height="280" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-17" value="compiler" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="120" y="600" width="120" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-18" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="260" y="560" width="20" height="120" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-19" value="" style="endArrow=classic;html=1;rounded=0;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="370" y="280.31" as="sourcePoint" />
|
|
<mxPoint x="670" y="280" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-29" value="CCU Start" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="jgqe-8yhuYv_FWsh-zXU-19" vertex="1" connectable="0">
|
|
<mxGeometry x="0.25" relative="1" as="geometry">
|
|
<mxPoint x="-27" as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-22" value="Calc" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="680" y="280" width="80" height="240" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="jgqe-8yhuYv_FWsh-zXU-24" value="End" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="680" y="520" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-1" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="370" y="360" as="sourcePoint" />
|
|
<mxPoint x="670" y="360" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-2" value="data sync" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="eEd2hMc1vHw8OQm65ahl-1" vertex="1" connectable="0">
|
|
<mxGeometry x="0.0522" y="1" relative="1" as="geometry">
|
|
<mxPoint as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-3" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="370" y="399.17" as="sourcePoint" />
|
|
<mxPoint x="670" y="399.17" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-4" value="data sync" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="eEd2hMc1vHw8OQm65ahl-3" vertex="1" connectable="0">
|
|
<mxGeometry x="0.0522" y="1" relative="1" as="geometry">
|
|
<mxPoint as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-5" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;fontStyle=1;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="370" y="440" as="sourcePoint" />
|
|
<mxPoint x="670" y="440" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-6" value="data sync" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="eEd2hMc1vHw8OQm65ahl-5" vertex="1" connectable="0">
|
|
<mxGeometry x="0.0522" y="1" relative="1" as="geometry">
|
|
<mxPoint as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-7" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="370" y="320" as="sourcePoint" />
|
|
<mxPoint x="670" y="320" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-8" value="data sync" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="eEd2hMc1vHw8OQm65ahl-7" vertex="1" connectable="0">
|
|
<mxGeometry x="0.0522" y="1" relative="1" as="geometry">
|
|
<mxPoint as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-11" value="..." style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="490" y="460" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-18" value="" style="endArrow=classic;html=1;rounded=0;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="670" y="520" as="sourcePoint" />
|
|
<mxPoint x="370" y="520" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-19" value="last data sync" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="eEd2hMc1vHw8OQm65ahl-18" vertex="1" connectable="0">
|
|
<mxGeometry x="0.5" y="-4" relative="1" as="geometry">
|
|
<mxPoint x="85" y="4" as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-20" value="CPU Start code by runtime: (ccu_scalar_ddr_offset, program_addr, pingpong_flag)<br style="font-size: 12px;">1. schip<br style="font-size: 12px;"><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span>1.1 (<font color="#0000ff">rt optional</font>) start_ccu(ccu_scalar_ddr_offset, program_addr, pingpong_flag)<br>&nbsp; &nbsp; 1.2 (<font color="#0000ff">rt optional</font>) jr to cpu cmd<br style="font-size: 12px;">2. mchip<br style="font-size: 12px;"><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span>2.1 chip0<br style="font-size: 12px;"><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span>2.1.1 clear sync reg; // TBD<br style="font-size: 12px;"><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span>2.1.2 send chipx ccu start cmds, start chipx<br style="font-size: 12px;"><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span>2.1.3 (<font style="border-color: var(--border-color);" color="#0000ff">rt optional</font>) start_ccu(program_addr, pingpong_flag);<br>&nbsp; &nbsp; &nbsp; &nbsp; 2.1.4 (<font style="border-color: var(--border-color);" color="#0000ff">rt optional</font>) jr to cpu cmd<br style="font-size: 12px;"><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span>2.2 chipx<br style="font-size: 12px;"><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-size: 12px;"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;</span></span>2.2.1 (<font color="#0000ff">rt optional</font>) start_ccu(ccu_scalar_ddr_offset, program_addr, pingpong_flag);<br>&nbsp; &nbsp; &nbsp; &nbsp; 2.2.2 (<font style="border-color: var(--border-color);" color="#0000ff">rt optional</font>) jr to cpu cmd" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="-520" y="200" width="520" height="200" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="eEd2hMc1vHw8OQm65ahl-22" value="CPU End code by runtime: (sync_reg_idx)<br style="font-size: 12px;">1. schip<br style="font-size: 12px;"><span style="white-space: pre; font-size: 12px;">	</span>1.1 if (jobInfo.ccu_en) polling ccu_done<br><span style="white-space: pre;">	</span>1.2 push job_done<br style="font-size: 12px;">2. mchip<br style="font-size: 12px;"><span style="white-space: pre; font-size: 12px;">	</span>2.1 chip0<br style="font-size: 12px;"><span style="white-space: pre; font-size: 12px;">	</span><span style="white-space: pre; font-size: 12px;">	</span>2.1.1 if (jobInfo.ccu_en) polling ccu_done<br><span style="white-space: pre;">	</span><span style="white-space: pre;">	</span>2.1.2 write_local_sync_unit(jobinfo.sync_reg_idx, op(+1));<br style="font-size: 12px;"><span style="white-space: pre; font-size: 12px;">	</span><span style="white-space: pre; font-size: 12px;">	</span>2.1.2 polling jobInfo.sync_reg_idx == jobInfo.sync_reg_exp; clear jobInfo.sync_reg_idx;<br style="font-size: 12px;"><span style="white-space: pre; font-size: 12px;">	</span><span style="white-space: pre; font-size: 12px;">	</span>2.1.3 push job_done<br style="font-size: 12px;"><span style="white-space: pre; font-size: 12px;">	</span>2.2 chipx<br style="font-size: 12px;"><span style="white-space: pre; font-size: 12px;">	</span><span style="white-space: pre; font-size: 12px;">	</span>2.2.1 if (jobInfo.ccu_en) polling ccu_done<br><span style="white-space: pre;">	<span style="white-space: pre;">	</span>2</span>.2.2 write_remote_sync_unit(jobInfo.sync_reg_idx, op(+1));" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="-520" y="560" width="520" height="240" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="F161TMbsHR6VZL9ehucd-1" value="" style="endArrow=classic;html=1;rounded=0;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="260" y="680" as="sourcePoint" />
|
|
<mxPoint x="150" y="680" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="F161TMbsHR6VZL9ehucd-2" value="Job Done" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="F161TMbsHR6VZL9ehucd-1" vertex="1" connectable="0">
|
|
<mxGeometry x="0.1262" y="-1" relative="1" as="geometry">
|
|
<mxPoint x="12" y="1" as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="F161TMbsHR6VZL9ehucd-3" value="HOST" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="80" y="120" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="yjv4cu9iE-W4nzvc3sZl-1" value="JobInfo {<br>&nbsp; jobId = {id};<br>&nbsp; jobPingPong = {ping, pong};<br>&nbsp; jobChipArch = {schip, mchip};<br>&nbsp; jobMchpSyncRegIdx = {index};<br>&nbsp; jobMchpSyncRegExp = {n};<br>&nbsp; jobCurCcuEn = {true, false};<br>&nbsp; jobCurCpuEn = {true};<br>};" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="-520" y="40" width="520" height="120" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-1" value="CPU" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="1120" y="120.00000000000001" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-2" value="CCU" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="1520" y="120.00000000000001" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-3" value="Start" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="1120" y="200" width="80" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-5" value="" style="endArrow=classic;html=1;rounded=0;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="990" y="200" as="sourcePoint" />
|
|
<mxPoint x="1100" y="200" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-6" value="Job Start" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="5Su-P1HTbWHp4YXqfi5x-5" vertex="1" connectable="0">
|
|
<mxGeometry x="0.1262" y="-1" relative="1" as="geometry">
|
|
<mxPoint x="-3" y="-1" as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-7" value="End" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="1120" y="560" width="80" height="120" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-8" value="runtime" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="1000" y="220" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-9" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="1100" y="200" width="20" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-12" value="runtime" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="960" y="600" width="120" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-13" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="1100" y="560" width="20" height="120" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-14" value="" style="endArrow=classic;html=1;rounded=0;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="1210" y="280.31" as="sourcePoint" />
|
|
<mxPoint x="1510" y="280" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-15" value="CCU Start" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="5Su-P1HTbWHp4YXqfi5x-14" vertex="1" connectable="0">
|
|
<mxGeometry x="0.25" relative="1" as="geometry">
|
|
<mxPoint x="-27" as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-16" value="Calc" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="1520" y="280" width="80" height="240" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-17" value="End" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="1520" y="520" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-29" value="" style="endArrow=classic;html=1;rounded=0;fontSize=12;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="1100" y="680" as="sourcePoint" />
|
|
<mxPoint x="990" y="680" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-30" value="Job Done" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;" parent="5Su-P1HTbWHp4YXqfi5x-29" vertex="1" connectable="0">
|
|
<mxGeometry x="0.1262" y="-1" relative="1" as="geometry">
|
|
<mxPoint x="12" y="1" as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-31" value="HOST" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="920" y="120.00000000000001" width="80" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-33" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
<mxPoint x="1160" y="540" as="sourcePoint" />
|
|
<mxPoint x="1160" y="300" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-34" value="Mchip Runtime Flow" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="80" y="40" width="200" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="5Su-P1HTbWHp4YXqfi5x-35" value="Schip Runtime Flow" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1">
|
|
<mxGeometry x="920" y="40" width="200" height="40" as="geometry" />
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
<diagram id="k9IGYZkrFEUXVz7xOHqi" name="Ping-pong_hostSide_design">
|
|
<mxGraphModel dx="1194" dy="663" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
|
<root>
|
|
<mxCell id="0" />
|
|
<mxCell id="1" parent="0" />
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-26" value="" style="group" parent="1" vertex="1" connectable="0">
|
|
<mxGeometry x="140" y="170" width="110" height="210" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-22" value="" style="rounded=0;whiteSpace=wrap;html=1;align=left;" parent="79QYY43FKgEBDrAf7__8-26" vertex="1">
|
|
<mxGeometry width="110" height="210" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-25" value="Host" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="79QYY43FKgEBDrAf7__8-26" vertex="1">
|
|
<mxGeometry y="10" width="40" height="10" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=-0.004;entryY=0.098;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="79QYY43FKgEBDrAf7__8-1" target="79QYY43FKgEBDrAf7__8-3" edge="1">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-7" value="ping" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="79QYY43FKgEBDrAf7__8-5" vertex="1" connectable="0">
|
|
<mxGeometry x="-0.3211" relative="1" as="geometry">
|
|
<mxPoint as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="79QYY43FKgEBDrAf7__8-1" edge="1">
|
|
<mxGeometry relative="1" as="geometry">
|
|
<mxPoint x="630" y="245" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-8" value="pong" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="79QYY43FKgEBDrAf7__8-6" vertex="1" connectable="0">
|
|
<mxGeometry x="-0.332" y="-2" relative="1" as="geometry">
|
|
<mxPoint as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-1" value="in-sw-queue" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
<mxGeometry x="380" y="200" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=-0.015;exitY=0.905;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;exitPerimeter=0;" parent="1" source="79QYY43FKgEBDrAf7__8-3" target="79QYY43FKgEBDrAf7__8-2" edge="1">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-12" value="pong" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="79QYY43FKgEBDrAf7__8-10" vertex="1" connectable="0">
|
|
<mxGeometry x="0.1386" relative="1" as="geometry">
|
|
<mxPoint as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1.013;entryY=0.911;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="79QYY43FKgEBDrAf7__8-2" target="79QYY43FKgEBDrAf7__8-4" edge="1">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-2" value="out-sw-queue" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
<mxGeometry x="380" y="300" width="120" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="79QYY43FKgEBDrAf7__8-3" edge="1">
|
|
<mxGeometry relative="1" as="geometry">
|
|
<mxPoint x="500" y="320" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-11" value="ping" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="79QYY43FKgEBDrAf7__8-9" vertex="1" connectable="0">
|
|
<mxGeometry x="0.1485" relative="1" as="geometry">
|
|
<mxPoint as="offset" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-3" value="DEV" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
|
|
<mxGeometry x="630" y="200" width="160" height="160" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.004;entryY=0.671;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="79QYY43FKgEBDrAf7__8-4" target="79QYY43FKgEBDrAf7__8-1" edge="1">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-4" value="istream0...ostream0<br>istream1...ostream1<br>istream2...ostream2<br>...<br>istream5...ostream5<br>istream6...ostream6" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
|
<mxGeometry x="150" y="200" width="120" height="160" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-18" value="multi-threads submit job" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
|
<mxGeometry x="290" y="200" width="60" height="30" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-19" value="multi-threads get job done" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
|
<mxGeometry x="290" y="300" width="60" height="30" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="79QYY43FKgEBDrAf7__8-21" value="two thread: ping and pong, pull job from in-sw-queue to dev. Then wait dev done and push done signal to out-sw-queue" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
|
<mxGeometry x="460" y="140" width="230" height="30" as="geometry" />
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
</mxfile>
|