CMSIS-DSP: Added support for Helium.
Only arm_dot_prod_f32 is currently providing an Helium implementation.
diff --git a/CMSIS/DSP/Testing/summaryBench.py b/CMSIS/DSP/Testing/summaryBench.py
index 14cb2be..ff758bc 100644
--- a/CMSIS/DSP/Testing/summaryBench.py
+++ b/CMSIS/DSP/Testing/summaryBench.py
@@ -57,38 +57,40 @@
def summaryBenchmark(resultPath,elem,path):
regressionPath=os.path.join(os.path.dirname(path),"regression.csv")
- print(" Generating %s" % regressionPath)
- full=pd.read_csv(path,dtype={'OLDID': str} ,keep_default_na = False)
- #print(full)
-
- csvheaders = []
- with open(os.path.join(resultPath,'currentConfig.csv'), 'r') as f:
- reader = csv.reader(f)
- csvheaders = next(reader, None)
- groupList = list(set(elem.params.full) - set(elem.params.summary))
- #grouped=full.groupby(list(elem.params.summary) + ['ID','CATEGORY']).max()
- #grouped.reset_index(level=grouped.index.names, inplace=True)
- #print(grouped)
- #print(grouped.columns)
+ if os.path.isfile(path):
+ print(" Generating %s" % regressionPath)
+ full=pd.read_csv(path,dtype={'OLDID': str} ,keep_default_na = False)
+ #print(full)
+
+ csvheaders = []
+ with open(os.path.join(resultPath,'currentConfig.csv'), 'r') as f:
+ reader = csv.reader(f)
+ csvheaders = next(reader, None)
+
+ groupList = list(set(elem.params.full) - set(elem.params.summary))
+ #grouped=full.groupby(list(elem.params.summary) + ['ID','CATEGORY']).max()
+ #grouped.reset_index(level=grouped.index.names, inplace=True)
+ #print(grouped)
+ #print(grouped.columns)
- def reg(d):
- m=d["CYCLES"].max()
- results = smf.ols('CYCLES ~ ' + elem.params.formula, data=d).fit()
- f=joinit([formatProd(a,b) for (a,b) in zip(results.params.index,results.params.values)]," + ")
- f="".join(f)
- f = re.sub(r':','*',f)
- #print(results.summary())
- return(pd.Series({'Regression':"%s" % f,'MAX' : m,'MAXREGCOEF' : results.params.values[-1]}))
-
- regList = ['ID','OLDID','CATEGORY','NAME'] + csvheaders + groupList
+ def reg(d):
+ m=d["CYCLES"].max()
+ results = smf.ols('CYCLES ~ ' + elem.params.formula, data=d).fit()
+ f=joinit([formatProd(a,b) for (a,b) in zip(results.params.index,results.params.values)]," + ")
+ f="".join(f)
+ f = re.sub(r':','*',f)
+ #print(results.summary())
+ return(pd.Series({'Regression':"%s" % f,'MAX' : m,'MAXREGCOEF' : results.params.values[-1]}))
- regression=full.groupby(regList).apply(reg)
- regression.reset_index(level=regression.index.names, inplace=True)
- renamingDict = { a : b for (a,b) in zip(elem.params.full,elem.params.paramNames)}
- regression = regression.rename(columns=renamingDict)
- regression.to_csv(regressionPath,index=False,quoting=csv.QUOTE_NONNUMERIC)
+ regList = ['ID','OLDID','CATEGORY','NAME'] + csvheaders + groupList
+
+ regression=full.groupby(regList).apply(reg)
+ regression.reset_index(level=regression.index.names, inplace=True)
+ renamingDict = { a : b for (a,b) in zip(elem.params.full,elem.params.paramNames)}
+ regression = regression.rename(columns=renamingDict)
+ regression.to_csv(regressionPath,index=False,quoting=csv.QUOTE_NONNUMERIC)
def extractBenchmarks(resultPath,benchmark,elem):