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.

43 lines
3.0 KiB

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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">
  3. <children>
  4. <alternative text="&#34;is cache valid (not nullptr)&#34;" comment="&#34;&#34;" color="ffffff" disabled="0">
  5. <qTrue>
  6. <instruction text="&#34;return immediately&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
  7. </qTrue>
  8. <qFalse>
  9. <while text="&#34;while handlers is not valid (equals nullptr)&#34;" comment="&#34;&#34;" color="ffffff" disabled="0">
  10. <qWhile>
  11. <instruction text="&#34;handlers.wait()&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
  12. </qWhile>
  13. </while>
  14. <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>
  15. <alternative text="&#34;is local_handlers valid (not nullptr and not uint64::max)&#34;" comment="&#34;&#34;" color="ffffff" disabled="0">
  16. <qTrue>
  17. <for text="&#34;foreach handler in local_handlers&#34;" comment="&#34;&#34;" counterVar="handler" startValue="" stepConst="" style="TRAVERSAL" insep="in" color="ffffff" disabled="0">
  18. <qFor>
  19. <instruction text="&#34;status &#60;- handler.wait()&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
  20. </qFor>
  21. </for>
  22. <alternative text="&#34;status contains error&#34;" comment="&#34;&#34;" color="ffffff" disabled="0">
  23. <qTrue>
  24. <instruction text="&#34;cache &#60;- source pointer&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
  25. <instruction text="&#34;free(destination pointer)&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
  26. </qTrue>
  27. <qFalse>
  28. <instruction text="&#34;cache &#60;- destination pointer&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
  29. </qFalse>
  30. </alternative>
  31. <instruction text="&#34;signal threads waiting on cache or handlers&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
  32. </qTrue>
  33. <qFalse>
  34. <while text="&#34;while cache is not valid (equals nullptr)&#34;" comment="&#34;&#34;" color="ffffff" disabled="0">
  35. <qWhile>
  36. <instruction text="&#34;cache.wait()&#34;" comment="&#34;&#34;" color="ffffff" rotated="0" disabled="0"></instruction>
  37. </qWhile>
  38. </while>
  39. </qFalse>
  40. </alternative>
  41. </qFalse>
  42. </alternative>
  43. </children>
  44. </root>