From 804e15d65e32479a476ef212238c25ada4865e3f Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Tue, 18 Jun 2019 14:47:13 +0200 Subject: Expand square expressions Yields another ~5-10 MLUPS in the simple D2Q9 example. Now averaging at ~840 MLUPS for D2Q9 and ~ 400 MLUPS for D3Q19 on a K2200. --- symbolic/generator.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'symbolic/generator.py') diff --git a/symbolic/generator.py b/symbolic/generator.py index 161e2f4..7315ae0 100644 --- a/symbolic/generator.py +++ b/symbolic/generator.py @@ -1,6 +1,8 @@ from sympy import * from sympy.codegen.ast import Assignment +import symbolic.optimizations as optimizations + class LBM: def __init__(self, descriptor): self.descriptor = descriptor @@ -18,7 +20,7 @@ class LBM: Assignment(u_i, sum([ (c_j*self.f_curr[j])[i] for j, c_j in enumerate(self.descriptor.c) ]) / sum(self.f_curr))) if optimize: - return cse(exprs, optimizations='basic', symbols=numbered_symbols(prefix='m')) + return cse(exprs, optimizations=optimizations.custom, symbols=numbered_symbols(prefix='m')) else: return ([], exprs) @@ -41,6 +43,6 @@ class LBM: exprs = [ Assignment(self.f_next[i], self.f_curr[i] + 1/tau * (f_eq_i - self.f_curr[i])) for i, f_eq_i in enumerate(f_eq) ] if optimize: - return cse(exprs, optimizations='basic') + return cse(exprs, optimizations=optimizations.custom) else: return ([], exprs) -- cgit v1.2.3