Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 25 Apr 2015 15:02:30 +0300
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: [GSoC] JtR SIMD support enhancements

Hi Lei,

On Thu, Apr 23, 2015 at 11:35:44PM +0800, Lei Zhang wrote:
> I'm not sure of the "interleave factors". Could you be more specific?

magnum has already provided a jumbo-specific response, but I also want
to repeat in this thread and to your attention what I just wrote in a
message to Agnieszka here:

Do you understand the concept of instruction interleaving?
Why does it help?
When to increase the amount of interleaving, and when to stop doing that?
Can too much interleaving reduce performance, and why?

While we use it in JtR in various formats, I think it's better
illustrated by the evolution of my php_mt_seed program:

http://www.openwall.com/php_mt_seed/

You may start with an older version of it, and see how much faster it
became since then and _why_.  You may also try reimplementing some of
those same optimizations on your own, just to practice, without looking
_too_ closely at the already-made optimizations (just skim over them to
get an overall idea of the approach taken).  I think this is a good way
to learn both SIMD programming, and interleaving (which is a concept
relevant with and without SIMD).

http://cvsweb.openwall.com/cgi/cvsweb.cgi/projects/php_mt_seed/php_mt_seed.c
http://download.openwall.net/pub/projects/php_mt_seed/

Unfortunately, the oldest version of php_mt_seed already includes 2x
interleaving, but I brought it much further in later versions (to 8x
interleaving and SIMD at once).

Thanks,

Alexander

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