Dear Wayne,

To add a remark on the speedup you observed and your expectation, you should keep in mind that vectorization only helps in case there are no other bottlenecks in the code, like bandwidth from main memory or from a particular cache level, how large the proportion of time is when accessing the solution vectors via indirect addressing (VectorizedArray::gather), and similar bottlenecks. Finally, not all CPUs have the same number of AVX-512 execution units than scalar/SSE2 execution units. You need to look up these specifications, too.

Your approach to check more of the spectrum in vectorization is a step in the direction of building a performance model that helps you understand performance.

Best,
Martin


On 23.02.23 09:00, Peter Munch wrote:
Hi Wayne,

What is you error message?

> I replace all FEEvaluation, MatrixFree and VectorizedArray construction with a VectorizedArray<number, width>, but make returns some intricate error. Is specify vectorization length possible? I think I've seen one in dealii/test ...

Yes, it is possible and the to specify the additional template argument is the right approach.

I have introduced this template parameter for the hyper.deal project: https://github.com/hyperdeal/hyperdeal, where we create a tensor product of MatrixFree instances (where one is vectorized and the other is not).

Take a look at the test: https://github.com/dealii/dealii/blob/3b785178375a8ea233fada96cf987aed6d53583e/tests/matrix_free/ecl.h#L52

The important aspect is that the vector length has to match the ones supported by given ISA. See table 1 in the release paper of deal.II 9.2: https://dealii.org/deal92-preprint.pdf

Peter

On Thursday, February 23, 2023 at 7:09:07 AM UTC+1 yy.wayne wrote:

    Hi,
    is it possible to specify vectorization length(<deafult)?
    I'm running same code on local computer and server, whose cpu
    supports SSE2+4.10GHz
    and AVX512+2.60GHz respectively. The speed up for iteration time
    is only 2 on server, which should be 8*2.6 / 2*4.1 > 2.5 times.
    Therefore I'd like to run code with different
    vectorization length on same computer to test Vectorization's power.

    I replace all FEEvaluation, MatrixFree and VectorizedArray
    construction with a VectorizedArray<number, width>, but make
    returns some intricate error. Is specify vectorization length
    possible? I think I've seen one in dealii/test ...

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/767b397f-7847-4e5b-ac63-95b2aad49da2n%40googlegroups.com <https://groups.google.com/d/msgid/dealii/767b397f-7847-4e5b-ac63-95b2aad49da2n%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/578224ae-b99a-b995-e979-628f316d1764%40gmail.com.

Reply via email to