Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 3 Apr 2015 04:31:28 +0200
From: Agnieszka Bielec <bielecagnieszka8@...il.com>
To: john-dev@...ts.openwall.com
Subject: Re: [GSoC] John the Ripper support for PHC finalists

2015-04-02 10:33 GMT+02:00 Agnieszka Bielec <bielecagnieszka8@...il.com>:
>    2015-04-01 19:48 GMT+02:00 Frank Dittrich <frank.dittrich@...lbox.org>:
>    >On 04/01/2015 06:56 PM, Agnieszka Bielec wrote:
>    >> there is a way to pass options by comand line somethig alike:
-m_cost=x ?
>    >> I need it for the auto_tune and compiling the kernel.
>
>    >There is a --cost= command line option, see doc/OPTIONS
>    >The --cost option can be used in regular runs and with --test, as long
>    >as you have test vectors matching the requested cost settings.
>
>    >To use thze --cost option for pomelo, you need to implement reporting
of
>    >the tunable costs.
>    >It is easy. See the django-scrypt format as an example.
>    >(bleeding-jumbo)JtR $ grep -A 5 "#if FMT_MAIN_VERSION > 11"
>    >src/django_scrypt_fmt_plug.c
>    >#if FMT_MAIN_VERSION > 11
>    >static unsigned int tunable_cost_N(void *salt)
>    >{
>    >       static struct custom_salt *my_salt;
>    >
>    >        my_salt = salt;
>    >--
>    >#if FMT_MAIN_VERSION > 11
>    >                {
>    >                        "N",
>    >                        "r",
>    >                        "p"
>    >                },
>    >--
>    >#if FMT_MAIN_VERSION > 11
>    >                {
>    >                        tunable_cost_N,
>    >                        tunable_cost_r,
>    >                        tunable_cost_p
>    >                },

>    thanks but it seems that first is executed init function (where I need
access to cost) before functions tunable_cost_*

if this is impossible I must add my option to JohnTheRipper or make
another big modifications. Should I do it? I wanted to avoid this
and today I was fighting with the format and moved the init function
to be called inside set_salt
"
if(last_t_cost!=t_cost || last_m_cost!=m_cost)
        {
           if(last_t_cost !=0 && last_m_cost !=0)
             done();
           last_t_cost=t_cost;
           last_m_cost=m_cost;
           init(fmt_pomelo_tmp,t_cost,m_cost);
        }
"
and many more tricks, now it works but I have some bugs and
also as before it is necessary to make modifications in files
like loader.c

I've added atomatic generating hashes for autotune

I know, there are some things I must to correct but I want to make
most important things before

now in my repository M_COST and T_COST are hardcoded
to value 2

tests for M_COST=2 and T_COST=2:
It's better than before but 2 is a very little value for POMELO

[a@...er run]$ ./john --format=pomelo-opencl -dev=2 --test
Device 2: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
Local worksize (LWS) 1, global worksize (GWS) 2048
Benchmarking: pomelo-opencl, POMELO [POMELO OpenCL (inefficient,
development use only)]... DONE
Raw:    200704 c/s real, 6432 c/s virtual

[a@...er run]$ ./john --format=pomelo-opencl -dev=3 --test
Device 3: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
Build log: Compilation started
Compilation done
Linking started
Linking done
Kernel <pomelo_crypt_kernel> was not vectorized
Done.
Local worksize (LWS) 8, global worksize (GWS) 65536
Benchmarking: pomelo-opencl, POMELO [POMELO OpenCL (inefficient,
development use only)]... DONE
Raw:    198593 c/s real, 6403 c/s virtual

not vectorized but fast, should I worry about this?

[a@...er run]$ ./john --format=pomelo-opencl -dev=4 --test
Device 4: Intel(R) Many Integrated Core Acceleration Card
Build log: Compilation started
Compilation done
Linking started
Linking done
Build started
Kernel <pomelo_crypt_kernel> was successfully vectorized
Done.
Local worksize (LWS) 64, global worksize (GWS) 64
Benchmarking: pomelo-opencl, POMELO [POMELO OpenCL (inefficient,
development use only)]... DONE
Raw:    34.2 c/s real, 6400 c/s virtual

[a@...er run]$ ./john --format=pomelo-opencl -dev=5 --test
Device 5: GeForce GTX TITAN
Local worksize (LWS) 64, global worksize (GWS) 8192
Benchmarking: pomelo-opencl, POMELO [POMELO OpenCL (inefficient,
development use only)]... DONE
Raw:    98304 c/s real, 98304 c/s virtual

but

./john --format=pomelo-opencl -dev=1 --test
Device 1: Tahiti [AMD Radeon HD 7900 Series]
OpenCL error (CL_OUT_OF_RESOURCES) in file (opencl_pomelo_fmt_plug.c) at
line (519) - (failed in clEnqueueNDRangeKernel)

it seems that I can allocate only wery small amounts of __private memory
even if I set MEM_SIZE to 3000 --dev=1 crashes

2015-03-30 11:51 GMT+02:00 magnum <john.magnum@...hmail.com>:
>On 2015-03-30 11:11, magnum wrote:
>> Also, your auto-tune settings are totally wrong, possibly ending up in
>> suboptimal work sizes. I will fix them and submit a patch.

>This patch fixes the auto-tune problems. BTW with my other suggestions
>it also runs fine on the GTX Titan, at about same ~10K c/s speed as on
>HD7970. And now it also runs on my Macbook GPU (1290 c/s).

thank you

Content of type "text/html" skipped

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.