Skip to content

Commit

Permalink
- some bug fixes for hpcom memory
Browse files Browse the repository at this point in the history
- moved some code from hpcom-cpp-template to cpp-template
- variable initialization is now seperated into multiple functions
  • Loading branch information
Marcus Walther committed May 11, 2015
1 parent 723695e commit 0f658ee
Show file tree
Hide file tree
Showing 4 changed files with 279 additions and 161 deletions.
10 changes: 4 additions & 6 deletions Compiler/BackEnd/HpcOmMemory.mo
Expand Up @@ -374,7 +374,6 @@ encapsulated package HpcOmMemory
//printCacheMap(cacheMap);
//evaluateCacheBehaviour(cacheMap, iTaskGraphT, nodeSimCodeVarMapping, scVarCLMapping, iNumberOfThreads, numCL, iSchedulerInfo);

/*
//Create bipartite graph
//----------------------
graphInfo = GraphML.createGraphInfo();
Expand All @@ -385,7 +384,6 @@ encapsulated package HpcOmMemory
graphInfo = appendVariablesToGraph(taskSolvedVarsMapping, taskUnsolvedVarsMapping, arrayLength(scVarSolvedTaskMapping), graphIdx, threadAttIdx, simVarIdxMappingHashTable, allVarsMapping, scVarInfos, graphInfo);
fileName = ("taskGraph"+iFileNamePrefix+"ODE_schedule_vars.graphml");
GraphML.dumpGraph(graphInfo, fileName);
*/
then(tmpMemoryMapOpt, varArrayIndexMappingHashTableOpt);
else
equation
Expand Down Expand Up @@ -1945,7 +1943,7 @@ encapsulated package HpcOmMemory
varSizeFloat = Util.tuple31(currentVarIndices);

varIdxOffsets = arrayCreate(3,0);
varIdxOffsets = arrayUpdate(varIdxOffsets, 1, Util.tuple31(currentVarIndices));
varIdxOffsets = arrayUpdate(varIdxOffsets, 1, Util.tuple31(currentVarIndices) + 1);
allCacheLines = List.sort(getAllCacheLinesOfCacheMap(iCacheMap), compareCacheLineMapByIdx);
((varArrayIndexMappingHashTable,varIndexMappingHashTable)) = List.fold(allCacheLines, function addCacheLineMapToVarArrayMapping(iCacheLineSize=cacheLineSize, iVarIdxOffsets=varIdxOffsets, iCacheVariables=cacheVariablesArray), (varArrayIndexMappingHashTable,varIndexMappingHashTable));
((varArrayIndexMappingHashTable,varIndexMappingHashTable)) = List.fold(cacheLinesInt, function addCacheLineMapToVarArrayMapping(iCacheLineSize=cacheLineSize, iVarIdxOffsets=varIdxOffsets, iCacheVariables=cacheVariablesArray), (varArrayIndexMappingHashTable,varIndexMappingHashTable));
Expand All @@ -1962,9 +1960,9 @@ encapsulated package HpcOmMemory
((currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable)) = List.fold(iBoolAliasVars, function SimCodeUtil.addVarToArrayIndexMapping(iVarType=VARDATATYPE_BOOLEAN), (currentVarIndices, varArrayIndexMappingHashTable, varIndexMappingHashTable));

varSizeFloat = varSizeFloat + intMul(listLength(cacheLinesFloat), maxNumElemsFloat) + listLength(notOptimizedVarsFloat);
SimCodeUtil.dumpVarLst(notOptimizedVarsFloat, "convertCacheToVarArrayMapping: Not optimized float vars");
print("\n");
print("convertCacheToVarArrayMapping: " + intString(intMul(listLength(cacheLinesFloat), maxNumElemsFloat)) + " elements are reserved optimized variables. " + intString(varSizeFloat) + " variables at all.\n");
//SimCodeUtil.dumpVarLst(notOptimizedVarsFloat, "convertCacheToVarArrayMapping: Not optimized float vars");
//print("\n");
//print("convertCacheToVarArrayMapping: " + intString(intMul(listLength(cacheLinesFloat), maxNumElemsFloat)) + " elements are reserved optimized variables. " + intString(varSizeFloat) + " variables at all.\n");
varSizeInt = intMul(listLength(cacheLinesInt), maxNumElemsInt) + listLength(notOptimizedVarsInt);
varSizeBool = intMul(listLength(cacheLinesBool), maxNumElemsBool) + listLength(notOptimizedVarsBool);

Expand Down
2 changes: 1 addition & 1 deletion Compiler/SimCode/HpcOmSimCodeMain.mo
Expand Up @@ -371,7 +371,7 @@ algorithm
(optTmpMemoryMap,optVarToArrayIndexMapping) = HpcOmMemory.createMemoryMap(modelInfo, taskGraphOdeSimplified, BackendDAEUtil.transposeMatrix(taskGraphOdeSimplified,arrayLength(taskGraphOdeSimplified)), taskGraphDataOdeSimplified, eqs, filenamePrefix, schedulerInfo, scheduleOde, sccSimEqMapping, criticalPaths, criticalPathsWoC, criticalPathInfo, numProc, allComps);
if(Util.isSome(optVarToArrayIndexMapping)) then
SOME(varToArrayIndexMapping) = optVarToArrayIndexMapping;
BaseHashTable.dumpHashTable(varToArrayIndexMapping);
//BaseHashTable.dumpHashTable(varToArrayIndexMapping);
end if;

SimCodeUtil.execStat("hpcom create memory map");
Expand Down

0 comments on commit 0f658ee

Please sign in to comment.