Ignore:
Timestamp:
May 6, 2016, 3:06:29 PM (9 years ago)
Author:
meunier
Message:
  • Added several versions of rosenfeld: { SLOW, FAST } x { FEATURES, NO_FEATURES }
  • Added native linux compilation support
  • Added a script to check results natively
  • Started to refactor nrc code
File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/applications/rosenfeld/rosenfeld.py

    r805 r821  
    4040    data_size  = 0x00010000     # 64 Kbytes (non replicated)
    4141
     42    # QM warning: if less than 8M per cluster (i.e. 2M per thread), small pages are required
    4243    stack_base = 0x40000000
    43     stack_size = 0x00800000     # 8 Mbytes (per cluster)
     44    stack_size = 0x00080000     # 512K (per cluster) => 128K per thread
     45    #stack_size = 0x00400000     # 4M (per cluster) => 1M per thread
    4446
    4547    heap_base  = 0x60000000
    46     heap_size  = 0x01000000     # 16 Mbytes (per cluster)
     48    #heap_size  = 0x00800000     # 8 Mbytes (per cluster)
     49    heap_size  = 0x10000000     # 256 Mbytes (total)
    4750
    4851    # create vspace
     
    8083                                     base, size, 'C_WU', vtype = 'BUFFER',
    8184                                     x = x , y = y , pseg = 'RAM',
    82                                      local = True, big = True )
     85                                     local = True, big = False )
    8386
    8487    # heap vsegs: distributed non local (all heap vsegs can be accessed by all tasks)
     
    8790            cluster_id = (x * y_size) + y
    8891            if (mapping.clusters[cluster_id].procs):
    89                 size = heap_size
    90                 base = heap_base + (cluster_id * size)
    91 
     92                nclusters = x_size * y_size
     93                if x == 0 and y == 0:
     94                    size = heap_size / 2
     95                    base = heap_base
     96                else:
     97                    size = heap_size / (2 * nclusters)
     98                    base = heap_base + heap_size / 2 + ((y * x_size) + x - 1) * size
    9299                mapping.addVseg(vspace, 'rosen_heap_%d_%d' % (x, y), base, size,
    93                                 'C_WU', vtype = 'HEAP', x = x, y = y, pseg = 'RAM',
    94                                 local = False, big = True )
     100                        'C_WU', vtype = 'HEAP', x = x, y = y, pseg = 'RAM',
     101                        local = False, big = True )
    95102
    96103    # distributed tasks / one task per processor
Note: See TracChangeset for help on using the changeset viewer.