Ce este hyper threading în procesoarele Intel. Tehnologia Hyper-Threading - ce este? Cum se activează și se utilizează? Factori software și hardware

Ce este hyper threading în procesoarele Intel. Tehnologia Hyper-Threading - ce este? Cum se activează și se utilizează? Factori software și hardware

Astăzi am decis să tratez subiectul oportunitatea de a cumpăra procesoare cu Hyper-Threading(Hyper Trading) pentru jocuri.

Primul lucru de remarcat este că nu poate exista un răspuns clar la întrebarea pusă. Pentru unii, Hyper-Threading este o necesitate, dar pentru alții va fi o risipă inutilă de bani. Voi analiza ambele opțiuni și după citirea articolului (sper) toată lumea va putea evalua independent care dintre aceste cazuri este al lor și, în consecință, va trage concluzii PONDERATE despre oportunitatea achiziționării unui procesor cu Hyper-Threading pentru sine.

Hyper-Threading implică împărțirea procesării datelor de către nucleul procesorului în 2 fire paralele. Ideea este bine surprinsă de următorul citat:

Când are loc o pauză în timpul execuției unui fir pe unul dintre procesoarele logice (ca urmare a unei erori de cache, a unei erori de predicție a ramurilor sau a așteptării rezultatului unei instrucțiuni anterioare), controlul este transferat firului într-un alt procesor logic . Astfel, în timp ce un proces așteaptă, de exemplu, date din memorie, resursele de calcul ale procesorului fizic sunt folosite pentru a procesa un alt proces.

Aplicații care NU au nevoie de Hyper-Threading.

Hyper-Threading NU este necesar pentru:

  • 90% dintre jocurile pe calculator, atât moderne, cât și cele care vor fi lansate în următorii ani;
  • aplicații de birou.

Justificare pentru inutilitatea Hyper-Threading.

Hyper-Threading are o răspândire serioasă a câștigurilor de productivitate de la 0% (adică inutilitate completă) la 30% (ceea ce este foarte vizibil), care depinde de următorii factori:

1. Optimizarea unei singure aplicații pentru lucrul cu 8 sau mai multe fire.

Dacă aplicația nu este optimizată pentru 8 fire, atunci Hyper-Threading nu va oferi niciun beneficiu.

În unele cazuri, încercările software-ului „neantrenat” de a lucra cu 8 nuclee au ca rezultat chiar faptul că un procesor cu 8 fire de execuție arată rezultate mai proaste decât „fratele său mai mic” fără Hyper-Threading.

2. Procent de încărcare procesor

Cu cât procentul de încărcare a procesorului este mai mare, cu atât impactul Hyper-Threading este mai vizibil. Și invers - la sarcină mică nu vei observa influența acesteia.

Pe baza acestor date, putem concluziona că Hyper-Threading NU este necesar pentru:

  • 90% dintre jocurile pe calculator, moderne și cele care vor fi lansate în următorii ani. Nu oferă suficientă încărcare CPU;
  • aplicații de birou.

Unde este NECESARĂ Hyper-Threading?

  • Beneficiile sunt incontestabile Hyper-Threading în 3D Max iar în alte prof. aplicatii. În experimentele mele, această tehnologie a redus timpul de randare cu 30%;
  • Hyper-Threading este util și pentru TOP 10% dintre jocurile moderne pe computer (cum ar fi Crysis 3), precum și jocuri similare care vor fi lansate în viitor.

Mai multe motive pentru a folosi Hyper-Threading pentru jocuri

Chiar dacă sunt foarte puține jocuri pe PC astăzi care sunt optimizate pentru 8 fire, tot cred că cumpărarea unui i7 cu 8 fire are sens, mai ales cu privirea către viitor.

in primul rand calculatoare de jocuri din înțelesul meu, ar trebui să se concentreze nu pe majoritatea jocurilor, ci pe cele mai bune jocuri. Dar, de fapt, astăzi există jocuri optimizate pentru 8 fire și care oferă 70+% încărcare CPU.

În al doilea rând, ne putem aștepta doar la îmbunătățiri ale jocurilor și, în consecință, la o creștere a cerințelor acestora asupra procesorului. Mai ales ținând cont de faptul că consolele au DEJA 8 nuclee și aceasta ar trebui luată drept „bara” pentru sistemele de jocuri pentru următorii ani.

Remarc că în acest caz nu vorbim despre speculația unui blogger individual, ci despre previziunile a două echipe ale celor mai buni profesioniști care lucrează pe platforme precum PS și XBox.

