Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120322032138.GA31920@openwall.com>
Date: Thu, 22 Mar 2012 07:21:38 +0400
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: New patch for OpenCL SHA-512

Claudio, Lukas -

On Mon, Mar 19, 2012 at 08:34:16AM -0300, Claudio Andr? wrote:
> - avoid branch when possible (if becomes ternary operator ?)

Does this change actually avoid branching?

> - i know that passwords should be organized by its size (to avoid
> branch). In my tests i noticed it was not happening (two size and three
> size candidates put together). When a branch (if or for based on pass
> size) happens, some cores stop (serialization) and performance goes
> down. *John itself have to solve this*.

You can approach solving this inside a format as well - you just need to
have a larger number of candidate passwords buffered.  Then you'll put
them into separate linked lists by length, and in crypt_all() you'll
traverse those linked lists one by one.  I am doing a similar thing in
revised trip_fmt.c (with grouping by two characters, but for grouping by
length things are even simpler):

http://www.openwall.com/lists/john-users/2011/12/28/1

> By the way, "why c/s virtual" improves a lot? What does it mean?

It means that your code uses very little CPU time (indeed, it uses the
GPU instead), so it achieves extremely high "virtual" speed per unit of
CPU time consumed.

Alexander

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.