Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 07 Mar 2012 11:54:26 +0100
From: Samuele Giovanni Tonon <samu@...uxasylum.net>
To: john-dev@...ts.openwall.com
Subject: Re: OpenCL KPC and LWS

On 03/07/12 11:07, magnum wrote:
> On 03/07/2012 10:03 AM, Samuele Giovanni Tonon wrote:
>> On 03/07/12 00:31, magnum wrote:
>>>
>>> BTW both the LWS and KPC functions should ideally move to opencl-common.
>>
>> yes i agree, unfortunately there's the "hashing" and prepare part in
>> those function which vary from format to format, shall we use a
>> commong function in opencl-common and put a pointer function as arg ?
> 
> I haven't looked into the details, I can see it's not totally trivial.
> You'd need to prepare the specifics in the format, and just move the
> common stuff and enumeration loop to common. Hm, or maybe use
> callbacks... you mean pointers to set_salt() et al?

not only set salt but the all the enque and the specific setting for the
given format

> 
> Anyway since this code is in a state of flux it would be really nice
> with most of it in one place. And some formats might benefit from
> getting KPC enumeration added.

yup it's also one change for all


> 
>>> In the end we could end entries in john.conf:
>>> [OpenCL options]
>>> platform = 1
>>> device = 0
>>> ssha_LWS = 512
>>> ssha_KPC = 8192
>>> phpass_LWS = ...
>>>
>>
>> yes that's exactly what i had in mind but without the entry in john.conf
>> (i'm still trying to not modify non opencl code).
> 
> Why? A non-OpenCL build will just ignore the entries in the conf without
> complaining. From memory I think you won't have to touch any other code.
> 
>> (i'm still trying to not modify non opencl code). in that way you can
>> call john like this:
>>
>> export LWS=64
>> export KPC=1024768
>> ./john -i:all -fo:ssha-opencl /tmp/myhashes
>>
>> export LWS=128
>> export KPC=2097152
>> ./john -i:all -fo:mysql-sha1-opencl /tmp/pw-mysql
> 
> FWIW I avoid the export (as it will bite me later when I forget it's
> there) and just call like this:
> 
> LWS=64 KPC=1024768 ./john -i:all -fo:ssha-opencl /tmp/myhashes
> 
> LWS=128 KPC=2097152 ./john -i:all -fo:mysql-sha1-opencl /tmp/pw-mysql
> 
> But this is tedious to write any way we do it.
> 
>> of course if we can add that to john.conf that would be wonderful
>> the only problem is, how to trigger the benchmark so then you can
>> write down best numbers and never do that again ? we could behave like now:
>> - lws il always tested until it's put in john.conf
>> - kpc is at max_kpc until you put as 0 in john.conf, get the best value
>> for your card and fix the value in john.conf
> 
> Keep looking at env variables, if they are there they override the conf.
> 
> I've done conf stuff before. I can produce an experimental patch to
> demonstrate it for one format.
i'm not against it, actually i'd love to see it !

cheers
Samuele

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.