În al treilea rând, procesorul îmbătrânește de 2-3 ori mai lent decât placa video. Acest fapt vă permite să înlocuiți placa video, să zicem, într-un an sau doi, și astfel aveți ocazia să vă bucurați de noile jocuri actuale. Dar acest lucru este posibil doar dacă procesorul poate gestiona atât noua placă video, cât și noul joc. În caz contrar, va deveni o legătură limitativă și nu va permite plăcii video să-și arate întregul potențial în niciun joc specific care necesită procesor.

Luând în considerare toate cele trei puncte, cumpărarea unui procesor cu Hyper-Threading pare o decizie foarte rezonabilă pentru computerele de gaming.

Există informații pe internet despre inutilitate Hyper-Trading pe scurt.

În numele meu, am decis să efectuez un mini-test, redând o mică scenă cu Hyper-Trading activat și dezactivat.

Deci, prima tranzacționare Hyper este dezactivată. Timp de redare 188 sec.

Porniți-l. Timpul de redare este redus la 151 de secunde.

Utilizatorii care au configurat cel puțin o dată BIOS-ul probabil au observat deja că există un parametru Intel Hyper Threading care nu este clar pentru mulți. Mulți oameni nu știu ce este această tehnologie și în ce scop este folosită. Să încercăm să ne dăm seama ce este Hyper Threading și cum puteți activa utilizarea acestui suport. Vom încerca, de asemenea, să ne dăm seama ce avantaje oferă această setare pentru funcționarea computerului. În principiu, nu este nimic greu de înțeles aici.

Intel Hyper Threading: ce este?
Dacă nu intrați adânc în jungla terminologiei informatice, ci pentru a spune în termeni simpli, atunci această tehnologie a fost dezvoltată pentru a crește fluxul de comenzi procesate simultan de procesorul central. Cipurile de procesoare moderne folosesc de obicei doar 70% din capacitățile lor de calcul disponibile. Restul rămâne, ca să spunem așa, în rezervă. În ceea ce privește procesarea fluxului de date, în cele mai multe cazuri se folosește un singur fir, în ciuda faptului că sistemul folosește un procesor multi-core.

Principii de bază de funcționare
Pentru a crește capacitățile procesorului central, a fost dezvoltată o tehnologie specială Hyper Threading. Această tehnologie face ușoară împărțirea unui flux de comandă în două. De asemenea, este posibil să adăugați un al doilea thread la unul existent. Doar un astfel de fir este virtual și nu funcționează la nivel fizic. Această abordare poate crește semnificativ performanța procesorului. În consecință, întregul sistem începe să funcționeze mai repede. Câștigurile de performanță ale procesorului pot fluctua destul de mult. Acest lucru va fi discutat separat. Cu toate acestea, dezvoltatorii tehnologiei Hyper Threading susțin că nu ajunge la un nucleu cu drepturi depline. În unele cazuri, utilizarea acestei tehnologii este sută la sută justificată. Dacă cunoașteți esența procesoarelor Hyper Threading, rezultatul nu vă va face să așteptați mult.

Referință istorică
Să ne scufundăm puțin în istoria acestei dezvoltări. Suportul Hyper Threading a apărut pentru prima dată doar în procesoarele Intel Pentium 4. Ulterior, implementarea acestei tehnologii a fost continuată în seria Intel Core iX (X înseamnă serie de procesoare). Este de remarcat faptul că din anumite motive lipsește din linia Core 2 de cipuri de procesor. Adevărat, atunci creșterea productivității a fost destul de slabă: undeva în jur de 15-20%. Acest lucru a indicat că procesorul nu avea puterea de calcul necesară, iar tehnologia creată era practic înaintea timpului său. Astăzi, suportul pentru tehnologia Hyper Threading este deja disponibil în aproape toate cipurile moderne. Pentru a crește puterea procesorului central, procesul în sine folosește doar 5% din suprafața cipului, lăsând loc pentru procesarea comenzilor și a datelor.

