|
|
Message-ID: <CABob6ioUPCbAfGgOM5YRbaKiund1b2g3=FQLpyt87q9UmLKaBQ@mail.gmail.com>
Date: Thu, 5 Jul 2012 16:16:05 +0200
From: Lukas Odzioba <lukas.odzioba@...il.com>
To: john-dev@...ts.openwall.com
Subject: Re: common find_best_workgroup()
2012/7/5 magnum <john.magnum@...hmail.com>:
> Lukas,
>
> In the current common-opencl.c code, you never actually set
> local_work_size = my_work_group within the find_best loop. It's 1 all
> the time so the end result is totally random. I am about to change this.
> Or am I confused?
Current state is:
void opencl_find_best_workgroup(struct fmt_main *pFmt)
{
(...)
size_t my_work_group, optimal_work_group = 1;
(..)
/// Find minimum time
for (my_work_group = wg_multiple;
(int) my_work_group <= (int) max_group_size;
my_work_group += wg_multiple) {
(...)
if ((endTime - startTime) < kernelExecTimeNs) {
kernelExecTimeNs = endTime - startTime;
optimal_work_group = my_work_group;
}
(...)
local_work_size = optimal_work_group;
(...)
}
It looks ok for me. Am I right? Possibly we should drop
optimal_work_group variable and always set local_work_size.
If you agree, I'll fix that.
This functions is not perfect, for example we should introduce
local_work_size for each device (we're not using more than two dev's
per run but this should change in the near future - it is already in
sayantan's code but he created his own "habitat" in code).
Lukas
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.