Changeset 336


Ignore:
Timestamp:
Jun 19, 2014, 1:35:35 PM (10 years ago)
Author:
alain
Message:

Cosmetic

Location:
soft/giet_vm/transpose
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/transpose/main.c

    r317 r336  
    1919#include "hard_config.h"
    2020#include "stdio.h"
    21 #include "malloc.h"
    2221#include "barrier.h"
    2322
     
    2625#define FILE_PATHNAME       "misc/images.raw"   // file pathname on disk
    2726
    28 #define INSTRUMENTATION_OK  0                   // display statistcs on TTY when non zero
     27#define INSTRUMENTATION_OK  0                   // display statistics on TTY when non zero
    2928
    3029///////////////////////////////////////////////////////
     
    5756giet_barrier_t barrier_3;
    5857giet_barrier_t barrier_4;
     58giet_barrier_t barrier_5;
    5959
    6060volatile unsigned int init_ok = 1;
     
    6464{
    6565
    66     int          file;                                             // file descriptor for images
     66    int          file;                                             // file descriptor
    6767    unsigned int l;                                                // line index for loops
    6868    unsigned int p;                                                // pixel index for loops
    6969
    70     unsigned int proc_id     = giet_procid();                      // processor id
    71     unsigned int lpid        = proc_id % NB_PROCS_MAX;             // local processor id
    72     unsigned int cluster_xy  = proc_id / NB_PROCS_MAX;             // cluster index (8 bits format)
    73     unsigned int x           = cluster_xy >> Y_WIDTH;              // x coordinate
    74     unsigned int y           = cluster_xy & ((1<<Y_WIDTH)-1);      // y coordinate
    75 
    76     unsigned int npixels     = NN * NN;                            // number of pixel per image
    77     unsigned int nblocks     = npixels / 512;                      // number of blocks per image
    78     unsigned int image       = 0;                                  // image counter
    79 
    80     unsigned int nclusters   = X_SIZE * Y_SIZE;                    // number of clusters with procs
    81     unsigned int cluster_id  = (x * Y_SIZE) + y;                   // "continuous" cluster index   
    82     unsigned int ntasks      = nclusters * NB_PROCS_MAX;           // number of tasks
    83     unsigned int task_id     = (cluster_id * NB_PROCS_MAX) +lpid;  // "continuous" task index
     70    unsigned int proc_id    = giet_procid();                       // global processor id
     71    unsigned int lpid       = proc_id % NB_PROCS_MAX;              // local processor id
     72    unsigned int cluster_xy = proc_id / NB_PROCS_MAX;              // cluster index (8 bits format)
     73    unsigned int x          = cluster_xy >> Y_WIDTH;               // x coordinate
     74    unsigned int y          = cluster_xy & ((1<<Y_WIDTH)-1);       // y coordinate
     75
     76    unsigned int npixels    = NN * NN;                             // pixels per image
     77    unsigned int nblocks    = npixels / 512;                       // blocks per image
     78    unsigned int image      = 0;                                   // image counter
     79
     80    unsigned int nclusters  = X_SIZE * Y_SIZE;                     // clusters with procs
     81    unsigned int cluster_id = (x * Y_SIZE) + y;                    // "continuous" cluster index   
     82    unsigned int ntasks     = nclusters * NB_PROCS_MAX;            // number of tasks
     83    unsigned int task_id    = (cluster_id * NB_PROCS_MAX) + lpid;  // "continuous" task index
    8484
    8585    // processor [0,0,0] makes parameters checking and barriers initialization
     
    100100        }
    101101
    102         if ( ntasks > 1 )
    103         {
    104             barrier_init( &barrier_0, ntasks );
    105             barrier_init( &barrier_1, ntasks );
    106             barrier_init( &barrier_2, ntasks );
    107             barrier_init( &barrier_3, ntasks );
    108             barrier_init( &barrier_4, ntasks );
    109         }
     102        barrier_init( &barrier_0, ntasks );
     103        barrier_init( &barrier_1, ntasks );
     104        barrier_init( &barrier_2, ntasks );
     105        barrier_init( &barrier_3, ntasks );
     106        barrier_init( &barrier_4, ntasks );
     107        barrier_init( &barrier_5, ntasks );
    110108
    111109        giet_shr_printf("\n[TRANSPOSE] Proc [%d,%d,%d] completes barrier init at cycle %d\n",
    112                         0, 0, 0, giet_proctime() );
     110                        x, y, lpid, giet_proctime() );
     111
     112        giet_shr_printf(" - x_size    = %d\n", X_SIZE );
     113        giet_shr_printf(" - y_size    = %d\n", Y_SIZE );
     114        giet_shr_printf(" - y_size    = %d\n", Y_SIZE );
     115        giet_shr_printf(" - nprocs    = %d\n", NB_PROCS_MAX );
    113116        giet_shr_printf(" - nclusters = %d\n", nclusters );
    114117        giet_shr_printf(" - ntasks    = %d\n", ntasks );
     
    160163    }
    161164
    162     /////////////////////////////////////////////
    163     if ( ntasks > 1 ) barrier_wait( &barrier_0 );
     165    ///////////////////////////
     166    barrier_wait( &barrier_0 );
    164167
    165168    // Main loop (on images)
     
    185188        LOAD_END[cluster_id][lpid] = giet_proctime();
    186189
    187         /////////////////////////////////////////////
    188         if ( ntasks > 1 ) barrier_wait( &barrier_1 );
     190        ///////////////////////////
     191        barrier_wait( &barrier_1 );
    189192
    190193        // parallel transpose from buf_in to buf_out
     
    240243        TRSP_END[cluster_id][lpid] = giet_proctime();
    241244
    242         /////////////////////////////////////////////
    243         if ( ntasks > 1 ) barrier_wait( &barrier_2 );
     245        ///////////////////////////
     246        barrier_wait( &barrier_2 );
    244247
    245248        // optional parallel display from local buf_out to frame buffer
     
    265268            DISP_END[cluster_id][lpid] = giet_proctime();
    266269
    267             /////////////////////////////////////////////
    268             if ( ntasks > 1 ) barrier_wait( &barrier_3 );
     270            ///////////////////////////
     271            barrier_wait( &barrier_3 );
    269272        }
    270273
     
    298301            {
    299302                giet_shr_printf("\n[TRANSPOSE] proc [%d,%d,0] checksum OK"
    300                                 " for image %d\n",
    301                                 x, y, image );
     303                                " for image %d at cycle %d\n",
     304                                x, y, image, giet_proctime() );
    302305            }
    303306            else
    304307            {
    305308                giet_shr_printf("\n[TRANSPOSE] proc [%d,%d,0] checksum KO"
    306                                 " for image %d\n",
    307                                 x, y, image );
    308             }
    309         }
     309                                " for image %d at cycle %d\n",
     310                                x, y, image, giet_proctime() );
     311            }
     312        }
     313
     314        ///////////////////////////
     315        barrier_wait( &barrier_4 );
    310316
    311317        // instrumentation done by processor [0,0,0]
     
    374380
    375381        //////////////////////////////////////////////////
    376         // all tasks wait instrumentation completion
     382        // all tasks must wait instrumentation completion
    377383        //////////////////////////////////////////////////
    378         if ( ntasks > 1 ) barrier_wait( &barrier_4 );
     384        barrier_wait( &barrier_5 );
    379385
    380386    } // end while image     
  • soft/giet_vm/transpose/transpose.py

    r317 r336  
    44
    55######################################################################################
    6 #   file   : transpose.py
     6#   file   : transpose.py  (for the transpose application)
    77#   date   : may 2014
    88#   author : Alain Greiner
Note: See TracChangeset for help on using the changeset viewer.