On 12 September 2011 21:36, Marie E. Rognes<meg@xxxxxxxxx> wrote:
On 09/12/11 20:00, Marie E. Rognes wrote:
On 09/12/11 19:54, Garth N. Wells wrote:
On 12 September 2011 18:49, Marie E. Rognes<meg@xxxxxxxxx> wrote:
On 09/12/11 19:40, Garth N. Wells wrote:
Which compiler options did you use when evaluating the speed up?
Tested Extrapolation.h with vanilla dolfin (which is dominated by
evaluate_basis calls). No additional compiler options set.
What are the default compiler options?
'-g' for plain JIT, which is dead slow. You should test with at least:
parameters["form_compiler"]["cpp_optimize"] = True
in the Python code. This will use '-O2'.
Isn't this limited in a way? Would it be a problem to let users do:
parameters["form_compiler"]["cpp_optimize"] = '-O2 -funroll-loops'
parameters["form_compiler"]["cpp_optimize"] = '-O3'
and then perhaps let
parameters["form_compiler"]["cpp_optimize"] = True
default to '-O2' as we do now?
Just a thought.
Ok, thanks -- I'll take a closer look.
Take a look at the attached results in old_evaluate_basis.txt (results with
"old" FFC),
and new_evaluate_basis.txt (results with "new" FFC) from running the
attached
test_evaluate_basis.py.
Acceptable?
Looks good, and the generated code is much nicer now. :)
It could have been fun to see the impact of the '-O2 -funroll-loops'
option on the old code, but then you'll have to switch to C++. Anyway,
I'm quite sure that the old code will never perform as well as the new
code even with this option.
As you have probably found out, the generated code was simply a mirror
of what is going on in FIAT (translated to C++).