Mājas / Dažādi / Atbalsts hipervītņu tehnoloģijai. Hyper-Threading tehnoloģija no Intel. Produktivitāte nekad nav pietiekama

Atbalsts hipervītņu tehnoloģijai. Hyper-Threading tehnoloģija no Intel. Produktivitāte nekad nav pietiekama

Lietotāji, kuri vismaz vienu reizi ir konfigurējuši BIOS, iespējams, jau ir pamanījuši, ka ir Intel Hyper Threading parametrs, kas daudziem ir nesaprotams. Daudzi nezina, kas ir šī tehnoloģija un kādam nolūkam tā tiek izmantota. Mēģināsim noskaidrot, kas ir Hyper Threading un kā jūs varat iespējot šī atbalsta izmantošanu. Mēģināsim arī noskaidrot, kādas priekšrocības tas dod datoram. šo iestatījumu. Principā šeit nav nekā grūti saprotama.

Intel Hyper Threading: kas tas ir?
Ja neiedziļināties datorterminoloģijas džungļos, bet izsakāt to vienkāršā valodā, tad šī tehnoloģija tika izstrādāts, lai palielinātu CPU vienlaicīgi apstrādāto komandu plūsmu. Mūsdienu procesoru mikroshēmas, kā likums, izmanto tikai 70% no pieejamajām skaitļošanas iespējām. Pārējais paliek, tā teikt, rezervē. Kas attiecas uz datu straumes apstrādi, vairumā gadījumu tiek izmantots tikai viens pavediens, neskatoties uz to, ka sistēma izmanto daudzkodolu procesoru.

Darba pamatprincipi
Lai palielinātu centrālā procesora iespējas, tika izstrādāta īpaša Hyper Threading tehnoloģija. Šī tehnoloģija ļauj viegli sadalīt vienu komandu straumi divās daļās. Ir iespējams arī pievienot otru straumi jau esošai. Tikai šāda straume ir virtuāla un nedarbojas fiziskajā līmenī. Šī pieeja ļauj ievērojami palielināt procesora veiktspēju. Visa sistēma attiecīgi sāk darboties ātrāk. CPU veiktspējas pieaugums var diezgan daudz svārstīties. Tas tiks apspriests atsevišķi. Tomēr paši Hyper Threading tehnoloģijas izstrādātāji apgalvo, ka tā atpaliek no pilnvērtīga kodola. Dažos gadījumos šīs tehnoloģijas izmantošana ir pilnībā pamatota. Ja jūs zināt Hyper Threading procesoru būtību, tad rezultāts nebūs ilgi jāgaida.

Vēstures atsauce
Nedaudz ienirt šīs attīstības vēsturē. Hyper Threading atbalsts vispirms parādījās tikai procesoros Intel Pentium 4. Vēlāk šīs tehnoloģijas ieviešana tika turpināta Intel Core iX sērijā (X šeit apzīmē procesoru sēriju). Jāatzīmē, ka kāda iemesla dēļ Core 2 procesora mikroshēmu rindā tā nav. Tiesa, tad produktivitātes pieaugums bija diezgan vājš: kaut kur 15-20% līmenī. Tas norādīja, ka procesoram nebija vajadzīgās apstrādes jaudas, un radītā tehnoloģija praktiski apsteidza savu laiku. Mūsdienās Hyper Threading tehnoloģijas atbalsts jau ir pieejams gandrīz visās mūsdienu mikroshēmās. Lai palielinātu centrālā procesora jaudu, pats process izmanto tikai 5% no kristāla virsmas, vienlaikus atstājot vietu komandu un datu apstrādei.

Jautājums par konfliktiem un sniegumu
Tas viss noteikti ir labi, taču dažos gadījumos, apstrādājot datus, var būt darba palēninājums. Tas galvenokārt ir saistīts ar tā saukto filiāles prognozēšanas moduli un nepietiekamu kešatmiņas lielumu, kad tas tiek pastāvīgi atkārtoti ielādēts. Ja runājam par galveno moduli, tad iekšā Šis gadījums situācija attīstās tā, ka atsevišķos gadījumos pirmajam pavedienam var būt nepieciešami dati no otrā, kas tajā brīdī var netikt apstrādāti vai atrodas apstrādes rindā. Tāpat ne mazāk izplatītas ir situācijas, kad CPU kodolam ir ļoti nopietna slodze, un galvenais modulis, neskatoties uz to, turpina sūtīt uz to datus. Dažas programmas un lietojumprogrammas, piemēram, resursietilpīgas tiešsaistes spēles, var nopietni palēnināties tikai tāpēc, ka tām trūkst optimizācijas Hyper Threading tehnoloģijas izmantošanai. Kas notiek ar spēlēm? Lietotāja datorsistēma no savas puses cenšas optimizēt datu plūsmas no aplikācijas uz serveri. Problēma ir tāda, ka spēle nezina, kā patstāvīgi izplatīt datu straumes, izmetot visu vienā kaudzē. Kopumā tas var vienkārši nebūt paredzēts šim nolūkam. Dažreiz divkodolu procesoros veiktspējas pieaugums ir ievērojami lielāks nekā 4 kodolu procesoros. Viņiem vienkārši nav apstrādes jaudas.

Kā BIOS iespējot Hyper Threading?
Mēs jau esam nedaudz sapratuši, kas ir Hyper Threading tehnoloģija, un iepazinušies ar tās attīstības vēsturi. Mēs esam nonākuši tuvu izpratnei, kas ir Hyper Threading tehnoloģija. Kā aktivizēt šo tehnoloģiju izmantošanai procesorā? Šeit viss tiek darīts pavisam vienkārši. Ir jāizmanto BIOS pārvaldības apakšsistēma. Apakšsistēmu ievada, izmantojot taustiņus Del, F1, F2, F3, F8, F12, F2+Del utt. Ja izmantojat Sony Vaio klēpjdatoru, tam ir īpaša ievade, izmantojot speciālo ASSIST taustiņu. BIOS iestatījumos, ja jūsu izmantotais procesors atbalsta tehnoloģiju Hyper Threading, ir jābūt īpašai iestatījumu rindai. Vairumā gadījumu tas izskatās kā Hyper Threading Technology, un dažreiz tas izskatās kā funkcija. Atkarībā no apakšsistēmas izstrādātāja un BIOS versijas šī parametra iestatījumu var ietvert vai nu galvenajā izvēlnē, vai papildu iestatījumos. Lai iespējotu šo tehnoloģiju, jums jāievada opciju izvēlne un jāiestata vērtība Enabled. Pēc tam jums ir jāsaglabā veiktās izmaiņas un jārestartē sistēma.

Kāpēc Hyper Threading ir noderīga?
Nobeigumā vēlos runāt par priekšrocībām, ko sniedz Hyper Threading tehnoloģijas izmantošana. Priekš kam tas viss? Kāpēc, apstrādājot informāciju, ir jāpalielina procesora jauda? Tiem lietotājiem, kuri strādā ar resursietilpīgām lietojumprogrammām un programmām, nekas nav jāpaskaidro. Daudzi droši vien zina, ka grafiskās, matemātiskās, dizaina programmatūras pakotnes darba procesā prasa daudz sistēmas resursu. Šī iemesla dēļ visa sistēma ir tik ļoti noslogota, ka tā sāk šausmīgi palēnināties. Lai tas nenotiktu, ieteicams iespējot Hyper Threading atbalstu.

Daudzi Intel procesori ietver moduļus ar Hiper atbalsts- Threading tehnoloģija, kurai saskaņā ar izstrādātāju ideju vajadzētu palīdzēt palielināt mikroshēmas veiktspēju un paātrināt datoru kopumā. Kāda ir šī amerikāņu korporācijas risinājuma specifika? Kā jūs varat izmantot Hyper-Threading priekšrocības?

Tehnoloģiju pamati

Apskatīsim galveno informāciju par hiperpavedienu. Kas ir šī tehnoloģija? To izstrādāja Intel un pirmo reizi sabiedrība iepazīstināja 2001. gadā. Tās izveides mērķis bija palielināt serveru veiktspēju. Galvenais Hyper-Threading ieviestais princips ir procesora aprēķinu sadale vairākiem pavedieniem. Turklāt tas ir iespējams pat tad, ja uz atbilstošā tipa mikroshēmas ir uzstādīts tikai viens kodols (savukārt, ja no tiem ir 2 vai vairāk, un procesora pavedieni jau ir sadalīti, tehnoloģija veiksmīgi papildina šo mehānismu).

