Ignore:
Timestamp:
May 16, 2011, 12:55:28 PM (13 years ago)
Author:
alain
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsarv4_generic_xbar/top.cpp

    r156 r172  
    5959///////////////////////////////////////////////////
    6060
    61 #define USE_OPENMP               0
    62 #define OPENMP_THREADS_NR        8
    63 
    64 #if USE_OPENMP
     61#define OMP_THREADS             8
     62
     63#ifdef _OPENMP
    6564#include <omp.h>
    6665#endif
     
    105104#define L1_DSETS                64
    106105
    107 #define FBUF_X_SIZE             128
    108 #define FBUF_Y_SIZE             128
    109 
    110 #define BDEV_SECTOR_SIZE        128
    111 #define BDEV_IMAGE_NAME         "../../softs/soft_transpose_giet/images.raw"
    112 
    113 #define BOOT_SOFT_NAME          "../../softs/soft_transpose_giet/bin.soft"
     106#define FBUF_X_SIZE             1024
     107#define FBUF_Y_SIZE             1024
     108
     109#define BDEV_SECTOR_SIZE        1024
     110#define BDEV_IMAGE_NAME         "../../softs/soft_filter_giet/philips_image.raw"
     111
     112#define BOOT_SOFT_NAME          "../../softs/soft_filter_giet/bin.soft"
    114113
    115114/////////////////////////////////////////////////////////
     
    277276    bool    trace_ok       = false;             // debug activated
    278277    size_t  from_cycle     = 0;                 // debug start cycle
     278    size_t  omp_threads    = OMP_THREADS;       // number of cores for OpenMP
    279279
    280280    ////////////// command line arguments //////////////////////
     
    292292                assert( ((nprocs == 1) || (nprocs == 2) || (nprocs == 4)) &&
    293293                        "NPROCS must be equal to 1, 2, or 4");
     294            }
     295            else if( (strcmp(argv[n],"-THREADS") == 0) && (n+1<argc) )
     296            {
     297                omp_threads = atoi(argv[n+1]);
    294298            }
    295299            else if( (strcmp(argv[n],"-XMAX") == 0) && (n+1<argc) )
     
    356360                std::cout << "     -XFB fram_buffer_number_of_pixels" << std::endl;
    357361                std::cout << "     -YFB fram_buffer_number_of_lines" << std::endl;
     362                std::cout << "     -THREADS number_of_cores_for_OpenMP" << std::endl;
    358363                exit(0);
    359364            }
     
    366371    std::cout << std::endl;
    367372
    368 #if USE_OPENMP
     373#ifdef _OPENMP
    369374        omp_set_dynamic(false);
    370         omp_set_num_threads(threads_nr);
    371         std::cerr << "Built with openmp version " << _OPENMP << std::endl;
     375        omp_set_num_threads(omp_threads);
     376        std::cout << "Built with openmp version " << _OPENMP << std::endl;
     377        std::cout << "Number of threads = " << omp_threads << std::endl;
    372378#endif
    373379
     
    607613    TsarV4ClusterXbar<vci_param, proc_iss, cmd_width, rsp_width>* clusters[xmax][ymax];
    608614
    609 #if USE_OPENMP
     615#ifdef _OPENMP
    610616
    611617#pragma omp parallel
    612618{
    613619#pragma omp for
    614     for( size_t i = 0 ; i  < (xmax * ymax); i++)
     620    for( int i = 0 ; i  < (int)(xmax * ymax); i++)
    615621    {
    616622        size_t x = i / ymax;
     
    618624
    619625#pragma omp critical
     626        {
    620627        std::ostringstream sc;
    621628        sc << "cluster_" << x << "_" << y;
     
    652659             loader);
    653660        }
    654 
    655 #else  // USE_OPENMP
     661    }
     662}
     663
     664#else  // _OPENMP
    656665
    657666    for( size_t x = 0 ; x  < xmax ; x++)
     
    701710    }
    702711   
    703 #endif  // USE_OPENMP
     712#endif  // _OPENMP
    704713
    705714    ///////////////////////////////////////////////////////////////
     
    831840    signal_resetn = true;
    832841
     842    sc_start(sc_core::sc_time(ncycles, SC_NS));
     843
     844/*
    833845    for ( size_t n=0 ; n<ncycles ; n++)
    834846    {
    835847        sc_start(sc_core::sc_time(1, SC_NS));
     848
    836849        if ( trace_ok && (n > from_cycle) )
    837850        {
    838851            std::cout << "****************** cycle " << std::dec << n ;
    839852            std::cout << " ***********************************" << std::endl;
    840 /*
    841             clusters[0][0]->proc[0]->print_trace();
     853            clusters[5][7]->proc[2]->print_trace();
     854            print_vci_signal("proc_5_7_2_d", clusters[5][7]->signal_vci_ini_d_proc[2]);
     855
    842856            clusters[0][0]->proc[1]->print_trace();
    843857            clusters[0][0]->proc[2]->print_trace();
    844858            clusters[0][0]->proc[3]->print_trace();
    845 
    846859            std::cout << std::endl; 
    847860
     
    855868            clusters[1][0]->proc[0]->print_trace();
    856869            clusters[1][0]->proc[1]->print_trace();
    857 */
    858870            clusters[1][0]->iniwrapperd->print_trace();
    859871            clusters[1][0]->proc[2]->print_trace();
     
    867879            print_dspin_signal("g2l_1_0_d RSP", clusters[1][0]->signal_dspin_rsp_g2l_d);
    868880            print_vci_signal("l2g_1_0_d", clusters[1][0]->signal_vci_l2g_d);
    869 /*
    870881            clusters[1][0]->proc[3]->print_trace();
    871882
     
    939950            if ( clusters[0][0]->signal_irq_bdev.read() != 0) std::cout << " IRQ_BDEV" << std::endl;
    940951            if ( clusters[0][0]->signal_proc_it[0].read() != 0) std::cout << " IRQ_PROC" << std::endl;
     952        }
     953    }
    941954*/
    942         }
    943     }
     955
    944956    return EXIT_SUCCESS;
    945957}
Note: See TracChangeset for help on using the changeset viewer.