ffc team mailing list archive
-
ffc team
-
Mailing list archive
-
Message #04304
Re: [Branch ~ffc-core/ffc/main] Rev 1684: Change code generation for evaluate_basis and
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'.
Ok, thanks -- I'll take a closer look.
We shouldn't unroll loops until it's proven to be faster with compiler
options activated. Unrolling loops can be slower and for large loops
increases the compile time (in extreme cases making the compiler
fail). We've discussed on the list going the other way, i.e. having
FFC unroll less code.
Have you looked at the difference in the generated code?
--
Marie
Garth
--
Marie
Garth
On 12 September 2011 18:38,<noreply@xxxxxxxxxxxxx> wrote:
Merge authors:
Marie Rognes (meg-simula)
------------------------------------------------------------
revno: 1684 [merge]
committer: Marie E. Rognes<meg@xxxxxxxxx>
branch nick: trunk
timestamp: Mon 2011-09-12 19:23:01 +0200
message:
Change code generation for evaluate_basis and
evaluate_basis_derivatives by unrolling loops at FFC compile
time.
Speeds-up generated code, especially for higher than 1st order.
Very grateful for all those unit tests for evaluate_basis*!
modified:
ffc/evaluatebasis.py
test/regression/references/r_auto/AdaptivePoisson.h
test/regression/references/r_auto/AdaptivePoisson.out
test/regression/references/r_auto/AlgebraOperators.h
test/regression/references/r_auto/Biharmonic.h
test/regression/references/r_auto/Biharmonic.out
test/regression/references/r_auto/CoefficientOperators.h
test/regression/references/r_auto/Components.h
test/regression/references/r_auto/Conditional.h
test/regression/references/r_auto/Conditional.out
test/regression/references/r_auto/Constant.h
test/regression/references/r_auto/Elasticity.h
test/regression/references/r_auto/EnergyNorm.h
test/regression/references/r_auto/Equation.h
test/regression/references/r_auto/FacetIntegrals.h
test/regression/references/r_auto/FacetRestrictionAD.h
test/regression/references/r_auto/Heat.h
test/regression/references/r_auto/HyperElasticity.h
test/regression/references/r_auto/Mass.h
test/regression/references/r_auto/Mass.out
test/regression/references/r_auto/MathFunctions.h
test/regression/references/r_auto/MetaData.h
test/regression/references/r_auto/Mini.h
test/regression/references/r_auto/Mini.out
test/regression/references/r_auto/MixedMixedElement.h
test/regression/references/r_auto/MixedMixedElement.out
test/regression/references/r_auto/MixedPoisson.h
test/regression/references/r_auto/NavierStokes.h
test/regression/references/r_auto/NeumannProblem.h
test/regression/references/r_auto/Normals.h
test/regression/references/r_auto/Optimization.h
test/regression/references/r_auto/Optimization.out
test/regression/references/r_auto/P5tet.h
test/regression/references/r_auto/P5tet.out
test/regression/references/r_auto/P5tri.h
test/regression/references/r_auto/P5tri.out
test/regression/references/r_auto/Poisson.h
test/regression/references/r_auto/PoissonDG.h
test/regression/references/r_auto/QuadratureElement.h
test/regression/references/r_auto/QuadratureElement.out
test/regression/references/r_auto/ReactionDiffusion.h
test/regression/references/r_auto/RestrictedElement.h
test/regression/references/r_auto/RestrictedElement.out
test/regression/references/r_auto/SpatialCoordinates.h
test/regression/references/r_auto/SpatialCoordinates.out
test/regression/references/r_auto/StabilisedStokes.h
test/regression/references/r_auto/Stokes.h
test/regression/references/r_auto/Stokes.out
test/regression/references/r_auto/SubDomain.h
test/regression/references/r_auto/SubDomains.h
test/regression/references/r_auto/TensorWeightedPoisson.h
test/regression/references/r_auto/VectorLaplaceGradCurl.h
test/regression/references/r_auto/VectorLaplaceGradCurl.out
test/regression/references/r_auto/VectorPoisson.h
test/regression/references/r_auto/X_Element0.h
test/regression/references/r_auto/X_Element0.out
test/regression/references/r_auto/X_Element1.h
test/regression/references/r_auto/X_Element1.out
test/regression/references/r_quadrature/AdaptivePoisson.h
test/regression/references/r_quadrature/AdaptivePoisson.out
test/regression/references/r_quadrature/AlgebraOperators.h
test/regression/references/r_quadrature/Biharmonic.h
test/regression/references/r_quadrature/Biharmonic.out
test/regression/references/r_quadrature/CoefficientOperators.h
test/regression/references/r_quadrature/Components.h
test/regression/references/r_quadrature/Conditional.h
test/regression/references/r_quadrature/Conditional.out
test/regression/references/r_quadrature/Constant.h
test/regression/references/r_quadrature/Elasticity.h
test/regression/references/r_quadrature/EnergyNorm.h
test/regression/references/r_quadrature/Equation.h
test/regression/references/r_quadrature/FacetIntegrals.h
test/regression/references/r_quadrature/FacetRestrictionAD.h
test/regression/references/r_quadrature/Heat.h
test/regression/references/r_quadrature/HyperElasticity.h
test/regression/references/r_quadrature/Mass.h
test/regression/references/r_quadrature/Mass.out
test/regression/references/r_quadrature/MathFunctions.h
test/regression/references/r_quadrature/MetaData.h
test/regression/references/r_quadrature/Mini.h
test/regression/references/r_quadrature/Mini.out
test/regression/references/r_quadrature/MixedMixedElement.h
test/regression/references/r_quadrature/MixedMixedElement.out
test/regression/references/r_quadrature/MixedPoisson.h
test/regression/references/r_quadrature/NavierStokes.h
test/regression/references/r_quadrature/NeumannProblem.h
test/regression/references/r_quadrature/Normals.h
test/regression/references/r_quadrature/Optimization.h
test/regression/references/r_quadrature/Optimization.out
test/regression/references/r_quadrature/P5tet.h
test/regression/references/r_quadrature/P5tet.out
test/regression/references/r_quadrature/P5tri.h
test/regression/references/r_quadrature/P5tri.out
test/regression/references/r_quadrature/Poisson.h
test/regression/references/r_quadrature/PoissonDG.h
test/regression/references/r_quadrature/QuadratureElement.h
test/regression/references/r_quadrature/QuadratureElement.out
test/regression/references/r_quadrature/ReactionDiffusion.h
test/regression/references/r_quadrature/RestrictedElement.h
test/regression/references/r_quadrature/RestrictedElement.out
test/regression/references/r_quadrature/SpatialCoordinates.h
test/regression/references/r_quadrature/SpatialCoordinates.out
test/regression/references/r_quadrature/StabilisedStokes.h
test/regression/references/r_quadrature/Stokes.h
test/regression/references/r_quadrature/Stokes.out
test/regression/references/r_quadrature/SubDomain.h
test/regression/references/r_quadrature/SubDomains.h
test/regression/references/r_quadrature/TensorWeightedPoisson.h
test/regression/references/r_quadrature/VectorLaplaceGradCurl.h
test/regression/references/r_quadrature/VectorLaplaceGradCurl.out
test/regression/references/r_quadrature/VectorPoisson.h
test/regression/references/r_quadrature/X_Element0.h
test/regression/references/r_quadrature/X_Element0.out
test/regression/references/r_quadrature/X_Element1.h
test/regression/references/r_quadrature/X_Element1.out
The size of the diff (178020 lines) is larger than your specified limit
of 1000 lines
--
lp:ffc
https://code.launchpad.net/~ffc-core/ffc/main
Your team FFC Core Team is subscribed to branch lp:ffc.
To unsubscribe from this branch go to
https://code.launchpad.net/~ffc-core/ffc/main/+edit-subscription
_______________________________________________
Mailing list: https://launchpad.net/~ffc
Post to : ffc@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~ffc
More help : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~ffc
Post to : ffc@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~ffc
More help : https://help.launchpad.net/ListHelp
Follow ups
References