Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 2 Jun 2015 06:38:38 +0300
From: Solar Designer <>
Subject: Re: Lei's weekly report #5

On Tue, Jun 02, 2015 at 10:37:27AM +0800, Lei Zhang wrote:
> On Jun 2, 2015, at 9:52 AM, Solar Designer < <>> wrote:
> > "use AVX512/MIC's scatter instruction in SHA1, SHA256 & SHA512" - can
> > you please post a separate report on this?  Explain the idea, where it
> > fits in the code, and what results you obtained.  Thanks!
> Magnum and I were discussing this topic on GitHub.

Looks good.

As to the Many salts result being worse than Only one salt for
SybaseASE, my guess is that OMP_SCALE might be too large, resulting in
cache misses slowing things down too much in the Many salts case.
Please try to tune it.

In fact, if you notice that for any format at all Many salts is slower
than Only one salt, this suggests that tuning is needed.  So it's a new
task for you to identify all such cases and try to deal with them
(making Many salts faster).

> >> Priorities:
> >> - determine the optimal interleaving factors for MIC

Don't forget that you generally need to decrease a previously tuned
OMP_SCALE when you increase the interleaving factor.

> >> - find out formats where OMP_NUM_THREADS isn't optimal for MIC
> >> - now that I know how to correctly build OpenSSL for MIC, try to compare JtR's performance on MIC built with OpenSSL vs LibreSSL
> > 
> > I think more importantly than all of those you listed, you need to start
> > reviewing and profiling the generated assembly code.  Right now, it is
> > unclear why there's often a slowdown when going from 1x to 2x
> > interleaving, even if in some cases there's a speedup at higher
> > interleaving factors.  You need to find this out.  Until you do, you're
> > unnecessarily walking blindfolded.
> OK.
> But what do you mean by "reviewing the assembly code"? What exactly am I supposed to investigate in the assembly?

Compare it for no interleaving (aka 1x) and 2x interleaving, and see if
anything looks non-optimal to you.  It might be e.g. registers getting
spilled to memory and loaded back, or extra (non-unrolled) loops still
seen at assembly code level.  Also, note how the code size changes.


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.