This contains my bachelors thesis and associated tex files, code snippets and maybe more. Topic: Data Movement in Heterogeneous Memories with Intel Data Streaming Accelerator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

44 lines
3.0 KiB

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:nsd="https://structorizer.fisch.lu" version="3.32-15" preRepeat="until " postFor="to" preReturn="return" postForIn="in" preWhile="while " output="OUTPUT" input="INPUT" preFor="for" preExit="exit" preLeave="leave" ignoreCase="true" preThrow="throw" preForIn="foreach" stepFor="by" namespace="" author="user" created="2024-01-18" changedby="user" changed="2024-01-18" origin="Structorizer 3.32-15" text="&#34;void CacheData::WaitOnCompletion()&#34;" comment="&#34;&#34;" color="ffffff" type="program" style="nice">
<children>
<alternative text="&#34;is cache valid (not nullptr)&#34;" comment="&#34;&#34;" color="ffffff" disabled="0">
<qTrue>
<instruction text="&#34;return immediately&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
</qTrue>
<qFalse>
<while text="&#34;while handlers is not valid (equals nullptr)&#34;" comment="&#34;&#34;" color="ffffff" disabled="0">
<qWhile>
<instruction text="&#34;handlers.wait()&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
</qWhile>
</while>
<instruction text="&#34;local_handlers &#60;- handlers.exchange(uint64::max)&#34;,&#34;handlers &#60;- uint64::max&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
<alternative text="&#34;is local_handlers valid (not nullptr and not uint64::max)&#34;" comment="&#34;&#34;" color="ffffff" disabled="0">
<qTrue>
<for text="&#34;foreach handler in local_handlers&#34;" comment="&#34;&#34;" counterVar="handler" startValue="" stepConst="" style="TRAVERSAL" insep="in" color="ffffff" disabled="0">
<qFor>
<instruction text="&#34;status &#60;- handler.wait()&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
</qFor>
</for>
<alternative text="&#34;status contains error&#34;" comment="&#34;&#34;" color="ffffff" disabled="0">
<qTrue>
<instruction text="&#34;cache &#60;- source pointer&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
<instruction text="&#34;free(destination pointer)&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
</qTrue>
<qFalse>
<instruction text="&#34;cache &#60;- destination pointer&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
</qFalse>
</alternative>
<instruction text="&#34;signal threads waiting on cache or handlers&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
</qTrue>
<qFalse>
<while text="&#34;while cache is not valid (equals nullptr)&#34;" comment="&#34;&#34;" color="ffffff" disabled="0">
<qWhile>
<instruction text="&#34;cache.wait()&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
</qWhile>
</while>
</qFalse>
</alternative>
</qFalse>
</alternative>
</children>
</root>