From e5651827204d175e1a1086d2f5512bcb02ab6cda Mon Sep 17 00:00:00 2001 From: Jan <20126033+JanLJL@users.noreply.github.com> Date: Mon, 6 Nov 2017 16:03:42 +0100 Subject: [PATCH] added osaca image There is a malfunction in formatting the svg. In order to avoid this, I have to create a png of this vector graphic, but I can only do this at a CIP computer, therefore I have to wait till Wednesday. --- README.rst | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/README.rst b/README.rst index 784585b..2a8cbdf 100644 --- a/README.rst +++ b/README.rst @@ -45,7 +45,10 @@ Design ====== A schematic design of OSACA's workflow is shown below: [image] -.. :: doc/osaca-workflow.svg + +.. figure:: doc/osaca-workflow.svg + :width: 80% + :alt: OSACA workflow Usage @@ -73,7 +76,7 @@ For extracting the right kernel, one has to mark it beforehand. For this there a | **High level code** The OSACA marker is ``//STARTLOOP`` and must be put in one line in front of the loop head, and the loop code must be indented consistently. This means the marker and the head must have the same indentation level while the whole loop body needs to be more indented than the code before and after. For instance, this is a valid OSACA marker: -.. code:: c +.. code:: int i = 0; //STARTLOOP while(i < N){ @@ -81,11 +84,11 @@ The OSACA marker is ``//STARTLOOP`` and must be put in one line in front of the i++; } -**Assembly code** +| **Assembly code** Another way for marking a kernel is to insert the IACA byte markers in the assembly file in before and after the loop. For this, the start marker has to be inserted right in front of the loop label and the end marker directly after the jump instruction. Start and end marker can be seen in the example below: -.. code:: assembly +.. code:: movl $111,%ebx #IACA START MARKER .byte 100,103,144 #IACA START MARKER # LABEL @@ -107,7 +110,7 @@ The handling of ibench is shortly described in the example section below. Insert IACA markers ~~~~~~~~~~~~~~~~~~~ -Using the ``-m`` or ``--insert-marker`` flags for a given file, OSACA calls the implemented Kerncraft module for identifying and marking the inner-loop block in *manual mode*. More information about how this is done can be found in the `Kerncraft repository `. +Using the ``-m`` or ``--insert-marker`` flags for a given file, OSACA calls the implemented Kerncraft module for identifying and marking the inner-loop block in *manual mode*. More information about how this is done can be found in the `Kerncraft repository `_. Example =======