Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 30 Mar 2015 22:50:10 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: [GSoC] John the Ripper support for PHC finalists

On 2015-03-30 19:28, Agnieszka Bielec wrote:
> On 2015-03-30, magnum wrote:
>> On 2015-03-30 01:56, Agnieszka Bielec wrote:
>>> Is it possible to change 'count' variable which is passed to crypt_all,
>>> after the execution of opencl_ini_auto_setup() ?
> 
>> Yes, well, cracker.c will use format->params.max_keys_per_crypt so if
>> you change that, it will affect "count". But I'm not sure what you are
>> aiming at.
> 
> It's because pomelo is parametrized by m_cost (memmory cost) (and also
> by t_cost which is less important)
> the size of needed memory in bytes is: 1 << (13 + m_cost) which
> is very much. I can't allocate as much memory in the __kernel function
> so my funcion gets and makes computations on a __global buffor.
> There is a problem with this because I'm allocating memory only once after
> the tests but fmt_tests theoretically holds different pomelo hashes
> parametrized by different m_cost. Here I have 2 problems with this.
> 1.We need different sizes of buffor needed by a single __kernel function
> execution. I can assume that in the file we have all hashes with
> the same m_cost but there is still a second problem.
> 2.after assumtion that in the file all hashes have this same m_cost
> parameter, fmt_tests doesn't holds hashes with the same m_cost.
> after opencl_init_auto_setup and autotune_run we know how much
> memory is the better solution

I see. As it happens, since just a week ago most OpenCL formats do not
auto-tune in init() but when their reset() function is called with a
NULL db argument. This happens early within self-test.

And reset() is called again once, after self-tests and right before real
cracking starts. But this time with a db argument. Nothing stops you
from adding to Pomelo, that when reset() is called with an actual db
pointer, it examines the db and adjusts its buffers and/or workgroup
sizes accordingly.

Would that solve your problem? The first thing you need to do is rebase
on latest bleeding-jumbo, then apply changes to pomelo-opencl similar to
what happened to mysqlsha1-opencl in commit ef4b3dbb. Then add whatever
code you like in reset().

magnum

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.