Problema conflictelor și a performanței
Toate acestea sunt bineînțeles bune, dar la procesarea datelor, în unele cazuri poate exista o încetinire. Acest lucru se datorează în mare parte așa-numitului modul de predicție a ramurilor și dimensiunii cache-ului insuficiente atunci când este reîncărcat constant. Dacă vorbim despre modulul principal, atunci în acest caz situația este de așa natură încât, în unele cazuri, primul fir poate necesita date de la al doilea, care este posibil să nu fie procesat în acel moment sau să fie în coada de procesare. De asemenea, nu mai puțin frecvente sunt situațiile în care nucleul procesorului central are o sarcină foarte mare și, în ciuda acestui fapt, modulul principal continuă să-i trimită date. Unele programe și aplicații, de exemplu, jocurile online care consumă multe resurse, pot încetini serios doar pentru că nu sunt optimizate pentru utilizarea tehnologiei Hyper Threading. Ce se întâmplă cu jocurile? Sistemul informatic al utilizatorului, la rândul său, încearcă să optimizeze fluxurile de date de la aplicație la server. Problema este că jocul nu știe cum să distribuie în mod independent fluxurile de date, grupând totul într-o singură grămadă. În general, este posibil să nu fie conceput pentru asta. Uneori, la procesoarele dual-core creșterea performanței este semnificativ mai mare decât la procesoarele cu 4 nuclee. Acestea din urmă pur și simplu nu au suficientă putere de calcul.

Cum se activează Hyper Threading în BIOS?
Ne-am dat deja seama puțin despre ce este tehnologia Hyper Threading și ne-am familiarizat cu istoria dezvoltării acesteia. Suntem aproape de a înțelege ce este tehnologia Hyper Threading. Cum se activează această tehnologie pentru utilizare în procesor? Aici totul se face destul de simplu. Trebuie să utilizați subsistemul de gestionare a BIOS. Intrarea în subsistem se face folosind tastele Del, F1, F2, F3, F8, F12, F2+Del etc. Dacă utilizați un laptop Sony Vaio, atunci există o intrare specifică pentru el atunci când utilizați tasta dedicată ASSIST. În setările BIOS, dacă procesorul pe care îl utilizați acceptă tehnologia Hyper Threading, ar trebui să existe o linie de setare specială. În cele mai multe cazuri, arată ca Hyper Threading Technology, iar uneori ca Function. În funcție de dezvoltatorul subsistemului și de versiunea BIOS, acest parametru poate fi configurat fie în meniul principal, fie în setările avansate. Pentru a activa această tehnologie, trebuie să intrați în meniul de opțiuni și să setați valoarea la Activat. După aceasta, trebuie să salvați modificările făcute și să reporniți sistemul.

Cum este utilă tehnologia Hyper Threading?
În concluzie, aș vrea să vorbesc despre avantajele pe care le oferă utilizarea tehnologiei Hyper Threading. Pentru ce sunt toate acestea? De ce este necesar să creștem puterea procesorului atunci când procesăm informații? Acei utilizatori care lucrează cu aplicații și programe care consumă mult resurse nu trebuie să explice nimic. Mulți oameni știu probabil că pachetele software grafice, matematice și de proiectare necesită o mulțime de resurse de sistem în timpul funcționării. Din această cauză, întregul sistem este atât de încărcat încât începe să încetinească teribil. Pentru a preveni acest lucru, este recomandat să activați suportul Hyper Threading.

15.03.2013

Tehnologia Hyper-Threading a apărut în procesoarele Intel, înfricoșător să spunem, cu mai bine de 10 ani în urmă. Și în acest moment este un element important al procesoarelor Core. Cu toate acestea, întrebarea privind necesitatea HT în jocuri nu este încă complet clară. Am decis să facem un test pentru a înțelege dacă jucătorii au nevoie de un Core i7 sau dacă un Core i5 este mai bun. Și, de asemenea, află cât de mai bun este Core i3 decât Pentium.


Tehnologia Hyper-Threading, dezvoltată de Intel și utilizată exclusiv în procesoarele companiei, începând cu memorabilul Pentium 4, este ceva ce este de la sine înțeles în acest moment. Un număr semnificativ de procesoare din generațiile actuale și anterioare sunt echipate cu acesta. Va fi folosit în viitorul apropiat.

Și trebuie să recunoaștem că tehnologia Hyper-Threading este utilă și are un efect pozitiv asupra performanței, altfel Intel nu ar folosi-o pentru a-și poziționa procesoarele în linie. Și nu ca element secundar, ci unul dintre cele mai importante, dacă nu și cele mai importante. Pentru a clarifica despre ce vorbim, am pregătit un tabel care facilitează evaluarea principiului de segmentare a procesoarelor Intel.