Galvenās PC mikroshēmas darbības nodrošināšana vairāku pavedienu ietvaros tiek veikta, aprēķinu gaitā veidojot arhitektūras stāvokļu kopijas. Šajā gadījumā tiek izmantots tas pats mikroshēmas resursu kopums. Ja aplikācija izmanto atbilstošās iespējas, tad praktiski nozīmīgas darbības tiek veiktas daudz ātrāk. Ir arī svarīgi, lai attiecīgo tehnoloģiju atbalstītu datora ievades/izvades sistēma - BIOS.

Hyper-Threading iespējošana

Ja datorā instalētais procesors atbalsta atbilstošo standartu, tas parasti tiek aktivizēts automātiski. Bet dažos gadījumos jums ir manuāli jāveic nepieciešamās darbības, lai Hyper-Threading tehnoloģija darbotos. Kā to iespējot? Ļoti vienkārši.

Jums jāievada galvenā BIOS saskarne. Lai to izdarītu, pašā datora sāknēšanas sākumā ir jānospiež DEL, dažreiz - F2, F10, retāk - citi taustiņi, bet vēlamais vienmēr parādās vienā no teksta rindiņām, kas tiek parādītas ekrānā uzreiz pēc. ieslēdzot datoru. BIOS saskarnē ir jāatrod vienums Hyper-Threading: I / O sistēmas versijās, kas to atbalsta, tas parasti atrodas redzamā vietā. Kad esat izvēlējies atbilstošo opciju, nospiediet taustiņu Enter un aktivizējiet to, atzīmējot to kā Iespējots. Ja šis režīms jau ir iestatīts, Hyper-Threading tehnoloģija darbojas. Jūs varat izmantot visas tā priekšrocības. Pēc tehnoloģijas aktivizēšanas iestatījumos visi ieraksti jāsaglabā BIOS, atlasot Saglabāt un iziet no iestatīšanas. Pēc tam dators tiks restartēts režīmā, kad procesors strādās ar Hyper-Theading atbalstu. Tāpat ir atspējota hipervītņu veidošana. Lai to izdarītu, attiecīgajā vienumā atlasiet citu opciju - Atspējots un saglabājiet iestatījumus.

Izpētījuši, kā iespējot Hyper-Threading un deaktivizēt šo tehnoloģiju, apskatīsim tuvāk tās funkcijas.

CPU ar hipervītņu atbalstu

Pirmais procesors, uz kura tika īstenota uzņēmuma koncepcija, saskaņā ar dažiem avotiem, ir Intel Xeon MP, kas pazīstams arī kā Foster MP. Šī mikroshēma vairākos arhitektūras komponentos ir līdzīga Pentium 4, kurā arī vēlāk tika ieviesta attiecīgā tehnoloģija. Pēc tam vairāku pavedienu skaitļošanas funkcija tika ieviesta Xeon servera procesoros ar Prestonia kodolu.

Ja mēs runājam par pašreizējo Hyper-Threading izplatību - kuri "profi" to atbalsta? Starp populārākajām šāda veida mikroshēmām ir tās, kas pieder Core un Xeon saimei. Ir arī informācija, ka līdzīgi algoritmi tiek ieviesti procesoros, piemēram, Itanium un Atom.

Izpētījuši pamatinformāciju par Hyper-Threading, procesoriem ar tā atbalstu, apskatīsim visievērojamākos faktus par tehnoloģijas attīstības vēsturi.

Attīstības vēsture

Kā minēts iepriekš, Intel attiecīgo koncepciju parādīja sabiedrībai 2001. gadā. Bet pirmie soļi tehnoloģiju izveidē tika veikti 90. gadu sākumā. Amerikāņu kompānijas inženieri pamanīja, ka, veicot vairākas darbības, personālo datoru procesoru resursi netiek pilnībā izmantoti.

Kā aprēķinājuši Intel eksperti, lietotājam strādājot pie datora, mikroshēma netiek aktīvi izmantota ievērojamos intervālos - gandrīz lielāko daļu laika - par aptuveni 30%. Ekspertu viedokļi par šo skaitli ir ļoti atšķirīgi - kāds to uzskata par nepārprotami nenovērtētu, citi pilnībā piekrīt amerikāņu izstrādātāju tēzei.

Tomēr lielākā daļa IT speciālistu bija vienisprātis, ka pat ja ne 70% procesora jaudas ir dīkstāvē, bet ļoti ievērojams daudzums no tiem.

Izstrādātāju galvenais uzdevums

Intel ir nolēmis labot šo situāciju, izmantojot kvalitatīvi jaunu pieeju galveno datoru mikroshēmu efektivitātes nodrošināšanai. Tika piedāvāts izveidot tehnoloģiju, kas veicinātu aktīvāku procesoru iespēju izmantošanu. 1996. gadā Intel speciālisti uzsāka tā praktisko attīstību.

Saskaņā ar amerikāņu korporācijas koncepciju procesors, apstrādājot datus no vienas programmas, varētu novirzīt dīkstāves resursus darbam ar citu lietojumprogrammu (vai pašreizējās komponentu, bet ar citu struktūru un prasa papildu resursu izmantošanu). Atbilstošais algoritms arī paredzēja efektīvu mijiedarbību ar citiem datora aparatūras komponentiem - RAM, mikroshēmojumu un programmām.

Intel izdevās atrisināt problēmu. Sākotnēji tehnoloģiju sauca par Willamette. 1999. gadā tas tika ieviests dažu procesoru arhitektūrā, un sākās tā testēšana. Drīz tehnoloģija saņēma savu moderno nosaukumu - Hyper-Threading. Grūti pateikt, kas tieši tas bija – vienkārša zīmola maiņa vai fundamentālas korekcijas platformā. Mēs jau zinām tālākus faktus par tehnoloģijas parādīšanos sabiedrībā un tās ieviešanu dažādos Intel procesoru modeļos. Viens no mūsdienās izplatītajiem izstrādes nosaukumiem ir Hyper-Threading Technology.

Saderības ar tehnoloģiju aspekti

Cik labi operētājsistēmās ir ieviests atbalsts Hyper-Threading tehnoloģijai? Var atzīmēt, ka, ja mēs runājam par mūsdienu Windows versijas, tad lietotājam nebūs problēmu pilnībā izmantot Intel Hyper-Threading tehnoloģijas priekšrocības. Protams, ir arī ļoti svarīgi, lai I / O sistēma atbalstītu tehnoloģiju - mēs par to runājām iepriekš.

Programmatūras un aparatūras faktori

Kas attiecas uz vecākām OS versijām - Windows 98, NT un salīdzinoši novecojušo XP, nepieciešams nosacījums saderībai ar Hyper-Threading ir ACPI atbalsts. Ja tas nav ieviests OS, tad dators neatpazīs visas skaitļošanas plūsmas, kuras veido attiecīgie moduļi. Ņemiet vērā, ka sistēma Windows XP kopumā nodrošina šīs tehnoloģijas priekšrocības. Ir arī ļoti vēlams, lai datora īpašnieka lietotajās lietojumprogrammās tiktu ieviesti daudzpavedienu algoritmi.

Dažreiz jums var būt nepieciešams dators — ja tajā instalējat procesorus ar Hyper-Threading atbalstu, nevis tos, kas tajā sākotnēji tika instalēti un nebija saderīgi ar šo tehnoloģiju. Tomēr, tāpat kā operētājsistēmu gadījumā, īpašu problēmu nebūs, ja lietotājam ir moderns personālais dators vai vismaz atbilstošie aparatūras komponenti pirmajiem Hyper Threading procesoriem, kā minēts iepriekš, ieviesti Core līnijā un pielāgoti. tam mikroshēmas mātesplatēs pilnībā atbalsta atbilstošās mikroshēmas funkcijas.

Paātrinājuma kritēriji

Ja dators aparatūras un programmatūras komponentu līmenī nav savietojams ar Hyper-Threading, tad šī tehnoloģija teorētiski var pat palēnināt tā darbību. Šis stāvoklis dažiem IT speciālistiem ir licis šaubīties par Intel risinājuma izredzēm. Viņi nolēma, ka tas nav tehnoloģisks lēciens, bet gan mārketinga solis, kas ir Hyper Threading koncepcijas pamatā, kas savas arhitektūras dēļ nespēj ievērojami paātrināt datoru. Taču Intel inženieri ātri kliedēja kritiķu šaubas.

