Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Fri, 04 Sep 2015 14:53:17 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: interleaving on GPUs

On 2015-09-02 18:35, Solar Designer wrote:
> Also relevant, about GCN:
>
> http://bartwronski.com/2014/03/27/gcn-two-ways-of-latency-hiding-and-wave-occupancy/
>
> "We have two ways of latency hiding:
>
> * By issuing multiple ALU operations on different registers before
> waiting for load of specific value into given register.  Waiting for
> results of a texture fetch obviously increases the register count, as
> increases the lifetime of a register.
> * By issuing multiple wavefronts on a CU - while one wave is stalled on
> s_waitcnt, other waves can do both vector and scalar ALU.  For this one
> we need multiple waves active on a CU."
>
> This blog post doesn't exactly recommend interleaving (when it's
> possible memory-wise, we could as well issue more wavefronts instead),
> but it does recommend having some instruction-level parallelism.

Not sure how relevant this is, but:

$ LWS=0 ../run/john -test -form:wpapsk-opencl -dev=2
Device 2: Tahiti [AMD Radeon HD 7900 Series]
Benchmarking: wpapsk-opencl, WPA/WPA2 PSK [PBKDF2-SHA1 OpenCL]... 
{524288/64} DONE
Raw:	151091 c/s real, 8738K c/s virtual

$ LWS=0 ../run/john -test -form:wpapsk-opencl -dev=2 -force-vec=2
Device 2: Tahiti [AMD Radeon HD 7900 Series]
Benchmarking: wpapsk-opencl, WPA/WPA2 PSK [PBKDF2-SHA1 OpenCL 2x]... 
{524288/64} DONE
Raw:	151747 c/s real, 13107K c/s virtual

Very slight boost, but a boost (4x is a huge drop though). Previously 
(ie. with older drivers) I have always seen significant regression from 
any use of vectorizing on GCN. Alain said he had some success with eg. 
NT though.

The WPAPSK kernel has a lot of state put in global memory and it 
obviously gets worse with vectorizing.

magnum

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