[fpc-devel] LEA instruction speed
Stefan Glienke
sglienke at dsharp.org
Tue Oct 10 11:57:06 CEST 2023
Be my guest making https://github.com/spring4d/benchmark compatible for all platforms you need it for.
> On 10/10/2023 11:13 CEST J. Gareth Moreton via fpc-devel <fpc-devel at lists.freepascal.org> wrote:
>
>
> Thanks Tomas,
>
> Nothing is broken, but the timing measurement isn't precise enough.
>
> Normally I have a much higher iteration count (e.g. 1,000,000), but I
> had reduced it to 10,000 because, coupled with the 1,000 iterations in
> the subroutines themselves, would have led to 1,000,000,000 passes and
> hence would take in the region of five to ten minutes to complete for a
> 16 MHz 386, for example. Rika's suggestion of running as many
> iterations as needed until, say, 5 seconds elapses, would help but the
> timing measurements would cause a lot of latency and will be imprecise
> on very slow routines. Still, let's see if 100,000 gives better results
> for you.
>
> Kit
>
> On 10/10/2023 09:57, Tomas Hajny wrote:
> > On 2023-10-09 20:51, J. Gareth Moreton via fpc-devel wrote:
> >
> >
> > Hi Kit,
> >
> >> I updated the "blea" test in the merge request so it now displays the
> >> processor brand name on x86_64; however, it is not fetched under i386
> >> because CPUID was not introduced until later 486 processors. I've
> >> attached it to this e-mail if anyone wants to take a look to ensure I
> >> haven't broken something.
> >
> > I don't know what's broken, but the results vary so much on a fast
> > machine that they are unusable for any measurement from my point of
> > view (standard 3.2.2 compiler, compiled with -O4 and running under MS
> > Windows this time). Sometimes the ADD version shows 0.0 ns/call,
> > sometimes the LEA version shows 0.0 ns/call (32-bits) or 0.1 ns/call
> > (64-bits). See the attached results (the CPU is only displayed for the
> > 64-bit compilation, but it's obviously the same CPU).
> >
> > Tomas
> >
> >
> >>
> >> On 09/10/2023 18:01, J. Gareth Moreton via fpc-devel wrote:
> >>> Thank you very much! That processor is built on the Excavator
> >>> architecture and lines up with the flag I put in the merge request
> >>> (i.e. it has the "fast LEA" hint).
> >>>
> >>> I honestly didn't expect this much testing feedback, so thank you all!
> >>>
> >>> Gareth aka. Kit
> >>>
> >>> P.S. I'm tempted to extend the test slightly to actually name the
> >>> CPU automatically.
> >>>
> >>> On 09/10/2023 15:40, Jean SUZINEAU via fpc-devel wrote:
> >>>> My results:
> >>>> jean at First-Boss:~/temp$ cat /proc/cpuinfo | grep "model name"
> >>>> model name : AMD A6-7480 Radeon R5, 8 Compute Cores 2C+6G
> >>>> jean at First-Boss:~/temp$ /usr/bin/fpc blea.pp
> >>>> Free Pascal Compiler version 3.2.2 [2021/07/09] for x86_64
> >>>> Copyright (c) 1993-2021 by Florian Klaempfl and others
> >>>> Target OS: Linux for x86-64
> >>>> Compiling blea.pp
> >>>> Linking blea
> >>>> 95 lines compiled, 0.2 sec
> >>>> jean at First-Boss:~/temp$ ./blea
> >>>> Pascal control case: 5.1 ns/call
> >>>> Using LEA instruction: 0.5 ns/call
> >>>> Using ADD instructions: 0.8 ns/call
> >>>> jean at First-Boss:~/temp$
> >>>>
> >>>> _______________________________________________
> >>>> fpc-devel maillist - fpc-devel at lists.freepascal.org
> >>>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
> >>>>
> >>> _______________________________________________
> >>> fpc-devel maillist - fpc-devel at lists.freepascal.org
> >>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
> >>>
> >> _______________________________________________
> >> fpc-devel maillist - fpc-devel at lists.freepascal.org
> >> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel_______________________________________________
> fpc-devel maillist - fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
More information about the fpc-devel
mailing list