După cum puteți vedea, există foarte puține diferențe între Pentium și Core i3, precum și între Core i5 și Core i7. De fapt, modelele i3 și i7 diferă de Pentium și i5 doar prin dimensiunea cache-ului de al treilea nivel per nucleu (fără a număra frecvența de ceas, desigur). Prima pereche are 1,5 megaocteți, iar a doua pereche are 2 megaocteți. Această diferență nu poate afecta în mod fundamental performanța procesoarelor, deoarece diferența de dimensiune a memoriei cache este foarte mică. De aceea Core i3 și Core i7 au primit suport pentru tehnologia Hyper-Threading, care este principalul element care permite acestor procesoare să aibă un avantaj de performanță față de Pentium, respectiv Core i5.

Drept urmare, un cache ceva mai mare și suport pentru Hyper-Threading vor permite prețuri semnificativ mai mari pentru procesoare. De exemplu, procesoarele liniei Pentium (aproximativ 10 mii tenge) sunt de aproximativ două ori mai ieftine decât Core i3 (aproximativ 20 mii tenge), și asta în ciuda faptului că fizic, la nivel hardware, sunt absolut identice și, în consecință , au același cost . Diferența de preț dintre Core i5 (aproximativ 30 de mii de tenge) și Core i7 (aproximativ 50 de mii de tenge) este, de asemenea, foarte mare, deși de mai puțin de două ori la modelele mai tinere.


Cât de justificată este această creștere de preț? Ce câștig real oferă Hyper-Threading? Răspunsul este cunoscut de mult: creșterea variază, totul depinde de aplicație și de optimizarea acesteia. Am decis să verificăm ce poate face HT în jocuri, ca fiind una dintre cele mai solicitante aplicații „casnice”. În plus, acest test va fi o completare excelentă la materialul nostru anterior asupra efectului numărului de nuclee din procesor asupra performanței în joc.

Înainte de a trece la teste, să ne amintim (sau să aflăm) ce este Tehnologia Hyper-Threading. După cum a spus Intel însuși când a introdus această tehnologie în urmă cu mulți ani, nu este nimic deosebit de complicat în ea. De fapt, tot ceea ce este necesar pentru a introduce HT la nivel fizic este să adăugați nu un set de registre și un controler de întrerupere la un nucleu fizic, ci două. La procesoarele Pentium 4, aceste elemente suplimentare au crescut numărul de tranzistori cu doar cinci procente. În nucleele moderne Ivy Bridge (precum și Sandy Bridge și viitorul Haswell), elementele suplimentare chiar și pentru patru nuclee nu măresc matrița cu nici măcar 1 la sută.


Registrele suplimentare și un controler de întrerupere, împreună cu suport software, permit sistemului de operare să vadă nu un nucleu fizic, ci două logice. În același timp, procesarea datelor din două fluxuri care sunt trimise de sistem are loc în continuare pe același nucleu, dar cu unele caracteristici. Un fir de execuție încă mai are la dispoziție întregul procesor, dar de îndată ce unele blocuri CPU sunt eliberate și inactive, acestea sunt imediat date celui de-al doilea thread. Datorită acestui fapt, a fost posibilă utilizarea simultană a tuturor blocurilor de procesor și, astfel, creșterea eficienței acestuia. După cum a afirmat chiar Intel, creșterea performanței în condiții ideale poate ajunge până la 30%. Adevărat, acești indicatori sunt valabili doar pentru Pentium 4, cu o conductă foarte lungă, procesoarele moderne beneficiază de HT mai puțin.

Dar condițiile ideale pentru Hyper-Threading nu sunt întotdeauna cazul. Și cel mai important, cel mai rău rezultat al HT nu este lipsa câștigului de performanță, ci scăderea acestuia. Adică, în anumite condiții, performanța unui procesor cu HT va scădea în comparație cu un procesor fără HT din cauza faptului că costurile generale ale împărțirii firelor și organizării unei cozi vor depăși semnificativ câștigul din calcularea firelor paralele, ceea ce este posibil. în acest caz particular. Și astfel de cazuri apar mult mai des decât și-ar dori Intel. Mai mult, mulți ani de utilizare a Hyper-Threading nu au îmbunătățit situația. Acest lucru este valabil mai ales pentru jocurile care sunt foarte complexe și deloc standard în ceea ce privește calculul datelor și aplicațiile.

