I benchmark (per confrontare le prestazioni dei processori) dovrebbero essere compilati con l'ottimizzazione CFLAGS?

1

Ho bisogno di confrontare le prestazioni di 2 processori e ho concluso che dovrei fare un benchmark con diversi test.

Attualmente sto usando

  • linpack (HPL) (perché è ancora noto e usato ad esempio per creare la top 500 list)
  • SciMark2 (a causa di 5 diversi metodi all'interno)
  • semplice per cicli scritti in C (per vedere la differenza tra istruzioni semplici / calcoli più sofisticati)

Compilandoli ho visto un'enorme differenza nelle prestazioni se sono stati compilati con alcuni * FLAG ( -march = x86-64 -mtune = generico -O2 -pipe -fstack-protector-strong -param = ssp-buffer-size = 4).

Devo usare questi flag di ottimizzazione o no per ottenere il mio punto?

Temo di perdere qualche punto / diversi benchmark tra le architetture durante l'ottimizzazione.

    
posta KaP 08.01.2015 - 19:25
fonte

2 risposte

1

Should I be using these optimization flags or not to get my point?

Qual è esattamente il tuo punto? Dipende davvero da ciò che vuoi dimostrare e anche se provi a fare un confronto onesto, le persone sanno che tutti i benchmark dovrebbero essere presi con alcuni grani di sale.

Alcuni esempi:

  • il test di linpack non sarà paragonabile alla top 500 list perché eseguono i lavori su GPU, non su CPU, e il risultato è FLOPS. FLOPS è ciò che cerchi?
  • le CPU hanno le stesse dimensioni della cache? Ci sono modi per sfruttare questa differenza
  • loop semplici scritti in C potrebbero non mostrare differenze nella velocità del bus della memoria della CPU.

In ogni caso, di solito ogni test viene eseguito in ambiente ottimizzato per ottenere il massimo delle prestazioni. Quali accordature utilizzate possono essere diverse purché vi sia una corretta divulgazione su di esse. Se sono sintonizzati solo su ciò con cui è compilato linux, qualcuno potrebbe contestare che si possano ottenere risultati diversi utilizzando diversi set di parametri.

La CPU SPEC è probabilmente quello che stai cercando. Consiste di suite intere e in virgola mobile. Non è economico, probabilmente perché GeekBench è più popolare in questi giorni (non gratuito, ma comunque economico). Certamente non vorrei leggere troppo in altri risultati di benchmark.

    
risposta data 09.01.2015 - 03:28
fonte
3

Dovresti usare le opzioni di compilazione che useresti quando effettivamente compilerai i programmi che questo benchmark rappresenta. I programmi ad alta intensità di calcolo sono generalmente compilati con l'ottimizzazione (a meno che non si stia ricercando l'efficacia dell'ottimizzazione), pertanto i benchmark dovrebbero essere compilati con l'ottimizzazione.

    
risposta data 08.01.2015 - 21:56
fonte

Leggi altre domande sui tag