Thread Previous • Date Previous • Date Next • Thread Next |
A Navaei wrote:
2009/3/23 Kent Andre <kent-and@xxxxxxxxx>:The code that FFC produces is about as fast as light. It has been documented in a number of papers.Is there any data available comparing the FFC performance to the hardware peak?
FFC does not operate in isolation, so it is not possible to make a comparison to max flops of a CPU. Furthermore, in a typical simulation with code generated by FFC, other parts of the solution process dominate (such as insertion as mentioned by Kent) and the linear solve, so whether or not FFC generated code is optimal in terms of peak flops of a machine is not relevant to runtime performance.
I don't think you should try to beat FFC with generic meta-programming. Or you could do it but, but don't have to high expectations... Insertion into the matrix is currently the bottleneck. But FFC does not have anything to do with this.While FFC doesn't have anything to do with this, dolfin does. In the case of the MTL4 backend wrapper, it is implemented badly by ignoringthe meta-programming potentials.
This is not a constructive comment. Patches are welcome. For instance, sparse matrix insertion
is done by forming a sparsity pattern outside of MTL4 and then assigning the pointers to MTL4 API, while loop unrolling could have been used here.
If you look at the code, the FFC backend does not use the sparsity pattern. The MTL4 inserter does have some options which we have not yet been taken advantage of, so again patches are welcome.
Garth
-AliKent On ma., 2009-03-23 at 10:11 +0000, A Navaei wrote:The success of MTL4 based on generic meta-programming, arises the question about re-visiting the efficiency of code-generation approaches, including FFC. Given that FEM can particularly benefit from major meta-programming characteristics, namely static polymorphism and loop unrolling, MTL4 demonstrates that the code-generation part can be much more efficiently replaced by inlining performed at compile-time. Without having a concrete meta-programming implementation, it may be impossible to predict how much performance one would gain compared to FFC. However, MTL4 has been reported to be many times faster than code-generation means such as ATLAS. Based on this, are there any specific benefits in FFC code-generation which may not be covered by meta-programming? -Ali _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@xxxxxxxxxx http://www.fenics.org/mailman/listinfo/dolfin-dev_______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@xxxxxxxxxx http://www.fenics.org/mailman/listinfo/dolfin-dev
Thread Previous • Date Previous • Date Next • Thread Next |