Pentru a afla impactul Hyper-Threading asupra performanței jocurilor, am folosit din nou procesorul nostru de testare Core i7-2700K și am simulat patru procesoare simultan, dezactivând nuclee și pornind/dezactivând HT. În mod convențional, acestea pot fi numite Pentium (2 nuclee, HT dezactivat), Core i3 (2 nuclee, HT activat), Core i5 (4 nuclee, HT dezactivat) și Core i7 (4 nuclee, HT activat). De ce conditionat? În primul rând, pentru că după unele caracteristici nu corespund unor produse reale. În special, dezactivarea nucleelor ​​nu duce la o reducere corespunzătoare a volumului cache-ului de al treilea nivel - volumul său pentru toți este de 8 megaocteți. Și, în plus, toate procesoarele noastre „condiționale” funcționează la aceeași frecvență de 3,5 gigaherți, ceea ce nu a fost încă atins de toate procesoarele din linia Intel.


Cu toate acestea, acest lucru este chiar și în bine, deoarece datorită schimbării constante a tuturor parametrilor importanți, vom putea afla impactul real al Hyper-Threading asupra performanței jocurilor fără nicio rezervă. Iar diferența procentuală de performanță dintre Pentium-ul nostru „condițional” și Core i3 va fi aproape de diferența dintre procesoarele reale, cu condiția ca frecvențele să fie egale. De asemenea, nu ar trebui să fie confuz faptul că folosim un procesor cu arhitectură Sandy Bridge, deoarece testele noastre de eficiență, despre care puteți citi în articolul „Bare Performance - Examining the Efficiency of ALU-uri și FPU-uri”, au arătat că influența Hyper- Threadingul în ultimele generații de procesoare Core rămâne neschimbat. Cel mai probabil, acest material va fi relevant și pentru viitoarele procesoare Haswell.

Ei bine, se pare că toate întrebările referitoare la metodologia de testare, precum și caracteristicile de operare ale tehnologiei Hyper-Threading au fost discutate și, prin urmare, este timpul să trecem la cel mai interesant lucru - testele.

Chiar și într-un test în care am studiat impactul numărului de nuclee de procesor asupra performanței în jocuri, am constatat că 3DMark 11 este complet relaxat în ceea ce privește performanța procesorului, funcționând perfect chiar și pe un singur nucleu. Hyper-Threading a avut aceeași influență „puternică”. După cum puteți vedea, testul nu observă diferențe între Pentium și Core i7, ca să nu mai vorbim de modelele intermediare.

Metroul 2033

Dar Metro 2033 a observat clar apariția Hyper-Threading. Și ea a reacționat negativ la el! Da, așa este: activarea HT în acest joc are un impact negativ asupra performanței. Un impact mic, desigur - 0,5 cadre pe secundă cu patru nuclee fizice și 0,7 cu două. Dar acest fapt dă toate motivele să spunem că Metro 2033 Pentium este mai rapid decât Core i3, iar Core i5 este mai bun decât Core i7. Aceasta este o confirmare a faptului că Hyper-Threading nu își arată eficiența întotdeauna și nu peste tot.

Crysis 2

Acest joc a dat rezultate foarte interesante. În primul rând, observăm că influența Hyper-Threading este clar vizibilă în procesoarele dual-core - Core i3 este înaintea Pentium cu aproape 9 procente, ceea ce este destul de mult pentru acest joc. Victorie pentru HT și Intel? Nu chiar, din moment ce Core i7 nu a prezentat niciun câștig în comparație cu Core i5 considerabil mai ieftin. Dar există o explicație rezonabilă pentru aceasta - Crysis 2 nu poate folosi mai mult de patru fluxuri de date. Din această cauză, vedem o creștere bună a dual-core-ului cu HT - totuși, patru fire, deși logice, sunt mai bune decât două. Pe de altă parte, nu a existat unde să puneți fire suplimentare Core i7 patru nuclee fizice erau destul de suficiente. Deci, pe baza rezultatelor acestui test, putem observa impactul pozitiv al HT în Core i3, care este vizibil mai bun decât Pentium aici. Dar printre procesoarele quad-core, Core i5 pare din nou o soluție mai rezonabilă.

Câmpul de luptă 3

Rezultatele de aici sunt foarte ciudate. Dacă în testul pentru numărul de nuclee, câmpul de luptă a fost un exemplu de creștere microscopică, dar liniară, atunci includerea Hyper-Threading a introdus haos în rezultate. De fapt, putem afirma că Core i3, cu cele două nuclee și HT, s-a dovedit a fi cel mai bun dintre toate, înaintea chiar și pe Core i5 și Core i7. Este ciudat, desigur, dar, în același timp, Core i5 și Core i7 au fost din nou la același nivel. Ce explică acest lucru nu este clar. Cel mai probabil, metodologia de testare din acest joc a jucat un rol aici, ceea ce dă erori mai mari decât benchmark-urile standard.

