Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 26 Jun 2012 10:24:33 +0300
From: Milen Rangelov <>
Subject: Re: OpenCL kernel max running time vs. "ASIC hang"

> Wouldn't calling clEnqueNDRangeKernel too many times will cause a
> performance hit?  What about pausing the execution for some time as
> requested by the user. Say we press 'P' which will pasue the execution so
> that the user can perform the graphic oriented tasks and then resume the
> execution when he is finished.
> Regards,
> Sayantan

Not a big one. Well I know because one of the changes I am introducing is
"interactive mode" where the NDRange is divided by some constant (depending
on plugin, e.g for md5 it's 16). Then kernel is repeatedly invoked
*constant* times with the appropriate ndrange offset. Between each
invocation, 4 bytes of device memory are mapped and if its value is greater
than 0, the whole buffer of matching hashes from device buffer is
transferred to host for further checks.

On 6870, speed without interactive mode is about 4315M/s (single hash),
with interactive mode speed drops to about 4180 which is not a huge
performance hit AFAIK.

However things drastically change if memory transfers between kernel
invocations are larger. In that case indeed performance degradation can be
huge. Fortunately mapping 4 bytes is fast enough.

Content of type "text/html" skipped

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.