63 lines
2.3 KiB
SQL
Executable File
63 lines
2.3 KiB
SQL
Executable File
.headers ON
|
|
/*
|
|
|
|
Select the core to be used as reference. Only last day of measurements is used.
|
|
|
|
*/
|
|
CREATE TEMP VIEW if not exists refCore AS select *
|
|
from Unary
|
|
where coreid=5 AND DATE BETWEEN datetime('now','localtime','-23 hours') AND datetime('now', 'localtime');
|
|
;
|
|
|
|
/*
|
|
|
|
Select the cores to be benchmarked compared with the reference. Only last day of measurements is used.
|
|
|
|
*/
|
|
CREATE TEMP VIEW if not exists otherCores AS select *
|
|
from Unary
|
|
where coreid != 5 AND DATE BETWEEN datetime('now','localtime','-23 hours') AND datetime('now', 'localtime');
|
|
;
|
|
|
|
/*
|
|
|
|
Using regression database, compute the ratio using max cycles
|
|
and max degree regression coefficient.
|
|
|
|
Change name of columns for result
|
|
|
|
USING(ID,categoryid,NAME) : would have to be extended with any parameter defining the regression
|
|
formula.
|
|
For instamce, for FFT, if ifft is an external parameter then ifft flag should be
|
|
here.
|
|
|
|
Here we assume ref and others are generated with same settings and currentConfig.csv
|
|
If not the case, the parameters which may be different (like LOOPUNROLL, OPTIMIZED...)
|
|
should be added here so that we join the ref and other cores on common benchmark definition.
|
|
|
|
We should not compute ratio between configuration of benchmarks which are
|
|
not matching.
|
|
|
|
If we want to compute ratio between CORE AND PLATFORM then the view above should
|
|
be using CORE AND PLATFORM to filter and define the references.
|
|
|
|
*/
|
|
select otherCores.ID as ID,
|
|
CATEGORY.category as CATEGORY,
|
|
otherCores.NAME as NAME,
|
|
(1.0*refCore.MAX / otherCores.MAX) as MAXRATIO,
|
|
(1.0*refCore.MAXREGCOEF / otherCores.MAXREGCOEF) as REGRESSIONRATIO,
|
|
PLATFORM.platform as PLATFORM,
|
|
CORE.core as CORE,
|
|
COMPILERKIND.compiler as COMPILER,
|
|
COMPILER.version as COMPILERVERSION,
|
|
TYPE.type as TYPE,
|
|
otherCores.DATE as DATE
|
|
from otherCores
|
|
INNER JOIN refCore ON refCore.ID = otherCores.ID AND refCore.categoryid = otherCores.categoryid AND refCore.NAME = otherCores.NAME
|
|
INNER JOIN CATEGORY ON CATEGORY.categoryid = otherCores.categoryid
|
|
INNER JOIN PLATFORM ON PLATFORM.platformid = otherCores.platformid
|
|
INNER JOIN CORE ON CORE.coreid = otherCores.coreid
|
|
INNER JOIN COMPILER ON COMPILER.compilerid = otherCores.compilerid
|
|
INNER JOIN COMPILERKIND ON COMPILERKIND.compilerkindid = COMPILER.compilerkindid
|
|
INNER JOIN TYPE ON TYPE.typeid = otherCores.typeid; |