În ultimul test, F1 2011 s-a dovedit a fi unul dintre jocurile care critică foarte mult numărul de nuclee, iar în acest test ne-a surprins din nou cu impactul excelent al tehnologiei Hyper-Threading asupra performanței. Și din nou, ca și în Crysis 2, includerea HT a funcționat foarte bine pe procesoarele dual-core. Priviți diferența dintre Core i3 și Pentium - este mai mult decât dublă! Este clar că jocului îi lipsesc foarte mult două nuclee și, în același timp, codul său este paralelizat atât de bine încât efectul este uimitor. Pe de altă parte, nu te poți certa cu patru nuclee fizice - Core i5 este vizibil mai rapid decât Core i3. Dar Core i7, din nou, ca și în jocurile anterioare, nu a arătat nimic remarcabil în comparație cu Core i5. Motivul este același - jocul nu poate folosi mai mult de 4 fire de execuție, iar suprasolicitarea rulării HT reduce performanța Core i7 sub nivelul Core i5.

Un bătrân războinic are nevoie de Hyper-Threading nu mai mult decât un arici are nevoie de un tricou - influența sa nu este în niciun caz la fel de clar vizibilă ca în F1 2011 sau Crysis 2. Cu toate acestea, remarcăm în continuare că pornirea HT pe un procesor dual-core a adus 1 cadru suplimentar. Acest lucru cu siguranță nu este suficient pentru a spune că Core i3 este mai bun decât Pentium. Cel puțin, această îmbunătățire nu corespunde în mod clar diferenței de preț a acestor procesoare. Și nici măcar nu merită menționată diferența de preț dintre Core i5 și Core i7, deoarece procesorul fără suport HT s-a dovedit din nou a fi mai rapid. Și vizibil mai rapid - cu 7 la sută. Orice s-ar putea spune, afirmăm din nou faptul că patru fire este maximul pentru acest joc și, prin urmare, HyperThreading în acest caz nu ajută Core i7, ci împiedică.

Hyper-Threading (hyper threading, „hiper threading”, hyper threading - rusă) - tehnologie dezvoltată de companie Intel, permițând nucleului procesorului să execute mai mult de unul (de obicei două) fire de date. Din moment ce s-a constatat că un procesor tipic în majoritatea sarcinilor folosește nu mai mult de 70% din toată puterea de calcul, s-a decis să se folosească o tehnologie care permite, atunci când anumite unități de calcul sunt inactive, să le încarce cu lucru cu un alt fir. Acest lucru vă permite să creșteți performanța kernel-ului de la 10 la 80% in functie de sarcina.

Înțelegerea modului în care funcționează Hyper-Threading .

Să presupunem că procesorul efectuează calcule simple și, în același timp, blocul de instrucțiuni este inactiv și SIMD extensii.

Modulul de adresare detectează acest lucru și trimite acolo date pentru calcule ulterioare. Dacă datele sunt specifice, atunci aceste blocuri le vor executa mai lent, dar datele nu vor fi inactive. Sau le vor preprocesa pentru o procesare rapidă ulterioară de către blocul corespunzător. Acest lucru oferă câștiguri suplimentare de performanță.

Desigur, firul virtual nu ajunge la un nucleu cu drepturi depline, dar acest lucru vă permite să obțineți aproape 100% eficiența puterii de calcul, încărcând aproape întregul procesor cu lucru, împiedicându-l să rămână inactiv. Cu toate acestea, pentru a implementa tehnologia HT durează doar aproximativ 5% spațiu suplimentar pe cip, iar performanța poate fi uneori adăugată 50% . Această zonă suplimentară include blocuri de registru suplimentare și predicții de ramificație, care calculează în flux unde poate fi utilizată curent puterea de calcul și trimit date acolo de la blocul de adresare suplimentar.

Pentru prima dată, tehnologia a apărut pe procesoare Pentium 4, dar nu a existat o creștere mare a performanței, deoarece procesorul în sine nu avea putere mare de calcul. Creșterea a fost în cel mai bun caz 15-20% , iar în multe sarcini procesorul a funcționat mult mai lent decât fără HT.

Încetini procesor datorită tehnologiei Hyper Threading, apare dacă:

  • Cache insuficientă pentru toate acestea și se repornește ciclic, încetinind procesorul.
  • Datele nu pot fi procesate corect de către predictorul de ramură. Apare în principal din cauza lipsa de optimizare pentru anumite programe sau suport din partea sistemului de operare.
  • Poate apărea și din cauza dependențe de date, când, de exemplu, primul thread necesită date imediate de la al doilea, dar nu este încă gata, sau este în linie pentru un alt thread. Sau datele ciclice necesită anumite blocuri pentru procesare rapidă și sunt încărcate cu alte date. Pot exista multe variații ale dependenței de date.
  • Dacă nucleul este deja încărcat puternic și modulul de predicție a ramurilor „insuficient de inteligent” trimite în continuare date care încetinesc procesorul (relevant pentru Pentium 4).

