El qua-cre és més ràpid que una sola-core?
La primera vegada que vaig fer aquesta pregunta a la cistoria, però em van suggerir que em fes una pregunta aquí, així que aquí va...
Estic treballant en els meus amos tesi i necessito tenir valor teòric de la velocitat (qual) que un processador quadre porta en comparació amb un processador individual, quan ambdós utilitzen la mateixa freqüència. Per exemple, el guany de velocitat d'un únic GHz contra 2 Ghz quadre.
En algun lloc d'Internet he llegit que un quadrotre és 2,6 vegades més ràpid que un solcore, però l'autor no ha mencionat cap font per no poder utilitzar-ho en la meva tesi.
He intentat calcular algunes coses, però no he arribat a una conclusió. Ho vaig intentar així:
Aquesta taula representa els temps disponibles per executar una tasca (he pres un ús just per cada fil). Per exemple, quan s' usa una solacore i una aplicació usa 3 fils, cada fil pot treballar 1/3 de l' hora, mentre que amb una quadràtica cada fil pot funcionar 100% de vegades, perquè es poden escampar 3 fils acros a través d' un nucli separat. Després de jugar amb alguns càlculs a l' Excel·lència, no vaig poder arribar a cap conclusió.
Estic una mica atrapat i necessito unes idees fresques sobre com aconseguir un nombre teòric que representa el nucli d'un quadre és (en promig) comparat amb un únic nucli. Potser alguns de vosaltres coneixeu alguns números empírics amb una bona referència a la font? De tota manera, tota l'ajuda és benvingut, perquè estic una mica atrapat i aquesta és l'última part que necessito cobrir la meva tesi.
2 respostes 2
No hi ha un valor absolut de com més ràpid seria un quadrocre comparat amb una sola-cre. Com diuen els comentaris, molt depèn del que feu exactament si serà més ràpid o més lent. Fins i tot les proves de rendiment en directe poden no donar una resposta justa ja que no modela el comportament exacte.
En qualsevol cas, si esteu buscant un model teòric, segurament és possible, però, com podeu veure ràpidament, no pràcticament possible.
Primer has d'entendre l'arcista de les fitxes dels involucrats. Quan et mous d'un simple a un quadrotre no tots els recursos són de fet quatre vegades quatre. En particular, la memòria encara és un recurs compartit. Aquesta memòria està dividida entre una sèrie de cau, alguns dels quals es comparteixen, i alguns d'ells no són compartits. Cada memòria cau està connectat a les altres cau d' un bus dedicat, o un bus de dades compartit. Cadascun d'aquests llocs cau i autobusos té un número de banda de banda real i de retard. Això no és probablement publicat, però amb algunes proves molt centrades es poden obtenir.
Segon heu d' entendre com usarà l' aplicació la memòria. Com és compartit aquesta memòria i l'ordre en el que s'hi pot accedir. Per a un sol fil que podeu, en teoria, calculeu la quantitat de temps que passa carregant les dades des dels diversos nivells de la memòria cau. Per a un cas multicre un valor clau és el molt sovint que intentes escriure a la mateixa memòria. En aquest cas invocaràs l' algorisme de memòria cau de patates fregides. Aquest algoritme normalment està documentat (a un cert grau) i el temps per sincronitzar es pot mesurar raonablement.
Combinar-los junts i veureu que amb un coneixement perfecte de com es comporta el programa i com es comporta el processador que podreu calcular els guanys teòrics d'incrementar el nombre de nuclis. En pratice això simplement no serà possible per a tots els programes més simples (però fins i tot llavors la manera com les fitxes gestiona la memòria és prou complexa per a fer el problema massa difícil).
El que s'ha d'obtenir d'aquesta descripció és principalment que la velocitat de processador sol no és l'únic problema. La memòria sovint és l'ampolla de claus. Quan svick diu perfectament paral· lelitzada Vol dir que no comparteixen la memòria. En aquest cas, els vostres fils s'aproparan a la velocitat màxima 4x quan el contingut de la memòria és baix. No obstant això, encara comparteixen una memòria cau per llegir (L3 i la memòria principal de la Intel·ligència) i per tant encara podria estar limitada per la banda de banda total de memòria.
Si voleu veure un exemple de cerca degenerat "fals compartit." En aquests casos, la velocitat total disminueix com a processadors més s' afegeixen.
A més de l' altra resposta: avui, la velocitat d' un processador és a un gran grau limitat per calor . El processament produeix calor, massa calor destruiria el processador o molt curt en la seva vida, així que quan el processador s'acosta a ser massa calent, la velocitat s'accelera per tal que produeix menys calor.
Per exemple, es pot comprar un processador d'Intel Strint amb 4, 8, 10, 14, o 18 nuclis. La velocitat oficial del rellotge és 4.3, 3.6, 3.3 i 2.6 GHz. Perquè 18 nuclis produeixen més calor que 4, la velocitat del rellotge s'ha de reduir (si el processador de nucli 18 només usa 4 nuclis, a la vegada que pot córrer a la mateixa velocitat que el processador de nucli 4). Usar un únic nucli, el processador pot córrer a una velocitat encara més alta.
Hi ha la consideració si el codi és conscient de córrer en múltiples processadors o no. S'escriu un munt de codi crític de rendiment per a ser conscient de què estan disponibles els caches. Per exemple, si hi ha 2 MB de la memòria cau, intentaries tallar la feina en trossos de 2 MB alhora. Però si hi ha quatre fils en quatre CPU, només podeu tenir 0,5 MB per CPU, que poden reduir el rendiment d'alguna manera si el codi és conscient d'això, i pot reduir el rendiment radicalment si el codi no és conscient, i quatre nuclis intenten accedir al 8MB.
(En un comentari, Raphael va suggerir correctament que es pot guanyar més velocitat per pura sort. Si el codi no és conscient de la memòria cau, però divideix el treball en quatre parts perquè cada nucli pugui fer alguna feina, pot passar per pura sort que el codi ara és més amigable i fuig més de quatre vegades més ràpid).
Hi ha la pregunta que es duplicaran els recursos. Hi ha processadors que són optimitzats per a l'actuació enter, i pot ser que es comparteixin una unitat de vector flotant o especialment entre nuclis. En aquest cas, el vostre guany serà molt menys si el codi usa els recursos que no són duplicats. (En un processador com aquest, el codi enter tindria la velocitat esperada).
Artículos Relacionados:
- Quin és el més ràpid?
- És i3 més ràpid que quadre?
- Com puc fer que el meu nou ordinador sigui més ràpid?
- Què ve després de l'octa-core?
- Processador -