Skip to content
Snippets Groups Projects
Commit 8c6315f3 authored by Isuru Fernando's avatar Isuru Fernando
Browse files

Add different dims, orders for benchmarks

parent 9235bbd4
No related branches found
No related tags found
1 merge request!81Add benchmarks for translations
...@@ -30,38 +30,39 @@ from sumpy.assignment_collection import SymbolicAssignmentCollection ...@@ -30,38 +30,39 @@ from sumpy.assignment_collection import SymbolicAssignmentCollection
from sumpy.codegen import to_loopy_insns from sumpy.codegen import to_loopy_insns
class Param: class Param:
def __init__(self, knl, local_expn_class, mpole_expn_class): def __init__(self, dim, order):
self.knl = knl self.dim = dim
self.local_expn_class = local_expn_class self.order = order
self.mpole_expn_class = mpole_expn_class
def __repr__(self): def __repr__(self):
return "{}_{}_{}".format(self.knl, self.local_expn_class.__name__, self.mpole_expn_class.__name__) return "{}D_order_{}".format(self.dim, self.order)
class TranslationSuite: class TranslationBenchmarkSuite:
params = [ params = [
Param(LaplaceKernel(2), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion), Param(2, 10),
Param(LaplaceKernel(2), LaplaceConformingVolumeTaylorLocalExpansion, Param(2, 15),
LaplaceConformingVolumeTaylorMultipoleExpansion), Param(2, 20),
Param(HelmholtzKernel(2), VolumeTaylorLocalExpansion, VolumeTaylorMultipoleExpansion), Param(3, 5),
Param(HelmholtzKernel(2), HelmholtzConformingVolumeTaylorLocalExpansion, Param(3, 10),
HelmholtzConformingVolumeTaylorMultipoleExpansion),
Param(HelmholtzKernel(2), H2DLocalExpansion, H2DMultipoleExpansion)
] ]
param_names = ['translation']
param_names = ['order']
def setup(self, param): def setup(self, param):
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
self.ctx = cl.create_some_context()
self.queue = cl.CommandQueue(self.ctx)
np.random.seed(17) np.random.seed(17)
if self.__class__ == TranslationBenchmarkSuite:
raise NotImplementedError
mpole_expn_class = self.mpole_expn_class
if param.order == 3 and H2DMultipoleExpansion == mpole_expn_class:
raise NotImplementedError
def track_m2l_op_count(self, param): def track_m2l_op_count(self, param):
knl = param.knl knl = self.knl(param.dim)
m_expn = param.mpole_expn_class(knl, order=3) m_expn = self.mpole_expn_class(knl, order=param.order)
l_expn = param.local_expn_class(knl, order=3) l_expn = self.local_expn_class(knl, order=param.order)
src_coeff_exprs = [sym.Symbol("src_coeff%d" % i) src_coeff_exprs = [sym.Symbol("src_coeff%d" % i)
for i in range(len(m_expn))] for i in range(len(m_expn))]
...@@ -80,3 +81,60 @@ class TranslationSuite: ...@@ -80,3 +81,60 @@ class TranslationSuite:
return sum([counter.rec(insn.expression)+1 for insn in insns]) return sum([counter.rec(insn.expression)+1 for insn in insns])
track_m2l_op_count.unit = "ops" track_m2l_op_count.unit = "ops"
class LaplaceVolumeTaylorTranslation(TranslationBenchmarkSuite):
knl = LaplaceKernel
local_expn_class = VolumeTaylorLocalExpansion
mpole_expn_class = VolumeTaylorMultipoleExpansion
params = [
Param(2, 10),
Param(3, 5),
]
class LaplaceConformingVolumeTaylorTranslation(TranslationBenchmarkSuite):
knl = LaplaceKernel
local_expn_class = LaplaceConformingVolumeTaylorLocalExpansion
mpole_expn_class = LaplaceConformingVolumeTaylorMultipoleExpansion
params = [
Param(2, 10),
Param(2, 15),
Param(2, 20),
Param(3, 5),
]
class HelmholtzVolumeTaylorTranslation(TranslationBenchmarkSuite):
knl = HelmholtzKernel
local_expn_class = VolumeTaylorLocalExpansion
mpole_expn_class = VolumeTaylorMultipoleExpansion
params = [
Param(2, 10),
Param(3, 5),
]
class HelmholtzConformingVolumeTaylorTranslation(TranslationBenchmarkSuite):
knl = HelmholtzKernel
local_expn_class = HelmholtzConformingVolumeTaylorLocalExpansion
mpole_expn_class = HelmholtzConformingVolumeTaylorMultipoleExpansion
params = [
Param(2, 10),
Param(2, 15),
Param(2, 20),
Param(3, 5),
]
class Helmholtz2DTranslation(TranslationBenchmarkSuite):
knl = HelmholtzKernel
local_expn_class = H2DLocalExpansion
mpole_expn_class = H2DMultipoleExpansion
params = [
Param(2, 10),
Param(2, 15),
Param(2, 20),
]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment