Changeset 630 for trunk/user/fft


Ignore:
Timestamp:
May 21, 2019, 6:00:06 PM (5 years ago)
Author:
alain
Message:

1) Fix a bug in the vfs_add_special_dentries() function:
The <.> and <..> dentries must not be created on IOC and on the mapper
for the VFS root directory.
2) Fix a bug in the hal_gpt_allocate_pt2 function, related to the
use of the TSAR_LOCKED attribute to avoid concurrent mapping of the PTD1.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/user/fft/fft.c

    r629 r630  
    9191#define MODE                    COSIN           // DATA array initialisation mode
    9292#define CHECK                   0               
    93 #define DEBUG_MAIN              1               // trace main() function (detailed if odd)
     93#define DEBUG_MAIN              0               // trace main() function (detailed if odd)
    9494#define DEBUG_SLAVE             0               // trace slave() function (detailed if odd)
    9595#define DEBUG_FFT1D             0               // trace FFT1D() function (detailed if odd)
     
    404404    }
    405405
    406 
    407     // register sequencial initalisation completion cycle
     406    printf("\n[fft] main completes threads creation\n");
     407
    408408    get_cycle( &end_init_cycle );
     409
     410    // register sequencial time
    409411    init_time = (unsigned int)(end_init_cycle - start_init_cycle);
    410 
    411     printf("\n[fft] main completes threads creation\n");
    412412   
    413413    // main itself executes the slave() function
     
    510510    unsigned int max_sync = sync_time[0];
    511511
    512     for (tid = 1 ; tid < nthreads ; tid++)
     512    for (tid = 0 ; tid < nthreads ; tid++)
    513513    {
    514514        if (parallel_time[tid] > max_para)  max_para = parallel_time[tid];
     
    566566    MainNum = args->main_tid;
    567567
    568     // initialise instrumentation
    569568    get_cycle( &parallel_start );
    570569
     
    578577    pthread_barrier_wait( &barrier );
    579578    get_cycle( &barrier_stop );
    580     sync_time[MyNum] += (barrier_stop - barrier_start);
    581 
    582 // printf("\n[@@@] %s : thread %d exit first barrier / cycle %d\n",
    583 // __FUNCTION__, MyNum, (unsigned int)barrier_stop );
     579    sync_time[MyNum] += (unsigned int)(barrier_stop - barrier_start);
     580
     581#if DEBUG_SLAVE
     582printf("\n[@@@] %s : thread %d exit first barrier / cycle %d\n",
     583__FUNCTION__, MyNum, (unsigned int)barrier_stop );
     584#endif
    584585
    585586    // allocate and initialise local array upriv[]
     
    605606pthread_barrier_wait( &barrier );
    606607get_cycle( &barrier_stop );
    607 sync_time[MyNum] += (long)(barrier_stop - barrier_start);
     608sync_time[MyNum] += (unsigned int)(barrier_stop - barrier_start);
    608609FFT1D( -1 , data , trans , upriv , twid , MyNum , MyFirst , MyLast );
    609610#endif
    610611
    611     // register computation time
    612612    get_cycle( &parallel_stop );
    613     parallel_time[MyNum] = (parallel_stop - parallel_start);
     613
     614    // register parallel time
     615    parallel_time[MyNum] = (unsigned int)(parallel_stop - parallel_start);
    614616
    615617#if DEBUG_SLAVE
    616 printf("\n[fft] %s : thread %x exit / cycle %d\n", __FUNCTION__, MyNum, parallel_stop );
     618printf("\n[fft] %s : thread %x completes fft / p_start %d / p_stop %d\n",
     619__FUNCTION__, MyNum, (unsigned int)parallel_start, (unsigned int)parallel_stop );
     620int tid;
     621for (tid = 0 ; tid < nthreads ; tid++)
     622{
     623    printf("- tid %d : Sequencial %d / Parallel %d / Barrier %d\n",
     624    tid , init_time, parallel_time[tid], sync_time[tid] );
     625}
    617626#endif
    618627
     
    867876    pthread_barrier_wait( &barrier );
    868877    get_cycle( &barrier_stop );
    869     sync_time[MyNum] = (long)(barrier_stop - barrier_start);
     878    sync_time[MyNum] = (unsigned int)(barrier_stop - barrier_start);
    870879
    871880#if( DEBUG_FFT1D & 1 )
     
    897906#endif
    898907
    899     sync_time[MyNum] += (long)(barrier_stop - barrier_start);
     908    sync_time[MyNum] += (unsigned int)(barrier_stop - barrier_start);
    900909
    901910    // transpose tmp to x
     
    916925#endif
    917926
    918     sync_time[MyNum] += (long)(barrier_stop - barrier_start);
     927    sync_time[MyNum] += (unsigned int)(barrier_stop - barrier_start);
    919928
    920929    // do FFTs on rows of x and apply the scaling factor
     
    938947printf("\n[fft] %s : thread %d exit barrier after FFT on rows\n", __FUNCTION__, MyNum);
    939948#endif
    940     sync_time[MyNum] += (long)(barrier_stop - barrier_start);
     949    sync_time[MyNum] += (unsigned int)(barrier_stop - barrier_start);
    941950
    942951    // transpose x to tmp
     
    957966#endif
    958967
    959     sync_time[MyNum] += (long)(barrier_stop - barrier_start);
     968    sync_time[MyNum] += (unsigned int)(barrier_stop - barrier_start);
    960969    sync_time[MyNum] += (long)(barrier_stop - barrier_start);
    961970
Note: See TracChangeset for help on using the changeset viewer.