Tātad, pamatnosacījumi, lai tehnoloģija tiktu veiksmīgi izmantota:

I/O sistēmas atbalsts hipervītnēm;

Mātesplates savietojamība ar atbilstošā tipa procesoru;

Tehnoloģijas atbalsts, ko nodrošina operētājsistēma un konkrēta lietojumprogramma, kas tajā darbojas.

Ja pirmajos divos punktos nevajadzētu būt īpašām problēmām, tad, runājot par programmu saderību ar Hyper-Threading, joprojām var būt daži pārklājumi. Bet var atzīmēt, ka, ja lietojumprogramma atbalsta, piemēram, darbu ar divkodolu procesoriem, tad tā būs saderīga, gandrīz garantēta, ar Intel tehnoloģiju.

Vismaz ir pētījumi, kas apstiprina divkodolu mikroshēmām pielāgoto programmu veiktspējas pieaugumu par aptuveni 15-18%, ja procesorā darbojas Intel Hyper Threading moduļi. Mēs jau zinām, kā tos atspējot (ja lietotājam rodas šaubas par tehnoloģijas izmantošanas lietderību). Bet, iespējams, to izskatam ir ļoti maz taustāmu iemeslu.

Hiperpavedienu praktiskā lietderība

Vai attiecīgā tehnoloģija ir būtiski ietekmējusi Intel? Šajā jautājumā ir dažādi viedokļi. Taču daudzi atzīmē, ka Hyper-Threading tehnoloģija ir kļuvusi tik populāra, ka šis risinājums ir kļuvis neaizstājams daudziem serveru sistēmu ražotājiem, un to pozitīvi uzņēma arī parastie datoru lietotāji.

Aparatūras datu apstrāde

Tehnoloģijas galvenā priekšrocība ir tā, ka tā ir ieviesta aparatūras formātā. Tas nozīmē, ka galvenā aprēķinu daļa tiks veikta procesora iekšienē uz īpašiem moduļiem, nevis programmatūras algoritmu veidā, kas tiek pārraidīts uz mikroshēmas galvenā kodola līmeni - kas nozīmētu kopējās veiktspējas samazināšanos. PC. Kopumā, pēc IT ekspertu domām, Intel inženieriem izdevies atrisināt problēmu, ko viņi bija identificējuši tehnoloģijas izstrādes sākumā – panākt, lai procesors funkcionētu efektīvāk. Patiešām, kā liecina testi, risinot daudzus lietotājam praktiski nozīmīgus uzdevumus, Hyper-Threading izmantošana ir ļāvusi ievērojami paātrināt darbu.

Var atzīmēt, ka starp 4 tām mikroshēmām, kas bija aprīkotas ar apskatāmās tehnoloģijas atbalsta moduļiem, darbojās daudz efektīvāk nekā pirmās modifikācijas. Tas lielā mērā izpaudās datora spējā darboties reālā daudzuzdevumu režīmā - kad tiek veikti vairāki dažādi veidi Windows lietojumprogrammas, un ir ļoti nevēlami, ka, palielinoties sistēmas resursu patēriņam vienam no tiem, citu ātrums samazināsies.

Vienlaicīga dažādu uzdevumu risināšana

Tādējādi procesori ar Hyper-Threading atbalstu ir labāk pielāgoti nekā mikroshēmas, kas ar to nav saderīgas, lai vienlaikus palaistu, piemēram, pārlūkprogrammu, atskaņotu mūziku un strādātu ar dokumentiem. Protams, visas šīs priekšrocības lietotājs praksē izjūt tikai tad, ja datora programmatūras un aparatūras komponenti ir pietiekami savietojami ar šo darbības režīmu.

Līdzīgas norises

Hyper-Threading nav vienīgā tehnoloģija, kas izstrādāta, lai uzlabotu datora veiktspēju, izmantojot daudzpavedienu skaitļošanu. Viņai ir analogi.

Piemēram, IBM izlaistie POWER5 procesori atbalsta arī daudzpavedienu izmantošanu. Tas ir, katrs no (kopā tajā ir instalēti 2 atbilstošie elementi) var veikt uzdevumus 2 pavedienos. Tādējādi mikroshēma vienlaikus apstrādā 4 aprēķinu plūsmas.

AMD ir arī lieliski rezultāti daudzpavedienu koncepciju jomā. Tātad, ir zināms, ka Bulldozer arhitektūra izmanto algoritmus, kas ir līdzīgi Hyper-Threading. AMD risinājuma iezīme ir tāda, ka katrs pavediens apstrādā atsevišķus procesora blokus. Kad otrais līmenis paliek kopīgs. Līdzīgas koncepcijas ir ieviestas AMD izstrādātajā Bobcat arhitektūrā, kas ir pielāgota klēpjdatoriem un maziem personālajiem datoriem.

Protams, tiešos AMD, IBM un Intel koncepcijas analogus var uzskatīt ļoti nosacīti. Kā arī pieejas procesoru arhitektūras projektēšanai kopumā. Bet attiecīgajās tehnoloģijās ieviestos principus var uzskatīt par diezgan līdzīgiem, un izstrādātāju izvirzītie mērķi mikroshēmu darbības efektivitātes uzlabošanā pēc būtības ir ļoti tuvi, ja ne identiski.

Šie ir galvenie fakti par interesantāko Intel tehnoloģiju. Kas tas ir, kā iespējot Hyper-Threading vai, gluži pretēji, to deaktivizēt, mēs esam noteikuši. Lieta, iespējams, ir tās priekšrocību praktiskā izmantošanā, ko var izmantot, pārliecinoties, ka dators aparatūras un programmatūras komponentos atbalsta tehnoloģiju.

Hiperpavediens (hipervītņošana, 'hipervītne', hyper threading - rus.) - uzņēmuma izstrādāta tehnoloģija Intel, kas ļauj procesora kodolam izpildīt vairāk datu straumju nekā vienu (parasti divas). Tā kā tika konstatēts, ka parastais procesors lielākajā daļā uzdevumu izmanto ne vairāk kā 70% no visas skaitļošanas jaudas, tika nolemts izmantot tehnoloģiju, kas ļauj, kad noteiktas skaitļošanas vienības ir dīkstāvē, noslogot tās ar darbu ar citu pavedienu. Tas ļauj palielināt kodola veiktspēju no 10 līdz 80% atkarībā no uzdevuma.

Skatiet, kā darbojas Hyper-Threading .

Pieņemsim, ka procesors veic vienkāršus aprēķinus un tajā pašā laikā instrukciju bloks ir dīkstāvē un SIMD paplašinājumi.

Adresēšanas modulis to konstatē un nosūta tur datus turpmākiem aprēķiniem. Ja dati ir specifiski, tad šie bloki tos izpildīs lēnāk, bet dati nebūs dīkstāvē. Vai arī viņi tos iepriekš apstrādās turpmākai ātrai apstrādei, izmantojot atbilstošu bloku. Tas nodrošina papildu veiktspējas pieaugumu.

Protams, virtuālais pavediens nesasniedz pilnvērtīgu kodolu, taču tas ļauj sasniegt gandrīz 100% skaitļošanas jaudas efektivitāte, noslogojot gandrīz visu procesoru ar darbu, neļaujot tam darboties tukšgaitā. Ar visu šo, ieviest HT tehnoloģiju tikai apm. 5% papildu die space, un veiktspēju dažkārt var pievienot 50% . Šajā papildu apgabalā ir iekļauti papildu reģistru bloki un zaru prognozēšana, kas straumē-aprēķina, kur konkrētajā brīdī var izmantot skaitļošanas jaudu, un nosūta datus no papildu adrešu bloka.

Pirmo reizi tehnoloģija parādījās procesoros Pentium 4, taču nebija liela veiktspējas pieauguma, jo pašam procesoram nebija lielas skaitļošanas jaudas. Izaugsme bija labākajā gadījumā 15-20% , un daudzos uzdevumos procesors strādāja daudz lēnāk nekā bez tā HT.

