Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #59560
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: matrix multiplication |
| Date | 2017-05-19 17:26 +0000 |
| Organization | Institut fuer Computersprachen, Technische Universitaet Wien |
| Message-ID | <2017May19.192659@mips.complang.tuwien.ac.at> (permalink) |
| References | <de96ca50-66d1-4518-a2a5-103dac0bebfb@googlegroups.com> <39defc56-99d0-42d7-8242-c16df26ca409@googlegroups.com> <2017May19.171325@mips.complang.tuwien.ac.at> |
anton@mips.complang.tuwien.ac.at (Anton Ertl) writes:
>Results for a 500x500 matrix multiply on a Core i5-6600K:
>
>Forth-94 Forth-2012 Forth-2012 Forth-94 Forth-94
>Myneni Myneni/Ertl Ertl Rees/Ertl pahihu
>109966M 107831M 1046M 1202M 1517M vfxlin Ndp387.fth
> 2986M 2260M 2220M 2945M 2764M gforth-fast
> 4028M 4076M 4844M 5067M 5017M SwiftForth HW stack, no WAIT
>
>I don't know what in this code slows down VFX so much. It does not
>appear to be the classical code-close-to-written-data problem (the
>inner loop does not write data close to the code, and the number of
>icache misses (2.8M) is not high enough to explain such a big number
>of cycles). The code generated by VFX (see below) for the inner loop
>looks inconspicuous to me.
I looked at it with "perf record -e cycles" and "perf report", and got
the following for the inner loop:
( 080C6E60 FF7500 ) PUSH [EBP]
0.26% ( 080C6E63 53 ) PUSH EBX
( 080C6E64 53 ) PUSH EBX
( 080C6E65 8B5D00 ) MOV EBX, [EBP]
( 080C6E68 DB2B ) FLD TBYTE 0 [EBX]
0.85% ( 080C6E6A 5B ) POP EBX
( 080C6E6B DB2B ) FLD TBYTE 0 [EBX]
1.75% ( 080C6E6D DEC9 ) FMULP ST(1), ST
52.46% ( 080C6E6F DEC1 ) FADDP ST(1), ST
42.25% ( 080C6E71 5B ) POP EBX
1.11% ( 080C6E72 5A ) POP EDX
( 080C6E73 031D70340A08 ) ADD EBX, [080A3470]
0.23% ( 080C6E79 53 ) PUSH EBX
0.23% ( 080C6E7A 83C208 ) ADD EDX, 08
( 080C6E7D 5B ) POP EBX
0.32% ( 080C6E7E 83042401 ) ADD [ESP], 01
0.12% ( 080C6E82 8344240401 ) ADD [ESP+04], 01
0.20% ( 080C6E87 895500 ) MOV [EBP], EDX
( 080C6E8A 71D4 ) JNO 080C6E60
Everything else had 0.08% or fewer cycles. The locations associated
with the events are not very precise, but in this case they point to
the FADDP. It's still unclear to me what the problem is. One thing
that one might suspect is denormal numbers, but they cannot occur with
this input (only integers converted to floats).
- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2017: http://www.euroforth.org/ef17/
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
matrix multiplication krishna.myneni@ccreweb.org - 2017-05-17 15:13 -0700
Re: matrix multiplication stephen@mpeforth.com (Stephen Pelc) - 2017-05-17 22:31 +0000
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-17 15:39 -0700
Re: matrix multiplication rickman <gnuarm@gmail.com> - 2017-05-18 03:22 -0400
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-18 00:29 -0700
Re: matrix multiplication rickman <gnuarm@gmail.com> - 2017-05-18 03:48 -0400
Re: matrix multiplication anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-05-18 08:42 +0000
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-18 00:25 -0700
Re: matrix multiplication anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-05-19 15:13 +0000
Re: matrix multiplication anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-05-19 17:26 +0000
Re: matrix multiplication Alex <alex@rivadpm.com> - 2017-05-19 18:56 +0100
Re: matrix multiplication Paul Rubin <no.email@nospam.invalid> - 2017-05-19 21:48 -0700
Re: matrix multiplication anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-05-20 10:21 +0000
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-20 06:12 -0700
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-20 09:47 -0700
Re: matrix multiplication Paul Rubin <no.email@nospam.invalid> - 2017-05-20 15:31 -0700
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-21 04:46 -0700
Re: matrix multiplication mhx@iae.nl - 2017-05-21 13:41 -0700
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-21 15:32 -0700
Re: matrix multiplication anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-05-21 07:19 +0000
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-21 05:10 -0700
Re: matrix multiplication anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-05-21 14:29 +0000
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-21 09:17 -0700
Re: matrix multiplication stephen@mpeforth.com (Stephen Pelc) - 2017-05-19 20:54 +0000
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-19 14:33 -0700
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-19 16:12 -0700
Re: matrix multiplication anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-05-20 14:48 +0000
Re: matrix multiplication krishna.myneni@ccreweb.org - 2017-05-19 18:38 -0700
csiph-web