Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20151005225926.GB4486@openwall.com>
Date: Tue, 6 Oct 2015 01:59:26 +0300
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: Agnieszka's GSoC formats

Agnieszka -

On Tue, Oct 06, 2015 at 12:42:53AM +0200, Agnieszka Bielec wrote:
> I modified the code, --dev=3 doesn't segfaults but on super --dev=6
> and my card is slower
> 
> on my card it's 1882 c/s -> 1777 c/s
> on --dev=6 it's 6678 c/s -> 5907 c/s

What modifications did you make?  Are you now using the same integer
type consistently?  Do you know or have a good guess at what causes the
performance loss?  (I mean not at source code level, but under the
hood.)  If it's directly the compiler's inability to reorder some
operations now that you're using the same data type, so it knows the
pointers may alias, then selectively using the restrict qualifier on
some pointers (that you know can't alias any other pointer) might regain
some of the lost performance.  I see that restrict qualifier is in
OpenCL 1.1+; I don't know if it also was in 1.0 or not.  (As a C99
feature, it probably should have been already in there.)

Anyway, I expect that much greater performance gains are possible by
other means, such as through avoiding register spilling (and always
accessing global memory explicitly instead, just where you have to), so
it might be premature to re-optimize the above now.

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.