Changeset 4279


Ignore:
Timestamp:
Jan 16, 2010 3:44:54 AM (8 years ago)
Author:
classenm
Message:

updated the branch to the current (latest) working directory of my local trunk

Location:
branches/new-memory-reduction
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/new-memory-reduction/CompSpread/Helpers.hs

    r4272 r4279  
    3535
    3636projectToVarsMC is vars =
     37    trace ("projectToVarsMC is: " ++ (show is) ++ "\nvars: " ++ (show vars)) $
    3738    verbose "projectToVarsMC" $
    3839    fromMaybe (trace "warning: projectToVarsFM delivered empty IS" $
  • branches/new-memory-reduction/CppSide/barvinokpolylib.cc

    r4272 r4279  
    1515    evalue *sum;
    1616    Enumeration *enu;
     17    char temp[256];
    1718    struct barvinok_options *bv_options = barvinok_options_new_with_defaults();
    1819   
     
    2930    Polyhedron *p=phUnion; // attention! requires all polyhedrons to be disjoint!
    3031    while (p != NULL) {
     32        counter++;
    3133        //fprintf(stderr, "barvinok bla\n");
    3234        Polyhedron *q = p;
     
    3537        //fprintf(stderr, "barvinok trallala\n");
    3638        q->next = NULL;
    37         char* barvinokFilename = "/home/classenm/barvinok/barvinok.in";
     39        char barvinokFilename[256] = "/home/classenm/barvinok/barvinok____.in";
     40        sprintf(temp, "/home/classenm/barvinok/barvinok%d.in", counter);
     41        strcpy(barvinokFilename, temp);
    3842        FILE *barvinokFile = fopen(barvinokFilename, "w");
    3943        if (barvinokFile == NULL) {
     
    4650        Polyhedron_PrintConstraints(barvinokFile, P_VALUE_FMT, context);
    4751        Polyhedron_PrintConstraints(stderr, P_VALUE_FMT, q);
     52        Polyhedron_PrintConstraints(stderr, P_VALUE_FMT, context);
    4853        fclose(barvinokFile);
    4954        fprintf(stderr, "barvinok_enumerate_ev...\n");
    50         counter++;
    5155        fprintf(stderr, "counter=%d\n", counter);
    5256        fprintf(stderr, barvinok_version());
     
    6468    }
    6569
     70    fprintf(stderr, "evalue_combine...");
    6671    evalue_combine(sum);
     72    fprintf(stderr, "done.");
    6773    // printf("barvinok_enumerate_union: ");
    6874    // sum = barvinok_enumerate_union(phUnion, context, 0);
     
    154160    evalue *sum;
    155161    Enumeration *enu;
     162    char temp[256];
    156163    struct barvinok_options *bv_options = barvinok_options_new_with_defaults();
    157164   
     
    166173//     Polyhedron *p=phDisjUnion;
    167174
    168     Polyhedron *p=phUnion; // attention! requires all polyhedrons to be disjoint!
     175    // attention! make this union disjoint, unless redundant countings are handled elsewhere
     176    Polyhedron *p=phUnion;
     177   
    169178    while (p != NULL) {
     179        counter++;
    170180        //fprintf(stderr, "barvinok bla\n");
    171181        Polyhedron *q = p;
     
    174184        //fprintf(stderr, "barvinok trallala\n");
    175185        q->next = NULL;
    176         char* barvinokFilename = "/home/classenm/barvinok/barvinok_existVars.in";
     186        char barvinokFilename[256] = "/home/classenm/barvinok/barvinok_existVars____.in";
     187        sprintf(temp, "/home/classenm/barvinok/barvinok_existVars%d.in", counter);
     188        strcpy(barvinokFilename, temp);
    177189        FILE *barvinokFile = fopen(barvinokFilename, "w");
    178190        if (barvinokFile == NULL) {
     
    187199        //Polyhedron_PrintConstraints(barvinokFile, P_VALUE_FMT, context);
    188200        Polyhedron_PrintConstraints(stderr, P_VALUE_FMT, q);
     201        fprintf(stderr, "\nE %d\n", nExistVars);
     202        fprintf(stderr, "P %d\n", nParams);
    189203        fclose(barvinokFile);
    190204        fprintf(stderr, "barvinok_enumerate_e_with_options...\n");
    191         counter++;
    192205        fprintf(stderr, "counter=%d\n", counter);
    193206        fprintf(stderr, barvinok_version());
     
    206219    }
    207220
    208     fprintf(stderr, "evalue_combine...");
    209     evalue_combine(sum);
    210     fprintf(stderr, "done.\n");
     221     fprintf(stderr, "evalue_combine...");
     222     evalue_combine(sum);
     223     fprintf(stderr, "done.\n");
    211224
    212225    fprintf(stderr, "partition2enumeration");
  • branches/new-memory-reduction/LMath/Algo/ZPolyhedron.hs

    r4272 r4279  
    319319zdLexicographicIndex assumeInside useExVars mbCtx0 [] = epartition []
    320320zdLexicographicIndex assumeInside useExVars mbCtx0 zd =
     321    assert (all (==sdims) (map zpVars zd)) $
    321322    lexicographicIndex assumeInside useExVars selectedDims mbCtx syss
    322323    where
  • branches/new-memory-reduction/StagedCodeGenInput.hs

    r4273 r4279  
    884884ehrhartAccessZPs csDS accesses bufferType =
    885885    -- verbose "ehrhartAccessZPs" $
    886     -- arrayIDsAndZPs   
     886    arrayIDsAndZPs   
    887887    -- arrayID2ConvexZPsMap
    888     maybeApplyConvexUnionHeuristic arrayIDsAndZPs arrayID2ConvexZPsMap
     888    -- maybeApplyConvexUnionHeuristic arrayIDsAndZPs arrayID2ConvexZPsMap
    889889    where
    890890
     
    901901                         aID <- allArrayIDs,
    902902                         let zps =
    903                                  convexUnionHeuristic $
     903                                 -- convexUnionHeuristic $
    904904                                 map snd $
    905905                                     filter (\(a,i) -> a == aID) separateArrayIDsAndZPs
    906                        ]
     906                     ]
    907907                         
    908908    allArrayIDs = sort $ nub $ map accArrayID accesses
     
    962962                                         -- verbose ("zpolys: array#" ++ show arrayID ++ " accID#" ++ show (accStmtID acc)) $
    963963                                         zpolyhedron ineq (genericTileAccFct acc trStmtID)
    964                                          -- zpolyhedron ineq (getAccFct acc trStmtID)
    965964              ]
    966965
  • branches/new-memory-reduction/TaskLoops.hs

    r4272 r4279  
    265265-- Use existentially quantified variable information for
    266266-- the barvinok counting function.
    267 useExQuantVars = True
     267useExQuantVars = False
    268268
    269269getTargetLanguage :: CompSpreadDS -> StorageManagementStrategy -> TargetLanguage
     
    24002400           trimmedAccs = map (trimAccess (loopoSLP lds)) accs
    24012401
    2402            addTaskInput = -- verbose "obtaining createTaskInput" $
     2402           addTaskInput = verbose "obtaining createTaskInput" $
    24032403                          createAddTaskInput csDS
    24042404           addTaskCodeFile = (loopoFile ++ "." ++ addTaskOutExt ++ ".sed")
     
    24152415           ehrhartZPs =       
    24162416               verbose "ehrhartAccessZPs in TaskLoops.hs" $
     2417               -- ehrhartAccessZPs csDS (csAccesses csDS)  TileBuffer
    24172418               ehrhartAccessZPs csDS (csAccesses csDS)  TileBuffer
    2418                -- ehrhartAccessZPs csDS (csAccesses csDS)  ExecutionBuffer -- TileBuffer
    24192419           
    24202420           ehrhartParams arrayID countOnly =
     
    24542454               -- verbose "getOneEhrhartAccess" $
    24552455               --                     trace ("zDomain: (length= " ++ show (length (zdDisjointUnion zDomain)) ++ ")") $
    2456                -- trace (show (zdDisjointUnion zDomain)) $
    2457                let (posSet, negSet) = disjointUnionCountSets zD
     2456               -- let (posSet, negSet) = disjointUnionCountSets zD
     2457               let (posSet, negSet) = (zdDisjointUnion zD, [])
     2458                   assumeInside = False
    24582459                   -- achtung: hier liegt noch ein fehler:
    24592460                   -- man darf nicht einfach die union der zpolytope in der zdomain zaehlen,
    24602461                   -- sondern muss jedes zp einzeln zaehlen, also map zdLexicogrphicIndex ueber zd,
    24612462                   -- dann aufaddieren
    2462                    posExp =
     2463                   posExp =                       
    24632464                       concat $
    24642465                       intersperse " + " $
    24652466                       map (\zp ->
    24662467                            trace ("array access: zpVars zp = " ++ (show $ zpVars zp)) $
    2467                               -- verbose "map in posExp in oneEhrhartAccess" $
     2468                            -- verbose "map in posExp in oneEhrhartAccess" $
    24682469                              ("(" ++
    24692470                               (evaluesWithCondsToCExpression ehrhartPs
    24702471                                (-- optimizeEPartition $
    24712472                                 -- verbose "in posExp: zdLexicographicIndex" $
    2472                                  zdLexicographicIndex True useExQuantVars Nothing [zp])
     2473                                 zdLexicographicIndex assumeInside useExQuantVars Nothing [zp])
    24732474                               ) ++ ")"
    24742475                              )
    24752476                           ) posSet
    2476                    negExp =
    2477                                               concat $
     2477                       {--
     2478                       ("(" ++
     2479                        (evaluesWithCondsToCExpression ehrhartPs
     2480                         (-- verbose "in posExp: zdLexicographicIndex" $
     2481                          zdLexicographicIndex assumeInside useExQuantVars Nothing posSet
     2482                         ) ++ ")"
     2483                        )
     2484                       )
     2485                       --}                       
     2486                   negExp =                       
     2487                       concat $
    24782488                       intersperse " + " $
    24792489                       map (\zp ->
     
    24832493                                (-- optimizeEPartition $
    24842494                                 -- verbose "in negExp: zdLexicographicIndex" $
    2485                                  zdLexicographicIndex True useExQuantVars Nothing [zp])
     2495                                 zdLexicographicIndex assumeInside
     2496                                                      useExQuantVars Nothing [zp])
    24862497                               ) ++ ")"
    24872498                              )
    24882499                           ) negSet
    2489                in unlines [posExp
    2490                           ," - "
    2491                           ,"( " ++ negExp ++ " )"
    2492                           ]               
     2500                       {--
     2501                       ("(" ++
     2502                        (evaluesWithCondsToCExpression ehrhartPs
     2503                         (-- verbose "in posExp: zdLexicographicIndex" $
     2504                          zdLexicographicIndex assumeInside
     2505                                               useExQuantVars Nothing negSet
     2506                         ) ++ ")"
     2507                        )
     2508                       )
     2509                       --}
     2510                       
     2511                in unlines [posExp
     2512                           ," - "
     2513                           ,"( " ++ negExp ++ " )"
     2514                           ]               
    24932515
    24942516           -- the basic C-expressions for the size of each array:
     
    25042526           getOneArrayAllocExpression zD ehrhartPs =
    25052527               -- verbose "getOneArrayAllocExpression" $
    2506                let (posSet, negSet) = disjointUnionCountSets zD
     2528               -- let (posSet, negSet) = disjointUnionCountSets zD
     2529               let (posSet, negSet) = (zdDisjointUnion zD, [])
    25072530                   countedVars = [sdims .. sdims+tdims-1]
    25082531                   sdims = zpVars $ head zD
     
    25172540                                 "(" ++                             
    25182541                                 evaluesWithCondsToCExpression ehrhartPs
    2519                                     -- (zpCountIntegralPointsDisj Nothing zP) ++
    2520                                     (zpCountIntegralPointsExVars countedVars zP) ++
     2542                                    (if useExQuantVars
     2543                                     then (zpCountIntegralPointsExVars countedVars zP)
     2544                                     else (zpCountIntegralPointsDisj Nothing zP)
     2545                                    ) ++
     2546                                    --
    25212547                                 ")") posSet
    25222548                   negExp = 
     
    25242550                     intersperse " + " $
    25252551                     map (\zP -> "(" ++                             
    2526                               evaluesWithCondsToCExpression ehrhartPs
    2527                                  -- (zpCountIntegralPointsDisj Nothing zP) ++
    2528                                  (zpCountIntegralPointsExVars countedVars zP) ++
     2552                                 evaluesWithCondsToCExpression ehrhartPs
     2553                                    (if useExQuantVars
     2554                                     then (zpCountIntegralPointsExVars countedVars zP)
     2555                                     else (zpCountIntegralPointsDisj Nothing zP)
     2556                                    ) ++
    25292557                              ")") negSet
    25302558               in unlines [posExp
     
    25522580
    25532581           dependenceInputs =
    2554                -- verbose "createDependenceInput" $
     2582               verbose "createDependenceInput" $
    25552583               createDependenceInput csDS hocType
    25562584           dependenceGraphCodeFile = (loopoFile ++ "." ++ dependenceOutExt ++ ".sed")
  • branches/new-memory-reduction/Tiling.hs

    r4272 r4279  
    419419--  it causes weird task graphs
    420420--      case projectToVars' HsChernikova is Nothing vars of
    421         case projectToVars' HsFM is Nothing vars of
     421--      case projectToVars' HsFM is Nothing vars of
    422422--      case projectToVars' CSidePip is Nothing vars of
     423        case chernikovaProjectToVars is Nothing vars of
    423424          Nothing  -> infeasibleIneqSystem (length vars) (nParams is)
    424425          Just sys -> sys
  • branches/new-memory-reduction/UniFCO.hs

    r3795 r4279  
    8888                    case parseOptions pn (drop 2 args) of
    8989                      Left errmsg ->
     90                          putStrLn errmsg >>
    9091                          appendSessionLog errmsg >>
    9192                          exitWith (ExitFailure 1)
     
    108109                     when (fpSchedDims params > 0) $
    109110                          safeWriteFile (basename++".sched") (fcoSched result)
    110                NoFCO {} -> return ()
     111               NoFCO {} -> do
     112                           putStrLn ("FCO allocator returned empty result")
     113                           return ()
    111114            return ExitSuccess
    112115
    113          ) `catch` (\ex -> appendSessionLog ("FCO allocator error: " ++
     116         ) `catch` (\ex -> putStrLn ("FCO allocator error: " ++ show ex ++ "\n") >>
     117                           appendSessionLog ("FCO allocator error: " ++
    114118                                             show ex ++ "\n") >>
    115119                           return (ExitFailure 1)
     
    164168                                  zeroMatrix nLambdas 1)
    165169           LRV {lrvLines=lines, lrvRays=rays} = dualOfSystem fcoEqs fcoIneqs
     170--            (lines, rays) =
     171--                constraintsToGenerators ((equalitiesToInequalities fcoEqs)
     172--                                         `Loopo.join` fcoIneqs)
    166173           goodLines = makeGoodLines paw sa nP lines
    167            candidates = multidim nP sa (nAllocDims+nSchedDims) $
    168                         map (extract paw) $
    169                         joinMultiples nPis (goodLines++rays)
    170            result = sortBy (\(_,(a,_,_)) (_,(b,_,_)) -> compare a b) $
    171                     [(blowUpStmtPlacements slps c,
    172                       commCost relevantAccs relevantDeps fcoM paw c)
    173                     | c <- candidates]
     174           candidates =
     175               trace ("nAllocDims: " ++ show nAllocDims ++
     176                      ", nSchedDims: " ++ show nSchedDims) $
     177               multidim nP sa (nAllocDims+nSchedDims) extracted
     178           extracted = map (extract paw) multiples
     179           multiples = joinMultiples nPis (goodLines++rays)
     180           result =
     181               trace ("#extracted: " ++ show (length $ extracted)) $
     182               trace ("#multiples: " ++ show (length $ multiples)) $
     183               trace ("#lines: " ++ show (length lines) ++ ", #rays: " ++ show (length rays)) $
     184               trace (show (length candidates) ++ " candidates founds") $
     185               sortBy (\(_,(a,_,_)) (_,(b,_,_)) -> compare a b) $
     186               [(blowUpStmtPlacements slps c,
     187                 commCost relevantAccs relevantDeps fcoM paw c)
     188                | c <- candidates]
    174189           result' = map (\(a,b) -> (Map.toAscList a,b)) result
    175190           log1s = [show fcoIneqs, show (map Map.toAscList candidates)]
     
    444459multidim _  _      _    []   = []
    445460multidim nP totest 1    sols =
     461    trace ("multidim: dims=1") $
     462    trace ("totest(1): " ++ concatMap show totest) $
    446463    [Map.map (\v -> rowVectorsToMatrix1 [v]) sol
    447464     | sol <- sols, all isOneDim [lookupFM' sol i | i <- totest]
     
    453470                  vectorEntries v)
    454471multidim nP totest dims (sol:sols) =
     472    trace ("multidim: dims=" ++ show dims) $
    455473    multidim nP totest dims sols ++
    456474    concatMap app (multidim nP totest (dims-1) sols)
    457475    where
    458476    app :: Map ID Matrix -> [Map ID Matrix]
    459     app old = [new | all isLinIndep [lookupFM' new i | i <- totest]]
     477    app old =
     478        trace ("totest(" ++ show dims ++ "): " ++ concatMap show totest) $
     479        [new | all isLinIndep [lookupFM' new i | i <- totest]]
    460480        where
    461481        new = Map.mapWithKey
  • branches/new-memory-reduction/extract_loops.rb

    r4246 r4279  
    150150    end
    151151    loopo_call = "#{$loopo_bin} --batch --config #{$config_file} " +
    152       "--tempdir #{$tempdir_path} --no-cleanup --project #{src_file.path}"
     152      "--tempdir #{$tempdir_path} --no-cleanup --project #{src_file.path} " +
     153      "--num-soak-stmts=#{@num_soak_stmts} " +
     154      "--num-drain-stmts=#{@num_drain_stmts}"
    153155    puts loopo_call if $verbose >= 2
    154156
Note: See TracChangeset for help on using the changeset viewer.