Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150823055742.GB15169@openwall.com>
Date: Sun, 23 Aug 2015 08:57:42 +0300
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: PHC: Argon2 on GPU

On Sun, Aug 23, 2015 at 08:37:22AM +0300, Solar Designer wrote:
> When we're programming in OpenCL (or even in PTX or IL), we appear to be
> stuck with the SIMT rather than SIMD model.  We want to access wider
> SIMD from one instance of Argon2, but we're only given SIMT instead.
> What we can possibly do is accept this model, and work within it to
> achieve our goal.  We can have a few threads (work-items) running in
> lock-step anyway (because they're physically being run on wider SIMD
> than we can access) communicate via shared (local) memory frequently,
> during each block computation.

Actually, there's a better alternative:

http://docs.nvidia.com/cuda/kepler-tuning-guide/index.html#warp-shuffle

"Kepler introduces a new warp-level intrinsic called the shuffle
operation.  This feature allows the threads of a warp to exchange data
with each other directly without going through shared (or global)
memory.  The shuffle instruction also has lower latency than shared
memory access and does not consume shared memory space for data
exchange, so this can present an attractive way for applications to
rapidly interchange data among threads."

Sounds like precisely what we need for the original Argon2.

We need to find out if it's available in OpenCL.

Also need to find out whether there's an equivalent for AMD GCN.

Alexander

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.