Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+E3k91-qNp1GWFMhX2e9jvcrQoLEU3ndiifq+xwWNyseyQJow@mail.gmail.com>
Date: Thu, 30 Oct 2014 07:49:12 -0800
From: Royce Williams <royce@...ho.org>
To: john-dev <john-dev@...ts.openwall.com>
Subject: Re: "Failed copy data to gpu" when using fork with descrypt-opencl

On Thu, Oct 30, 2014 at 6:40 AM, magnum <john.magnum@...hmail.com> wrote:
> On 2014-10-10 09:58, Royce Williams wrote:
>>
>> I'm getting the following error when I try to use fork to get more
>> CPU cores participating in feeding my GPU:
>>
>> /srv/crack/john-latest/run/john --format=descrypt-opencl --fork=2
>> ./badcrypt.test
>> Device 0: GeForce GTX 970
>> Local worksize (LWS) 64, Global worksize (GWS) 16384
>> Loaded 1 password hash (descrypt-opencl, traditional crypt(3) [DES
>> OpenCL])
>> Node numbers 1-2 of 2 (fork)
>> OpenCL error (CL_INVALID_COMMAND_QUEUE) in file
>> (opencl_DES_bs_b_plug.c) at line (637) - (Failed Copy data to gpu)
>> OpenCL error (CL_OUT_OF_RESOURCES) in file (opencl_DES_bs_b_plug.c) at
>> line (637) - (Failed Copy data to gpu)
>
>
> I should have catched this little detail earlier but you actually gave the
> wrong syntax, as it was. Maybe it wasn't very clear but at the time,
> README-OPENCL stated ``...For this to happen, the "-dev" option (--device)
> is mandatory´´. Just adding a -dev=0 or -dev=gpu should make your command
> line work with that commit.

Good catch!  Now working well on my system.

> Of course it did not fail in a good way: It should have worked in some sense
> (with a warning), or just bailed out. I have now committed a fix so this
> situation gets an implicit "--device=all". In many cases that is not what
> you really want (eg. it includes CPU devices) so you should probably learn
> to always use --dev=gpu when using --fork anyway.

Makes sense, will do.

> Using -fork=4 on a quadcore+HT and GTX980 I got over 82 Mc/s.

On my 8-core AMD and GTX970, using fork=2 gets me 52 Mc/s, which is
much better than no fork (~35 Mc/s).  fork=3 settles in around 54
Mc/s.  Forking more than 3 doesn't materially increase the c/s rate.
So the sweet spot looks like fork=2 if I want to maximize the number
of GPUs.

Put another way ... it looks like four GTX970s will max out my CPU, so
this tells me how far I can build up (as long as candidate wordlists
are generated on CPU for descrypt-opencl).

Thanks very much!

Royce

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.