Rev 108 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 108 | Rev 154 | ||
---|---|---|---|
Line 56... | Line 56... | ||
56 | * * |
56 | * * |
57 | ************************************************************ |
57 | ************************************************************ |
58 | */ |
58 | */ |
59 | if (smp_max_threads < 2) { |
59 | if (smp_max_threads < 2) { |
60 | Print(4095, "ERROR: smpmt must be set to > 1 for tuning to work\n"); |
60 | Print(4095, "ERROR: smpmt must be set to > 1 for tuning to work\n"); |
- | 61 | fclose(craftyrc); |
|
61 | return; |
62 | return; |
62 | } |
63 | } |
63 | if (nargs > 1) |
64 | if (nargs > 1) |
64 | target_time = atoi(args[1]) * 100; |
65 | target_time = atoi(args[1]) * 100; |
65 | if (nargs > 2) |
66 | if (nargs > 2) |
Line 94... | Line 95... | ||
94 | Print(4095, "\nBegin stage I (calibration)\n"); |
95 | Print(4095, "\nBegin stage I (calibration)\n"); |
95 | last_time = 0; |
96 | last_time = 0; |
96 | for (benchd = -5; benchd < 10; benchd++) { |
97 | for (benchd = -5; benchd < 10; benchd++) { |
97 | Print(4095, "bench %2d:", benchd); |
98 | Print(4095, "bench %2d:", benchd); |
98 | time = 0; |
99 | time = 0; |
99 | for (v = 0; v < |
100 | for (v = 0; v < accuracy; v++) |
100 | time += Bench(benchd, 1); |
101 | time += Bench(benchd, 1); |
101 | time /= accuracy; |
102 | time /= accuracy; |
102 | Print(4095, " ->%s\n", DisplayHHMMSS(time)); |
103 | Print(4095, " ->%s\n", DisplayHHMMSS(time)); |
103 | if (time > 6 * target_time) |
104 | if (time > 6 * target_time) |
104 | break; |
105 | break; |
Line 144... | Line 145... | ||
144 | for (current = tune[v].min; current <= tune[v].max; |
145 | for (current = tune[v].min; current <= tune[v].max; |
145 | current += tune[v].increment) { |
146 | current += tune[v].increment) { |
146 | Print(4095, "Testing %d: ", current); |
147 | Print(4095, "Testing %d: ", current); |
147 | *tune[v].parameter = current; |
148 | *tune[v].parameter = current; |
148 | time = 0; |
149 | time = 0; |
149 | for (p = 0; p < |
150 | for (p = 0; p < accuracy; p++) |
150 | time += Bench(benchd, 1); |
151 | time += Bench(benchd, 1); |
151 | time /= accuracy; |
152 | time /= accuracy; |
152 | times[samples] = time; |
153 | times[samples] = time; |
153 | setting[samples++] = current; |
154 | setting[samples++] = current; |
154 | Print(4095, " ->%s\n", DisplayHHMMSS(time)); |
155 | Print(4095, " ->%s\n", DisplayHHMMSS(time)); |
155 | } |
156 | } |
156 | best = 0; |
157 | best = 0; |
157 | bestv = times[0]; |
158 | bestv = times[0]; |
158 | for (i = 1; i < samples; i++) |
159 | for (i = 1; i < samples; i++) |
159 | if (bestv > |
160 | if (bestv > times[i]) { |
160 | bestv = times[i]; |
161 | bestv = times[i]; |
161 | best = i; |
162 | best = i; |
162 | } |
163 | } |
163 | fprintf(craftyrc, "%s=%d\n", tune[v].command, setting[best]); |
164 | fprintf(craftyrc, "%s=%d\n", tune[v].command, setting[best]); |
164 | Print(4095, "adding " "%s=%d" " to .craftyrc file.\n", tune[v].command, |
165 | Print(4095, "adding " "%s=%d" " to .craftyrc file.\n", tune[v].command, |