Lēnāk procesors tehnoloģijas dēļ Hiperpavediens, notiek, ja:

  • Nepietiek kešatmiņas par visu doto, un tas cikliski pārstartējas, palēninot procesoru.
  • Filiāles prognozētājs nevar pareizi apstrādāt datus. Rodas galvenokārt tāpēc optimizācijas trūkums konkrētai programmatūrai vai operētājsistēmas atbalstam.
  • Tas var rasties arī tāpēc, datu atkarības, kad, piemēram, pirmajam pavedienam ir nepieciešami tūlītēji dati no otrā, bet tie vēl nav gatavi vai gaida rindā uz citu pavedienu. Vai arī cikliskajiem datiem ir nepieciešami noteikti bloki ātrai apstrādei, un tie tiek ielādēti ar citiem datiem. Datu atkarībai var būt daudz variāciju.
  • Ja kodols jau ir ļoti noslogots un “nav pietiekami gudrs” atzaru prognozēšanas modulis joprojām sūta datus, kas palēnina procesora darbību (attiecas uz Pentium 4).

Pēc Pentium 4, Intel sāka izmantot tehnoloģiju tikai no Core i7 pirmā paaudze, izlaižot sēriju 2 .

Procesoru apstrādes jauda ir kļuvusi pietiekama, lai pilnībā ieviestu hiperpavedienu bez liela kaitējuma pat neoptimizētām lietojumprogrammām. Vēlāk, Hiperpavediens parādījās vidējās klases un pat budžeta un pārnēsājamos procesoros. Lietots visās sērijās kodols i (i3; i5; i7) un tālāk mobilie procesori atoms(nepavisam). Interesanti, ka divkodolu procesori ar HT, saņem lielāku veiktspējas pieaugumu nekā četrkodolu izmantošana Hiperpavediens, stāvot uz 75% pilnvērtīgas četras kodolenerģijas.

Kur noder HyperThreading?

