Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 23 May 2015 00:18:54 +0200
From: magnum <>
Subject: Re: autotune_run problem

On 2015-05-22 22:41, Agnieszka Bielec wrote:
> 2015-05-22 18:01 GMT+02:00 magnum <>:
>> And max_run_time should either be 1000 or 10000000000.
> thanks, works good with 10000000000 but even with that value after a
> change from 1.8 to 1.1 works better for some cases

This means your single-call kernel has a duration of more than 10 
seconds! That's totally crazy.

Here's the deal:

if (best_speed && speed < 1.8 * best_speed &&
         max_run_time && run_time > max_run_time) {
	if (!optimal_gws)
		optimal_gws = num;

	if (options.verbosity > 3)
		fprintf(stderr, " - too slow\n");

This is a bailout for when max_run_time (10 seconds) was breached. The 
1.8 is an *exception*: If we got close to 2x the speed, we override the 
bailout because it's "worth it". But this is really a kludge, ideally we 
should never need to do this. And definitely not if the max was set a 10 

Changing the override to 1.1x makes it use that exception all the time, 
effectively disabling the duration limit. This does not mean it's fixes 
any problem.

You'll get the same better results if you bump the 10000000000 to eg. 
30000000000 - but these are totally *insane* figures. Your total kernel 
duration should be less than 500ms, preferably less than 200ms. Not a 
full second and definitely not over five seconds ever, because that will 
trigger watchdogs and crash many systems.

So I'm sorry but you simply have no option other than rewriting your 
kernel to a split, or loop, kernel. It might be hard to do this for 
Pomelo but not impossible - and there is no alternative.


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.