După Pentium 4, Intel a început să folosească tehnologia doar începând de la Core i7 prima generație, sărind peste seria 2 .

Puterea de calcul a procesoarelor a devenit suficientă pentru implementarea completă a hyperthreading-ului fără prea mult rău, chiar și pentru aplicații neoptimizate. Mai tarziu, Hyper-Threading a apărut pe procesoare de clasa medie și chiar buget și portabile. Folosit pe toate seriile Core i (i3; i5; i7) și pe procesoarele mobile Atom(deloc). Ceea ce este interesant este că procesoarele dual-core cu HT, obțineți un câștig de performanță mai mare decât cele quad-core din utilizarea Hyper-Threading, în picioare 75% cu drepturi depline quad-nucleare.

Unde este utilă tehnologia HyperThreading?

Va fi util pentru utilizare împreună cu programe profesionale, grafice, analitice, matematice și științifice, editori video și audio, arhivatori ( Photoshop, Corel Draw, Maya, 3D’s Max, WinRar, Sony Vegas & etc). Toate programele care folosesc un număr mare de calcule, HT va fi cu siguranță util util. Din fericire, în 90% cazuri, astfel de programe sunt bine optimizate pentru utilizarea sa.

HyperThreading indispensabil pentru sistemele server. De fapt, a fost parțial dezvoltat pentru această nișă. Mulțumită HT, puteți crește semnificativ randamentul procesorului atunci când există un număr mare de sarcini. Fiecare thread va fi descărcat la jumătate, ceea ce are un efect benefic asupra adresei datelor și predicției ramurilor.

Mulți jocuri pe calculator, au o atitudine negativă față de prezență Hyper-Threading, datorită căruia numărul de cadre pe secundă scade. Acest lucru se datorează lipsei de optimizare pentru Hyper-Threading din partea jocului. Optimizarea numai din partea sistemului de operare nu este întotdeauna suficientă, mai ales atunci când lucrați cu date neobișnuite, diverse și complexe.

Pe plăcile de bază care suportă HT, puteți oricând dezactiva tehnologia hyperthreading.

20 ianuarie 2015 la 19:43

Încă o dată despre Hyper-Threading

  • testarea sistemelor IT,
  • Programare

A fost o perioadă când a fost necesară evaluarea performanței memoriei în contextul tehnologiei Hyper-threading. Am ajuns la concluzia că influența sa nu este întotdeauna pozitivă. Când a apărut un cuantum de timp liber, a existat dorința de a continua cercetările și de a lua în considerare procesele în desfășurare cu o precizie a ciclurilor de ceas al mașinii și a biților, folosind software-ul propriului nostru design.

Platformă în studiu

Obiectul experimentelor este un laptop ASUS N750JK cu procesor Intel Core i7-4700HQ. Frecvența de ceas 2,4 GHz, crescută în modul Intel Turbo Boost până la 3,4 GHz. S-au instalat 16 gigabytes de memorie RAM DDR3-1600 (PC3-12800), care funcționează în modul dual-channel. Sistem de operare – Microsoft Windows 8.1 pe 64 de biți.

Fig.1 Configurarea platformei studiate.

Procesorul platformei studiate conține 4 nuclee, care, atunci când tehnologia Hyper-Threading este activată, oferă suport hardware pentru 8 fire sau procesoare logice. Firmware-ul platformei transmite aceste informații către sistemul de operare prin tabelul ACPI MADT (Multiple APIC Description Table). Deoarece platforma conține un singur controler RAM, nu există SRAT (System Resource Affinity Table), care declară apropierea nucleelor ​​procesorului față de controlerele de memorie. Evident, laptopul studiat nu este o platformă NUMA, dar sistemul de operare, în scopul unificării, îl consideră ca fiind un sistem NUMA cu un singur domeniu, după cum indică linia NUMA Nodes = 1. Un fapt fundamental pentru noi. experimentele este că memoria cache de date de la primul nivel are dimensiunea de 32 de kiloocteți pentru fiecare dintre cele patru nuclee. Două procesoare logice care partajează un nucleu partajează cache-urile L1 și L2.

