Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 9 Sep 2013 01:08:00 +0200
From: magnum <john.magnum@...hmail.com>
To: john-users@...ts.openwall.com
Subject: Re: --fork using different OpenCL devices

Solar,

On 8 aug 2013, at 05:30, Solar Designer <solar@...nwall.com> wrote:
> On Wed, Aug 07, 2013 at 09:32:49PM +0200, magnum wrote:
>> The idea is to have -fork pick a different device (starting from 0 or picking from a given list) for each child. Picture having two 7990 cards for a total of four devices. Using "-fork=4" with an OpenCL format would pick device 0 for the mother process, device 1 for first child and so on.
> 
> This would provide poor man's multi-GPU support.  Unfortunately, in the
> current implementation of --fork there's some use of signals - such as
> to get the status line printed by all children on a keypress - and this
> appears incompatible with AMD's SDK.

How? Does it crash and burn or do we just not get the status print from children?

> (...) if we _don't_ direct the different fork'ed processes to different GPUs (let them all use one GPU), then we'll hide the latency of key setup and key
> transfers.  This is similar to how I sometimes invoke Sayantan's descrypt-opencl on one GPU multiple times to achieve much better cumulative speed than is possible with one invocation.  Yes, --fork would help here (already the current implementation of it, with no changes)

So maybe if we say "-fork=4 -dev=0" (or omit -dev) we should fork but use one device, and if we say "-fork=4 -dev=1,2,3,4" we should fork and use different devices. That should be intuitive enough. And "-fork=4 -dev=0,1" would fork into four processes but using only two devices, with two processes using each device.

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.