This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Don't use SSE4_2 instructions on Intel Silvermont Micro Architecture.


On Fri, Jun 21, 2013 at 03:06:19PM +0200, Andi Kleen wrote:
> > To see if this is a case I added Andi. Andi, could you browse sources
> > and tell if you think that benchtests are adequate to measure
> > performance?
> 
> It's hard to say in general and just from review.
> 
> Normally I would recommend to not run the tests in a tight loop,
> but have some cache / branch prediction thrashing code in between
> to measure "cache cold" behaviour too.
> 
> One objective approach to determine how good they are would be
> to assemble benchmark tests on a set of non micro applications that are known
> to be sensitive to memcpy/etc. performance (e.g. according to 
> perf sampling). Then do a set of results for them plus run the benchmarks.
> 

I tried to cross check my running time on data collected when I ran computer 
and recorded memcpy calls, here
kam.mff.cuni.cz/~ondra/dryrun_memcpy.tar.bz2
and got positive results but I cannot fully replicate environment.

Then I tried to measure running time of code where I measure memcpy with 
attached scripts and results so far are not very conclusive(see below).

Unless I LD_PRELOAD a byte-by-byte variant of memcpy which increases
running time by around 50%

> Change the memcpy et.al.  to make it slower (for example or faster if you have
> a good way). Rerun the applications. Rerun the benchmarks.
> 
> Then see how the two sets of benchmark results correlate.
> 
This is bit problematic. A benchmarks that are currently in libc measure
minimum over 32 runs on same data. I am not sure how should it correlate
with my benchmark/program running time.

> This would be significant work of course.
> 
> -Andi

core2
Var1 mean: 1315.415459 standard error: 3.041025
Var2 mean: 1317.700483 standard error: 3.453736
Var3 mean: 1318.371981 standard error: 4.607385
nehalem
Var1 mean: 1243.429864 standard error: 2.983470
Var2 mean: 1239.262443 standard error: 2.217374
Var3 mean: 1242.190045 standard error: 2.989906
ivy_bridge
Var1 mean: 1158.254545 standard error: 4.059097
Var2 mean: 1170.781818 standard error: 6.427400
Var3 mean: 1155.736364 standard error: 3.514919
fx10
Var1 mean: 1457.435294 standard error: 5.376727
Var2 mean: 1460.470588 standard error: 5.031461
Var3 mean: 1461.894118 standard error: 6.820933


Attachment: ben
Description: Text document

Attachment: var.c
Description: Text document

Attachment: report_memcpy
Description: Text document

Attachment: res
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]