Operațiune în studiu

Vom studia dependența vitezei de citire a unui bloc de date de dimensiunea acestuia. Pentru a face acest lucru, vom alege cea mai productivă metodă, și anume citirea operanzilor pe 256 de biți folosind instrucțiunea AVX VMOVAPD. În grafice, axa X arată dimensiunea blocului, iar axa Y arată viteza de citire. În jurul punctului X, care corespunde dimensiunii cache-ului L1, ne așteptăm să vedem un punct de inflexiune, deoarece performanța ar trebui să scadă după ce blocul procesat părăsește limitele cache-ului. În testul nostru, în cazul procesării cu mai multe fire, fiecare dintre cele 16 fire inițiate funcționează cu un domeniu de adrese separat. Pentru a controla tehnologia Hyper-Threading în cadrul aplicației, fiecare thread folosește funcția API SetThreadAffinityMask, care setează o mască în care un bit corespunde fiecărui procesor logic. O valoare de un singur bit permite procesorului specificat să fie utilizat de un anumit thread, o valoare zero o interzice. Pentru 8 procesoare logice ale platformei studiate, masca 11111111b permite utilizarea tuturor procesoarelor (Hyper-Threading este activat), masca 01010101b permite utilizarea unui procesor logic în fiecare nucleu (Hyper-Threading este dezactivat).

În grafice sunt folosite următoarele abrevieri:

MBPS (Megaocteți pe secundă)blocați viteza de citire în megaocteți pe secundă;

CPI (Clocks per Instruction)numărul de cicluri de ceas per instrucțiune;

TSC (Contor de marcaj de timp)Contor de cicluri CPU.

Notă: Este posibil ca viteza registrului TSC să nu se potrivească cu cea a procesorului atunci când rulează în modul Turbo Boost. Acest lucru trebuie luat în considerare la interpretarea rezultatelor.

În partea dreaptă a graficelor, este vizualizată un dump hexazecimal al instrucțiunilor care alcătuiesc corpul buclei al operației țintă executată în fiecare dintre firele de execuție a programului, sau primii 128 de octeți ai acestui cod.

Experiența nr. 1. Un fir



Fig.2 Citirea unui singur fir

Viteza maximă este de 213563 megaocteți pe secundă. Punctul de inflexiune apare la o dimensiune a blocului de aproximativ 32 de kiloocteți.

Experiența nr. 2. 16 fire pe 4 procesoare, Hyper-Threading dezactivat



Fig.3 Citirea cu șaisprezece fire. Numărul de procesoare logice utilizate este de patru

Hyper-Threading este dezactivat. Viteza maximă este de 797598 megaocteți pe secundă. Punctul de inflexiune apare la o dimensiune a blocului de aproximativ 32 de kiloocteți. După cum era de așteptat, față de citirea cu un fir, viteza a crescut de aproximativ 4 ori, în funcție de numărul de nuclee de lucru.

Experiența nr. 3. 16 fire pe 8 procesoare, Hyper-Threading activat



Fig.4 Citirea cu șaisprezece fire. Numărul de procesoare logice utilizate este de opt

Hyper-Threading este activat. Viteza maximă este de 800.722 de megaocteți pe secundă, ca urmare a activării Hyper-Threading, aproape că nu a crescut. Marele minus este că punctul de inflexiune apare la o dimensiune a blocului de aproximativ 16 kiloocteți. Activarea Hyper-Threading a crescut ușor viteza maximă, dar scăderea vitezei are loc acum la jumătate din dimensiunea blocului - aproximativ 16 kiloocteți, astfel încât viteza medie a scăzut semnificativ. Acest lucru nu este surprinzător, fiecare nucleu are propriul său cache L1, în timp ce procesoarele logice ale aceluiași nucleu îl împart.

concluzii

Operația studiată se scalează destul de bine pe un procesor multi-core. Motive: Fiecare nucleu conține propriul său cache L1 și L2, dimensiunea blocului țintă este comparabilă cu dimensiunea cache-ului și fiecare fir funcționează cu propriul interval de adrese. În scopuri academice, am creat aceste condiții într-un test sintetic, recunoscând că aplicațiile din lumea reală sunt de obicei departe de optimizarea ideală. Dar activarea Hyper-Threading, chiar și în aceste condiții, a avut un efect negativ cu o ușoară creștere a vitezei de vârf, există o pierdere semnificativă a vitezei de procesare a blocurilor a căror dimensiune variază de la 16 la 32 de kilobyți;
vederi