View Single Post
Old 19-10-2020, 13:09   #143
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 6327
Quote:
Originariamente inviato da digieffe Guarda i messaggi
capisco ciò che t'interessa, dipende essenzialmente da alcune "unità" della cpu, sicuramente il branch predictor e prefetching/indirizzamento/load+store (un sorgente di un qualsiasi linguaggio è di per sé imprevedibile ed anche il modo come il compilatore crea, durante la compilazione, le liste/alberi/altre strutture) ed in genere l'elaborazione è relegata alle sole unità INT.
A memoria (è da zen2 che non guardo lo schema e potrebbe esserci qualche imprecisione contrassegnata con "*"):
Fino a Zen+ ci sono 4 pipeline di elaborazione INT, 2 di generazione d'indirizzo oltre ad *1 load + 1 store.
Zen2 ci sono 4 pipeline di elaborazione INT, 3 di generazione d'indirizzo oltre ad *2 load + 1 store.
Zen3 vedremo
ho omesso le unità simd perché che sappia sono poco utilizzate nella compilazione.

p.s. per curiosità che compilatore utilizzi? (gli ultimi che utilizzai in ordine furono v.Studio, Icc e Gcc ma i progetti erano piccoli e di fatto, se non facevo una rebuild di tutto, il tempo impiegato andava da pochi decimi a 2-3 secondi)


edit: ho omesso anche il branch predictor in quanto non ne ricordo mai le caratteristiche
Utilizzo gcc e java per compilare progetti di medie dimensioni. Il passaggio da 4 a 8 core ha praticamente dimezzato i tempi di compilazione, ora spero di passare a 16 core presto
Immagino che 64 core possano cambiare la vita a chi sviluppa sul kernel di linux
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
 
1