AMD, auf nen Intel Xeon 1.8 GHz bin ich schon mal bei 2.93-2.97 gewesen, ohne Assembler (also kein normaler Intel) . Dann habe ich mein memset und memcpy durch MMX / SSE2 ersetzt und lande bei 2.97-2.99. AMD ignoriert die Optimierung einfach und ist mit SSE2 genauso gut wie ohne, klebe da bei so 2.75-2.83 fest.
@David
Darf ich das Framework etwas veraendern, z.B.:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
// bestimmt die Punktzahl einer Lösung
double measure(void (* p_function)(const uint*, uint, uint, bool*),
double num_seconds,
uint random_seed,
double* p_out_num_tasks_per_second = 0,
double* p_out_average_score = 0,
double* p_out_exact_hit_ratio = 0)
{
...
const double t0 = time();
while(true)
{
uint numbers[50] __attribute__ ((aligned (16)));
bool select[50] __attribute__ ((aligned (16)));
...
|
Edit: Ich glaube der Xeon-Prozessor ist kein guter Anhaltspunkt fuer die Performance. Und ich verwende keine local struct static inline ... Funktion. Bei mir sind sie separat.