-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Difference between the omega installation I am playing with and the one included by CHiLL (by directory)
basic/
There are differences in the comments.
basic/include/BoolSet.h exists in the chill version, but not in mine
This file seems to be a copy of boolset.h which exists in both.
There are significant differences in the two files.
code_gen/
There are significant differences in CG.h and several other files
omega_calc/
It appears that some timing functionality was added in the CHiLL version, but other than that there are only minor differences
omega_lib/
SimpleHull.cpp has significant differences
Most of the differences in the other files are comments
Questions:
Can we fix the omega calculator in chill-dev?
Why is the codegen so different?
Executor AST Transformation
for (i=0; i<N; i++) {
...
}
AFTER:
for (w=0; w<numWaves; w++) {
#pragma omp parallel for ….
for (k=wave[w]; k<wave[w+1]; k++) {
int i = levelSet[k];
…
}
}
{[i] -> [w,k,i] :0<=w<numWaves and wave(w)<=k<wave1(w) and i=levelSet(w,k)}
levelSet = wave_par(...);
Wave = …
// How MMS wants to specify this.
{[i] -> [w,k,i] :0<=w<numWaves and i in levelSet(w)}
levelSet() = wave_par(...);
symbolic numWaves;
symbolic wave(1);
symbolic wave1(1);
symbolic levelSet(2);
S := {[w,k,i] : 0<=w<numWaves and wave(w)<=k<wave1(w) and i=levelSet(w,k)};
codegen S;
for(t1 = 0; t1 <= numWaves-1; t1++) {
for(t2 = wave(t1); t2 <= wave1(t1)-1; t2++) {
t3=levelSet(t1,t2);
s0(t1,t2,t3);
}
}