Tas būs noderīgs lietošanai kopā ar profesionālām, grafiskām, analītiskām, matemātiskām un zinātniskām programmām, video un audio redaktoriem, arhivētājiem ( Photoshop, Corel Draw, Maya, 3D's Max, WinRar, Sony Vegas un utt). Visas programmas, kas izmanto daudz aprēķinu, HT noteikti noderēs. Par laimi, iekšā 90% gadījumos šādas programmas ir labi optimizētas tā lietošanai.

hipervītņu veidošana neaizstājams serveru sistēmām. Faktiski šai nišai tā tika daļēji izstrādāta. Pateicoties HT, varat ievērojami palielināt procesora atdevi, ja ir liels uzdevumu skaits. Katrs pavediens tiks izlādēts uz pusi, kas labvēlīgi ietekmē datu adresēšanu un zaru prognozēšanu.

Daudzi Datorspēles , ir negatīvi saistīti ar klātbūtni Hiperpavediens, kas samazina kadru skaitu sekundē. Tas ir saistīts ar optimizācijas trūkumu Hiperpavediens no spēles puses. Ne vienmēr pietiek ar vienu operētājsistēmas optimizāciju, it īpaši, strādājot ar neparastiem, neviendabīgiem un sarežģītiem datiem.

Uz mātesplatēm, kas atbalsta HT, jūs vienmēr varat atspējot hiperpavedienu tehnoloģiju.

2015. gada 20. janvāris, 19:43

Vairāk par Hyper-Threading

  • IT sistēmu testēšana,
  • Programmēšana

Bija laiks, kad bija nepieciešams novērtēt atmiņas veiktspēju Hyper-threading tehnoloģijas kontekstā. Mēs nonācām pie secinājuma, ka tā ietekme ne vienmēr ir pozitīva. Kad parādījās brīvā laika kvantums, radās vēlme turpināt izpēti un aplūkot notiekošos procesus ar mašīnu ciklu un bitu precizitāti, izmantojot programmatūra pašu attīstība.

Izpētītā platforma

Eksperimentu objekts - ASUS klēpjdators N750JK ar Intel Core i7-4700HQ procesoru. Pulksteņa ātrums ir 2,4 GHz, ko pastiprina Intel Turbo Boost režīms līdz 3,4 GHz. Instalēti 16 gigabaiti brīvpiekļuves atmiņa DDR3-1600 (PC3-12800), kas darbojas divu kanālu režīmā. Operētājsistēma - Microsoft Windows 8.1 64 biti.

1. att. Pētītās platformas konfigurācija.

Pētāmās platformas procesors satur 4 kodolus, kas, iespējotu Hyper-Threading tehnoloģiju, nodrošina aparatūras atbalstu 8 pavedieniem jeb loģiskajiem procesoriem. Platformas programmaparatūra nodod šo informāciju operētājsistēmai, izmantojot MADT (vairāku APIC aprakstu tabulas) ACPI tabulu. Tā kā platformā ir tikai viens RAM kontrolleris, nav SRAT (System Resource Affinity Table), kas deklarētu procesora kodolu tuvumu atmiņas kontrolleriem. Acīmredzot attiecīgais klēpjdators nav NUMA platforma, bet gan operētājsistēma, apvienošanas nolūkos to uzskata par NUMA sistēmu ar vienu domēnu, kā norādīts rindā NUMA Nodes = 1. Fakts, kas mūsu eksperimentiem ir būtisks, ir tāds, ka pirmā līmeņa datu kešatmiņas izmērs ir 32 kilobaiti. katrs no četriem kodoliem. Diviem loģiskiem procesoriem, kuriem ir viens kodols, ir kopīga L1 un L2 kešatmiņa.

Izmeklēta darbība

Mēs pētīsim datu bloka lasīšanas ātruma atkarību no tā lieluma. Lai to izdarītu, mēs izvēlēsimies visproduktīvāko metodi, proti, 256 bitu operandu nolasīšanu, izmantojot VMOVAPD AVX instrukciju. Diagrammās X ass parāda bloka izmēru, bet Y ass parāda lasīšanas ātrumu. Punkta X tuvumā, kas atbilst L1 kešatmiņas lielumam, mēs sagaidām lēciena punktu, jo veiktspējai vajadzētu samazināties pēc tam, kad apstrādājamais bloks iziet no kešatmiņas. Mūsu testā daudzpavedienu gadījumā katrs no 16 uzsāktajiem pavedieniem darbojas ar atsevišķu adrešu diapazonu. Lai kontrolētu Hyper-Threading tehnoloģiju lietojumprogrammā, katrs pavediens izmanto SetThreadAffinityMask API funkciju, kas iestata masku, kurā katrs loģiskais procesors atbilst vienam bitam. Viena bita vērtība ļauj izmantot norādīto procesoru ar norādīto pavedienu, nulles vērtība to aizliedz. 8 pētāmās platformas loģiskajiem procesoriem maska ​​11111111b ļauj izmantot visus procesorus (Hyper-Threading iespējots), maska ​​01010101b ļauj izmantot vienu loģisko procesoru katrā kodolā (Hyper-Threading atspējots).

Grafikos tiek izmantoti šādi saīsinājumi:

MBPS (megabaiti sekundē)bloka lasīšanas ātrums megabaitos sekundē;

CPI (pulksteņi pēc instrukcijas)ciklu skaits vienā instrukcijā;

TSC (laika zīmogu skaitītājs)procesora cikla skaitītājs.

Piezīme: TSC reģistra pulksteņa ātrums var nesakrist ar procesora takts ātrumu, kad tas darbojas Turbo Boost režīmā. Tas jāņem vērā, interpretējot rezultātus.

Grafiku labajā pusē tiek vizualizēta instrukciju heksadecimālā izgāztuve, kas veido katrā programmas pavedienā veiktās mērķa darbības cikla pamattekstu jeb šī koda pirmie 128 baiti.

Pieredze numur 1. Viens pavediens



2. att Lasīšana vienā pavedienā

Maksimālais ātrums ir 213563 megabaiti sekundē. Līkuma punkts notiek bloka lielumā aptuveni 32 kilobaiti.

Pieredze numur 2. 16 pavedieni 4 procesoros, hiperpavedienu funkcija ir atspējota



3. att Lasīšana sešpadsmit pavedienos. Izmantoto loģisko procesoru skaits ir četri

Hiperpavediens ir atspējots. Maksimālais ātrums ir 797598 megabaiti sekundē. Līkuma punkts notiek bloka lielumā aptuveni 32 kilobaiti. Kā gaidīts, salīdzinot ar lasīšanu vienā pavedienā, ātrums palielinājās apmēram 4 reizes, runājot par strādājošo kodolu skaitu.

Pieredze numur 3. 16 pavedieni 8 procesoros, iespējota hipervītņu funkcija



4. att Lasīšana sešpadsmit pavedienos. Izmantoto loģisko procesoru skaits ir astoņi

Hiperpavediens ir iespējots. Maksimālais ātrums 800722 megabaiti sekundē, pateicoties Hyper-Threading iekļaušanai, gandrīz nepalielinājās. Lielais mīnuss ir tas, ka lēciena punkts notiek bloka lielumā aptuveni 16 kilobaiti. Hyper-Threading iespējošana nedaudz palielināja maksimālo ātrumu, taču ātruma samazināšanās tagad notiek uz pusi mazāka bloka izmēra - aptuveni 16 kilobaiti, tāpēc vidējais ātrums ir ievērojami samazinājies. Tas nav pārsteidzoši, katram kodolam ir sava L1 kešatmiņa, savukārt loģiskie procesori tajā pašā kodolā to koplieto.

secinājumus

Izpētītā darbība diezgan labi mērogojas daudzkodolu procesorā. Iemesli ir tādi, ka katram kodolam ir sava pirmā un otrā līmeņa kešatmiņa, mērķa bloka lielums ir salīdzināms ar kešatmiņas lielumu, un katrs pavediens darbojas ar savu adrešu diapazonu. Akadēmiskiem nolūkiem mēs radījām šādus apstākļus sintētiskā testā, saprotot, ka reālās lietojumprogrammas parasti ir tālu no ideālas optimizācijas. Bet Hyper-Threading iekļaušanai pat šādos apstākļos bija negatīva ietekme, nedaudz palielinoties maksimālajam ātrumam, ievērojami samazinās bloku apstrādes ātrums, kuru izmērs ir diapazonā no 16 līdz 32 kilobaiti.

Mēs rakstījām, ka viena procesora Xeon sistēmu izmantošanai nav jēgas, jo par augstāku cenu to veiktspēja būs tāda pati kā tādas pašas frekvences Pentium 4. Tagad, pēc rūpīgākas pārbaudes, šis apgalvojums, iespējams, būs nedaudz jāgroza. Intel Xeon ar Prestonia kodolu ieviestā Hyper-Threading tehnoloģija patiešām darbojas un sniedz diezgan taustāmu efektu. Lai gan, lietojot to, rodas arī daudz jautājumu ...

Sniedziet sniegumu

"Ātrāk, vēl ātrāk ...". Cīņa par veiktspēju notiek jau gadiem ilgi, un dažreiz pat grūti pateikt, kura no datora sastāvdaļām paātrinās ātrāk. Šim nolūkam tiek izgudroti arvien jauni veidi, un jo tālāk, jo vairāk kvalificēta darbaspēka un kvalitatīvas smadzenes tiek ieguldīts šajā lavīnai līdzīgajā procesā.

Protams, ir nepieciešams pastāvīgs veiktspējas pieaugums. Vismaz tas ir ienesīgs bizness, un vienmēr ir kāds jauks veids, kā mudināt lietotājus jaunināt vakardienas "superperforming CPU" uz rītdienas "vēl superīgāku...". Piemēram, sinhronā runas atpazīšana un sinhronā tulkošana citā valodā – vai tas nav katra sapnis? Vai arī neparasti reālistiskas spēles gandrīz "kino" kvalitātē (pilnībā absorbē uzmanību un dažkārt izraisa nopietnas izmaiņas psihē) - vai tā nav daudzu jaunu un vecu spēlētāju vēlme?

Taču mārketinga aspektus šajā gadījumā atstāsim, pievēršoties tehniskajiem. Turklāt ne viss ir tik drūmi: ir steidzami uzdevumi (servera lietojumprogrammas, zinātniski aprēķini, modelēšana utt.), Kur viss ir vairāk augsta veiktspēja, jo īpaši centrālajiem procesoriem, patiešām ir nepieciešams.

Tātad, kādi ir veidi, kā palielināt viņu veiktspēju?

Pulksteņa pastiprināšana. Var vēl "atšķaidīt" tehnoloģiskais process un palielināt frekvenci. Bet, kā jūs zināt, tas nav viegli un ir pilns ar visu veidu blakusparādībām, piemēram, siltuma izkliedes problēmām.

Procesora resursu palielināšana- piemēram, palielinot kešatmiņas apjomu, pievienojot jaunus blokus (Izpildes vienības). Tas viss ir saistīts ar tranzistoru skaita palielināšanos, procesora sarežģītību, kristāla laukuma palielināšanos un līdz ar to arī izmaksām.

Turklāt iepriekšējās divas metodes, kā likums, nekādā gadījumā nedod lineāru produktivitātes pieaugumu. Tas ir labi zināms Pentium 4 piemērā: kļūdas zaru prognozēšanā un pārtraukumos izraisa ilga konveijera atiestatīšanu, kas lielā mērā ietekmē kopējo veiktspēju.

daudzapstrāde. Vairāku CPU instalēšana un darba sadale starp tiem bieži vien ir diezgan efektīva. Bet šī pieeja nav īpaši lēta - katrs papildu procesors palielina sistēmas izmaksas, un dubultā mātesplate ir daudz dārgāka nekā parastā (nemaz nerunājot par mātesplatēm ar atbalstu četriem vai vairāk CPU). Turklāt ne visas lietojumprogrammas gūst pietiekami daudz labumu no vairāku apstrādes, lai attaisnotu izmaksas.

Papildus "tīrai" daudzapstrādei ir vairākas "starpposma" opcijas, kas ļauj paātrināt lietojumprogrammu izpildi:

Chip Multiprocessing (CMP)- divi procesora kodoli fiziski atrodas vienā mikroshēmā, izmantojot kopēju vai atsevišķu kešatmiņu. Protams, kristāla izmērs izrādās diezgan liels, un tas nevar neietekmēt izmaksas. Ņemiet vērā, ka vairāki no šiem "dubultajiem" CPU var darboties arī daudzprocesoru sistēmā.

Time Slice Multithreading. Procesors pārslēdzas starp programmas pavedieniem noteiktos intervālos. Pieskaitāmās izmaksas dažreiz var būt diezgan lielas, it īpaši, ja process gaida.

Ieslēgšanas notikumu daudzpavedienu veidošana. Uzdevumu pārslēgšanās, kad notiek ilgstošas ​​pauzes, piemēram, "cache misss" (cache misses), no kuriem liels skaits ir raksturīgi servera lietojumprogrammām. Šajā gadījumā process, kas gaida datu ielādi no salīdzinoši lēnas atmiņas kešatmiņā, tiek apturēts, tādējādi atbrīvojot CPU resursus citiem procesiem. Tomēr Switch-on-Event Multithreading, tāpat kā Time-Slice Multithreading, ne vienmēr nodrošina optimālu procesora resursu izmantošanu, jo īpaši zaru prognozēšanas kļūdu, instrukciju atkarību u.c. dēļ.

Vienlaicīga vairāku pavedienu veidošana. Šajā gadījumā programmas pavedieni tiek izpildīti tajā pašā procesorā "vienlaikus", t.i., bez pārslēgšanās starp tiem. CPU resursi tiek sadalīti dinamiski, pēc principa "ja neizmantojat, atdodiet kādam citam". Šī pieeja ir pamatā Intel tehnoloģijas Hyper-Threading, pie kura mēs tagad pievēršamies.

Kā darbojas hipervītņošana

Kā jūs zināt, pašreizējā "skaitļošanas paradigma" ietver daudzpavedienu skaitļošana. Tas attiecas ne tikai uz serveriem, kur šāds jēdziens sākotnēji pastāv, bet arī uz darbstacijām un galddatoru sistēmām. Pavedieni var piederēt vienai un tai pašai vai dažādām lietojumprogrammām, taču gandrīz vienmēr ir vairāk aktīvo pavedienu nekā viens (lai to redzētu, vienkārši atveriet uzdevumu pārvaldnieku operētājsistēmā Windows 2000/XP un ieslēdziet pavedienu skaita displeju). Tajā pašā laikā parastais procesors vienlaikus var izpildīt tikai vienu no pavedieniem un ir spiests pastāvīgi pārslēgties starp tiem.

Pirmo reizi Hyper-Threading tehnoloģija tika ieviesta Intel Xeon MP (Foster MP) procesorā, kurā tā tika "iedarbināta". Atgādiniet, ka Xeon MP, kas oficiāli tika prezentēts IDF 2002. gada pavasarī, izmanto Pentium 4 Willamette kodolu, satur 256 KB L2 kešatmiņu un 512 KB/1 MB L3 kešatmiņu un atbalsta 4 procesoru konfigurācijas. Hyper-Threading atbalsts ir pieejams arī Intel Xeon procesoram darbstacijām (Prestonia kodols, 512 KB L2 kešatmiņa), kas tirgū ienāca nedaudz agrāk nekā Xeon MP. Mūsu lasītāji jau ir iepazinušies ar divu procesoru konfigurācijām Intel Xeon, tāpēc mēs apsvērsim Hyper-Threading iespējas, izmantojot šos CPU kā piemēru - gan teorētiski, gan praktiski. Lai kā arī būtu, "vienkāršais" Xeon ir ikdienišķāks un vieglāk sagremojams nekā Xeon MP 4 procesoru sistēmās...

Hyper-Threading darbības princips ir balstīts uz to, ka jebkurā brīdī, izpildot programmas kodu, tiek izmantota tikai daļa no procesora resursiem. Arī neizmantotos resursus var ielādēt ar darbu – piemēram, paralēlai izpildei var izmantot vēl vienu aplikāciju (vai citu tās pašas aplikācijas pavedienu). Vienā fiziskajā Intel Xeon procesorā tiek izveidoti divi loģiskie procesori (LP - Logical Processor), kuri dala CPU skaitļošanas resursus. Operētājsistēma un lietojumprogrammas "redz" tieši divus CPU un var sadalīt darbu starp tiem, kā tas ir pilnvērtīgas divu procesoru sistēmas gadījumā.

Viens no Hyper-Threading ieviešanas mērķiem ir ļaut tikai vienam aktīvam pavedienam darboties tādā pašā ātrumā kā parastajam CPU. Lai to izdarītu, procesoram ir divi galvenie darbības režīmi: Single-Task (ST) un Multi-Task (MT). ST režīmā ir aktīvs tikai viens loģiskais procesors un nedalīti izmanto pieejamos resursus (ST0 un ST1 režīmi); otru LP aptur komanda HALT. Kad parādās otrais programmas pavediens, tiek aktivizēts dīkstāves loģiskais procesors (izmantojot pārtraukumu) un fiziskais CPU tiek pārslēgts MT režīmā. Neizmantoto LP apturēšana ar komandu HALT ir operētājsistēmas atbildība, kas galu galā ir atbildīga par tikpat ātru viena pavediena izpildi kā gadījumā bez hiperpavediena.

Katram no diviem LP tiek glabāts tā sauktais arhitektūras stāvoklis (AS), kas ietver dažāda veida reģistru stāvokli - vispārējas nozīmes, kontroles, APIC un pakalpojumu. Katram LP ir savs APIC (pārtraukumu kontrolieris) un reģistru kopa pareizai darbībai, ar kuru tiek ieviesta reģistra aizstājvārdu tabulas (RAT) koncepcija, kas izseko korespondenci starp astoņiem IA-32 vispārējas nozīmes reģistriem un 128. fiziskie CPU reģistri (viens RAT katram LP).

Palaižot divus pavedienus, tiek atbalstītas divas atbilstošas ​​nākamo instrukciju rādītāju kopas. Lielākā daļa instrukciju tiek ņemtas no izsekošanas kešatmiņas (TC), kur tās tiek glabātas dekodētā veidā, un divi aktīvie LP pēc kārtas piekļūst TC — katru pulksteni. Tajā pašā laikā, kad ir aktīvs tikai viens LP, tas iegūst ekskluzīvu piekļuvi TC, nepārkāpjot pulksteņus. Līdzīgi notiek piekļuve mikrokoda ROM. ITLB bloki (Instruction Translation Look-aside Buffer), kas tiek aktivizēti, ja instrukciju kešatmiņā nav nepieciešamo instrukciju, tiek dublēti un nodrošina instrukcijas katram savam pavedienam. Instrukciju dekodēšanas bloks IA-32 Instruction Decode tiek koplietots un gadījumā, ja instrukciju dekodēšana ir nepieciešama abām straumēm, tas apkalpo tās pa vienam (atkal katru pulksteni). Uop Queue un Allocator bloki ir sadalīti divās daļās, katram LP atvēlot pusi no elementiem. Plānotāji, kas sastāv no 5 daļām, apstrādā dekodēto komandu rindas (Uops), neskatoties uz piederību LP0 / LP1 un tiešajām komandām, kas jāizpilda nepieciešamajām izpildvienībām - atkarībā no pirmās gatavības izpildei un otrās pieejamības. Visu līmeņu kešatmiņas (L1/L2 Xeon un L3 Xeon MP) ir pilnībā koplietotas starp diviem LP, tomēr, lai nodrošinātu datu integritāti, ieraksti DTLB (Data Translation Look-aside Buffer) tiek nodrošināti ar deskriptoriem šādā veidā. loģiskā procesora ID.

Tādējādi abu loģisko CPU instrukcijas var izpildīt vienlaicīgi uz viena fiziskā procesora resursiem, kas ir sadalīti četrās klasēs:

  • dublēts (Duplicēts);
  • pilnībā koplietots (Fully Shared);
  • ar elementu deskriptoriem (Entry Tagged);
  • dinamiski sadalīts (Partitioned) atkarībā no ST0/ST1 vai MT darbības režīma.

Tomēr lielāko daļu lietojumprogrammu, kas tiek paātrinātas daudzprocesoru sistēmās, var arī paātrināt CPU ar iespējotu hipervītņu funkciju bez jebkādām izmaiņām. Taču ir arī problēmas: piemēram, ja viens process atrodas gaidīšanas ciklā, tas var aizņemt visus fiziskā CPU resursus, neļaujot darboties otrajam LP. Tādējādi veiktspēja, izmantojot Hyper-Threading, dažkārt var pazemināties (līdz 20%). Lai to novērstu, Intel iesaka izmantot PAUSE instrukciju, nevis tukšas gaidīšanas cilpas (ieviestas IA-32, sākot ar Pentium 4). Nopietns darbs norit arī pie automātiskas un pusautomātiskas koda optimizācijas kompilācijas laikā – piemēram, Intel OpenMP C ++ / Fortran Compilers () sērijas kompilatori šajā ziņā ir panākuši ievērojamu progresu.

Vēl viens Hyper-Threading pirmās ieviešanas mērķis, pēc Intel domām, bija līdz minimumam samazināt tranzistoru skaita, formas un enerģijas patēriņa pieaugumu, vienlaikus ievērojami palielinot veiktspēju. Pirmā šī apņemšanās daļa jau ir izpildīta: pievienojot Xeon/Xeon MP Hyper-Threading atbalstu, palielināja veidņu laukumu un enerģijas patēriņu par mazāk nekā 5%. Kas notika ar otro daļu (uzvedumu), mums vēl jāpārbauda.

Praktiskā daļa

Acīmredzamu iemeslu dēļ mēs nepārbaudījām 4 procesoru serveru sistēmas Xeon MP ar iespējotu Hyper-Threading. Pirmkārt, tas ir diezgan darbietilpīgs. Un, otrkārt, ja mēs izlemjam par šādu varoņdarbu - tas ir vēl tagad, nepilnu mēnesi pēc oficiālā paziņojuma, ir absolūti nereāli iegūt šo dārgo aprīkojumu. Tāpēc tika nolemts aprobežoties ar vienu un to pašu sistēmu ar diviem Intel Xeon 2,2 GHz, uz kuriem tika veikti pirmie šo procesoru testi (skatiet saiti raksta sākumā). Sistēma balstījās uz mātesplatē Supermicro P4DC6+ ( Intel mikroshēmojums i860), saturēja 512 MB RDRAM, videokarti GeForce3 mikroshēmā (64 MB DDR, Detonator 21.85 draiveri), HDD rietumu digitālais WD300BB un 6X DVD-ROM; Kā operētājsistēma tika izmantota Windows 2000 Professional SP2.

Pirmkārt, daži vispārīgi iespaidi. Instalējot vienu Xeon ar Prestonia kodolu startēšanas laikā sistēmas BIOS parāda ziņojumu par divu CPU klātbūtni; ja ir uzstādīti divi procesori, lietotājs redz ziņojumu par četriem CPU. Operētājsistēma parasti atpazīst "abus procesorus", bet tikai tad, ja ir izpildīti divi nosacījumi.

Pirmkārt, CMOS iestatījumos, pēdējais BIOS versijas Supermicro P4DCxx plates ieviesa vienumu Enable Hyper-Threading, bez kura OS atpazīs tikai fizisko(-s) procesoru(-us). Otrkārt, ACPI izmanto, lai informētu OS, ka ir papildu loģiskie procesori. Tāpēc, lai iespējotu Hyper-Threading, CMOS iestatījumos ir jāiespējo ACPI opcija, un pašai OS ir jāinstalē arī HAL (aparatūras abstrakcijas slānis) ar ACPI atbalstu. Par laimi, operētājsistēmā Windows 2000 HAL nomaiņa no Standarta datora (vai MPS Uni-/Multiprocessor PC) uz ACPI Uni-/Multiprocessor PC ir vienkārša - ierīces pārvaldniekā mainot "datora draiveri". Tajā pašā laikā operētājsistēmai Windows XP vienīgais likumīgais veids, kā migrēt uz ACPI HAL, ir pārinstalēt sistēmu papildus esošajai instalācijai.

Bet tagad visi sagatavošanās darbi ir veikti, un mūsu Windows 2000 Pro jau ir stingri pārliecināts, ka tas darbojas divu procesoru sistēmā (lai gan patiesībā ir instalēts tikai viens procesors). Tagad, kā parasti, ir pienācis laiks izlemt par testēšanas mērķiem. Tātad mēs vēlamies:

  • Novērtējiet Hyper-Threading ietekmi uz dažādu klašu lietojumprogrammu veiktspēju.
  • Salīdziniet šo efektu ar otrā procesora instalēšanas efektu.
  • Pārbaudiet, cik "godīgi" resursi tiek piešķirti aktīvajam loģiskajam procesoram, kad otrais LP ir dīkstāvē.

Lai novērtētu veiktspēju, mēs paņēmām lasītājiem jau pazīstamu aplikāciju komplektu, kas tika izmantots darbstaciju sistēmu testēšanā. Sāksim, iespējams, no beigām un pārbaudīsim loģisko CPU "vienlīdzību". Viss ir ārkārtīgi vienkārši: vispirms mēs veicam testus vienā procesorā ar atspējotu Hyper-Threading, un pēc tam atkārtojam procesu ar iespējotu Hyper-Threading un izmantojot tikai vienu no diviem loģiskajiem CPU (izmantojot uzdevumu pārvaldnieku). Tā kā šajā gadījumā mūs interesē tikai relatīvās vērtības, visu testu rezultāti tiek reducēti uz formu "lielāks, jo labāk" un normalizēti (viena procesora sistēmas bez Hyper-Threading indikatori tiek ņemti par vienību).

Nu, kā redzat, Intel solījumi šeit tiek izpildīti: tikai ar vienu aktīvu pavedienu katra no diviem LP veiktspēja ir tieši tāda pati kā fiziska CPU veiktspēja bez Hyper-Threading. Dīkstāves LP (gan LP0, gan LP1) patiešām ir apturēta, un koplietotie resursi, cik var spriest pēc iegūtajiem rezultātiem, tiek pilnībā nodoti aktīvā LP lietošanā.

Tāpēc mēs izdarām pirmo secinājumu: divi loģiskie procesori faktiski ir vienādi ar tiesībām, un Hyper-Threading iespējošana "netraucē" viena pavediena darbībai (kas pats par sevi nav slikti). Tagad paskatīsimies, vai šī iekļaušana "palīdz", un, ja tā, tad kur un kā?

renderēšana. Četru testu rezultāti 3D modelēšanas pakotnēs 3D Studio MAX 4.26, Lightwave 7b un A|W Maya 4.0.1 ir apvienoti vienā diagrammā to līdzības dēļ.

Visos četros gadījumos (Lightwave - divas dažādas ainas) CPU slodze viena procesora klātbūtnē ar atspējotu Hyper-Threading gandrīz pastāvīgi tiek uzturēta 100% līmenī. Taču, ja ir iespējota funkcija Hyper-Threading, ainu aprēķins tiek paātrināts (tā rezultātā mums pat bija joks par CPU izmantošanu virs 100%). Trīs testos mēs varam redzēt veiktspējas pieaugumu no Hyper-Threading par 14--18% - no vienas puses, tas nav daudz salīdzinājumā ar otro CPU, bet, no otras puses, tas ir diezgan labs, ņemot vērā "bezmaksas" efektu. no šī efekta. Vienā no diviem testiem ar Lightwave veiktspējas pieaugums ir gandrīz nulle (acīmredzot, ietekmē šīs dīvainības pilnās lietojumprogrammas specifika). Bet negatīva rezultāta nekur nav, un pārējo trīs gadījumu ievērojams pieaugums ir iepriecinošs. Un tas neskatoties uz to, ka paralēlie renderēšanas procesi veic līdzīgu darbu un, protams, nevar izmantot fiziskā CPU resursus vienlaikus vislabākajā veidā.

Photoshop un MP3 kodējums. GOGO-no-coda 2.39c kodeks ir viens no retajiem, kas atbalsta SMP, un tas uzrāda veiktspējas pieaugumu par 34%, salīdzinot ar diviem procesoriem. Tajā pašā laikā Hyper-Threading efekts šajā gadījumā ir nulle (mēs neuzskatām, ka atšķirība 3% ir būtiska). Taču pārbaudē ar Photoshop 6.0.1 (skripts, kas sastāv no liela komandu un filtru kopas) var redzēt palēnināšanos, kad ir iespējots Hyper-Threading, lai gan otrs fiziskais CPU šajā gadījumā palielina veiktspēju par 12%. Patiesībā šis ir pirmais gadījums, kad Hyper-Threading izraisa veiktspējas samazināšanos ...

Profesionāls OpenGL. Jau sen ir zināms, ka SPEC ViewPerf un daudzas citas OpenGL lietojumprogrammas bieži palēninās SMP sistēmās.

OpenGL un divi procesori: kāpēc viņi nav draugi

Daudzas reizes rakstos esam vērsuši lasītāju uzmanību uz to, ka divu procesoru platformas, veicot profesionālus OpenGL testus, reti uzrāda kādas būtiskas priekšrocības salīdzinājumā ar viena procesora platformām. Un vēl jo vairāk, ir gadījumi, kad otrā procesora instalēšana, gluži pretēji, pasliktina sistēmas veiktspēju, renderējot dinamiskas 3D ainas.

Protams, ne tikai mēs pamanījām šo dīvainību. Daži testētāji vienkārši klusībā apiet šo faktu – piemēram, sniedzot SPEC ViewPerf salīdzināšanas rezultātus tikai divu procesoru konfigurācijām, tādējādi izvairoties no skaidrojumiem "kāpēc divu procesoru sistēma ir lēnāka?". Citi izteica visdažādākos izdomātus pieņēmumus par kešatmiņas saskaņotību, nepieciešamību to uzturēt, no tā izrietošajām pieskaitāmajām izmaksām un tā tālāk. Un nez kāpēc neviens nebija pārsteigts, ka, piemēram, procesori bija nepacietīgi, lai precīzi uzraudzītu saskaņotību logu OpenGL renderēšanā (savā "skaitļošanas" būtībā tas daudz neatšķiras no jebkura cita skaitļošanas uzdevuma).

Patiesībā izskaidrojums, mūsuprāt, ir daudz vienkāršāks. Kā jūs zināt, lietojumprogramma var darboties ātrāk divos procesoros nekā vienā, ja:

  • ir vairāk nekā divi vai vairāki vienlaicīgi izpildāmi programmas pavedieni (pavedieni);
  • šie pavedieni netraucē viens otra izpildi - piemēram, tie nekonkurē par koplietotu resursu, piemēram, ārējo disku vai tīkla saskarni.

Tagad vienkāršoti apskatīsim, kā izskatās OpenGL renderēšana, ko veic divi pavedieni. Ja lietojumprogramma, "redzot" divus procesorus, izveido divus OpenGL renderēšanas pavedienus, tad katram no tiem saskaņā ar OpenGL noteikumiem tiek izveidots savs gl-konteksts. Attiecīgi katrs pavediens tiek renderēts savā gl kontekstā. Bet problēma ir tā, ka logā, kurā tiek parādīts attēls, jebkurā laikā var būt aktuāls tikai viens gl konteksts. Attiecīgi pavedieni šajā gadījumā vienkārši "savukārt" izvada ģenerēto attēlu uz logu, padarot to kontekstu pārmaiņus aktuālu. Lieki piebilst, ka šāda "konteksta iejaukšana" var būt ļoti dārga pieskaitāmo izmaksu ziņā?

Kā piemēru mēs arī sniegsim grafikus par divu CPU izmantošanu vairākās lietojumprogrammās, kas parāda OpenGL ainas. Visi mērījumi tika veikti uz platformas ar šādu konfigurāciju:

  • viens vai divi Intel Xeon 2,2 GHz (Hyper-Threading ir atspējots);
  • 512 MB RDRAM;
  • Supermicro P4DC6+ mātesplate;
  • ASUS V8200 Deluxe videokarte (NVidia GeForce3, 64 MB DDR SDRAM, Detonator 21.85 draiveri);
  • Windows 2000 Professional SP2;
  • video režīms 1280x1024x32 bpp, 85 Hz, Vsync atspējota.

Zils un sarkans ir attiecīgi CPU 0 un CPU 1 slodzes diagrammas. Līnija vidū ir galīgais CPU lietojuma grafiks. Trīs diagrammas atbilst divām ainām no 3D Studio MAX 4.26 un SPEC ViewPerf testa (AWadvs-04) daļai.


CPU lietojums: Animation 3D Studio MAX 4.26 — Anibal (ar manipulatoriem).max


CPU lietojums: Animation 3D Studio MAX 4.26 - Rabbit.max


CPU lietojums: SPEC ViewPerf 6.1.2 - AWadvs-04

Tas pats modelis tiek atkārtots daudzās citās lietojumprogrammās, kas izmanto OpenGL. Divi procesori ar darbu nemaz netraucē, un kopējais CPU lietojums ir 50-60% līmenī. Tajā pašā laikā viena procesora sistēmai visos šajos gadījumos CPU lietojums tiek pārliecinoši saglabāts 100% līmenī.

Tāpēc nav pārsteidzoši, ka daudzas OpenGL lietojumprogrammas nekļūst daudz ātrākas duālajās sistēmās. Nu tam, ka viņi dažkārt pat bremzē, tam, mūsuprāt, ir pilnīgi loģisks izskaidrojums.

Varam apgalvot, ka ar diviem loģiskiem CPU veiktspējas kritums ir vēl būtiskāks, kas ir diezgan saprotams: divi loģiskie procesori traucē viens otru tāpat kā divi fiziski. Bet to kopējā veiktspēja, protams, šajā gadījumā izrādās zemāka, tāpēc, ja ir iespējota funkcija Hyper-Threading, tā samazinās pat vairāk nekā tikai tad, ja darbojas divi fiziski CPU. Rezultāts ir paredzams, un secinājums ir vienkāršs: Hyper-Threading, tāpat kā "īsts" SMP, dažreiz ir kontrindicēts OpenGL.

CAD lietojumprogrammas. Iepriekšējo secinājumu apstiprina divu CAD testu rezultāti – SPECapc priekš SolidEdge V10 un SPECapc priekš SolidWorks. Šo Hyper-Threading testu grafiskā veiktspēja ir līdzīga (lai gan rezultāts ir nedaudz augstāks SolidEdge V10 SMP sistēmas gadījumā). Bet CPU_Score testu rezultāti, kas noslogo procesoru, liek domāt: 5-10% pieaugums no SMP un 14-19% palēninājums no Hyper-Threading.

Bet galu galā Intel godīgi atzīst veiktspējas pasliktināšanās potenciālu, izmantojot Hyper-Threading dažos gadījumos, piemēram, ja tiek izmantotas tukšas gaidīšanas cilpas. Mēs varam tikai pieņemt, ka tas ir iemesls (detalizēta SolidEdge un SolidWorks koda pārbaude ir ārpus šī raksta darbības jomas). Galu galā visi zina CAD lietojumprogrammu izstrādātāju konservatīvismu, kuri dod priekšroku pārbaudītai uzticamībai un nesteidzas pārrakstīt kodu, ņemot vērā jaunās programmēšanas tendences.

Rezumējot jeb "Uzmanību, pareizais jautājums"

Hyper-Threading darbojas, par to nav šaubu. Protams, tehnoloģija nav universāla: ir aplikācijas, kurām Hyper-Threading "kļūst slikti", un šīs tehnoloģijas izplatības gadījumā būtu vēlams tās modificēt. Bet vai tas pats nenotika ar MMX un SSE un turpina notikt ar SSE2?

Tomēr tas rada jautājumu par šīs tehnoloģijas pielietojamību mūsu realitātē. Mēs nekavējoties atmetīsim viena procesora sistēmas opciju Xeon ar Hyper-Threading (vai uzskatīsim to tikai par pagaidu, gaidot otrā procesora iegādi): pat 30% veiktspējas pieaugums neattaisno cenu nevienā veids - tad labāk pirkt parasto Pentium 4. Palicis CPU skaits no diviem vai vairāk.

Tagad iedomāsimies, ka mēs pērkam divu procesoru Xeon sistēmu (teiksim, ar Windows 2000/XP Professional). Uzstādīti divi CPU, iespējots Hyper-Threading, BIOS atrod veselus četrus loģiskos procesorus, tagad pacelsimies... Stop. Bet cik procesorus redzēs mūsu operētājsistēma? Tieši tā, divi. Tikai divas, jo tas vienkārši nav paredzēts lielākam skaitam. Tie būs divi fiziski procesori, t.i., viss darbosies tieši tāpat kā ar atspējotu Hyper-Threading - ne lēnāk (divi "papildu" loģiskie CPU vienkārši apstāsies), bet ne ātrāk (pārbauda ar papildu testiem, rezultāti netiek citēti to acīmredzamība). Hmm, nav tik jautri...

Kas paliek? Vai tiešām neinstalējiet Advanced Server vai .NET Server mūsu darbstacijā? Nē, sistēma instalēs, atpazīs visus četrus loģiskos procesorus un darbosies. Tieši tā servera OS skatās uz darbstaciju, maigi izsakoties, nedaudz dīvaini (nemaz nerunājot par finansiālajiem aspektiem). Vienīgais saprātīgais gadījums ir tad, kad mūsu divu procesoru Xeon sistēma darbosies kā serveris (vismaz daži veidotāji nešaubās izlaist serverus darbstaciju Xeon procesoros). Bet dubultā darbstacijām ar atbilstošām operētājsistēmām Hyper-Threading pielietojamība joprojām ir apšaubāma. Intel tagad aktīvi iestājas par OS licencēšanu, pamatojoties uz nevis loģisko, bet gan fizisko CPU skaitu. Diskusijas joprojām turpinās, un kopumā daudz kas ir atkarīgs no tā, vai mēs redzam darbstacijas OS ar četru procesoru atbalstu.

Nu ar serveriem viss sanāk pavisam vienkārši. Piemēram, Windows 2000 Advanced Server, kas instalēts divu ligzdu Xeon sistēmā ar iespējotu Hyper-Threading, redzēs četrus loģiskos procesorus un nevainojami darbosies tajā. Lai novērtētu, ko Hyper-Threading sniedz serveru sistēmām, mēs piedāvājam Intel Microprocessor Software Labs rezultātus divu procesoru sistēmām Xeon MP un vairākās Microsoft serveru lietojumprogrammās.

Divu procesoru servera veiktspējas palielinājums par 20-30% "bez maksas" ir vairāk nekā vilinošs (īpaši salīdzinājumā ar "īstas" 4 procesoru sistēmas iegādi).

Tātad izrādās, ka šobrīd Hyper-Threading praktiskā pielietojamība ir iespējama tikai serveros. Problēma ar darbstacijām ir atkarīga no risinājuma ar OS licencēšanu. Lai gan vēl viena Hyper-Threading lietojumprogramma ir diezgan reāla - ja galddatoru procesori saņems atbalstu šai tehnoloģijai. Piemēram (iedomāsimies), kāpēc Pentium 4 sistēma ar Hyper-Threading atbalstu, kurā ir instalēta Windows 2000/XP Professional ar SMP atbalstu, ir slikta? - no serveriem līdz galddatoriem un mobilajām sistēmām.