Verschil tussen cpu en gpu. Acceleratie met meerdere GPU's. Technologieën voor gegevensanalyse

Duitse onderzoeker over het gebruik GPU-computergebruik in de econofysica en statistische natuurkunde, inclusief voor het analyseren van informatie over de aandelenmarkt. Wij presenteren onder uw aandacht de belangrijkste punten van dit materiaal.

Opmerking: het artikel in het tijdschrift dateert uit 2011, sindsdien zijn er nieuwe modellen GPU-apparaten verschenen, maar de algemene benaderingen voor het gebruik van deze tool in de infrastructuur voor online handel zijn onveranderd gebleven

De eisen aan rekenkracht nemen op verschillende gebieden toe. Een daarvan is financiële analyse, die nodig is voor succesvolle handel op de aandelenmarkt, vooral met HFT-fondsen. Om een ​​beslissing te nemen om aandelen te kopen of verkopen, moet het algoritme een aanzienlijke hoeveelheid invoergegevens analyseren: informatie over transacties en hun parameters, huidige koersen en prijstrends, enz.

De tijd die verstrijkt tussen het creëren van een koop- of verkooporder en het ontvangen van een reactie over de succesvolle voltooiing ervan van de uitwisselingsserver, wordt een round-trip (RTT) genoemd. Marktdeelnemers doen hun best om deze tijd te verkorten, hiervoor gebruiken ze met name technologieën voor directe toegang tot de beurs, en servers met handelssoftware bevinden zich in een colocatiefaciliteit naast de handelsmotor van de beurzen.

De technologische mogelijkheden om de retourvlucht te verminderen zijn echter beperkt, en nadat ze zijn uitgeput, worden handelaren geconfronteerd met de vraag hoe ze anders hun snelheid kunnen verhogen. handelsactiviteiten. Om dit te bereiken worden nieuwe benaderingen gebruikt voor het bouwen van infrastructuur voor online handel. Er wordt vooral gebruik gemaakt van FPGA’s en GPU’s. We schreven eerder over het versnellen van HFT-handel met behulp van programmeerbare hardware, vandaag zullen we praten over hoe GPU's hiervoor kunnen worden gebruikt.

Wat is GPU

De architectuur van moderne grafische kaarten is gebaseerd op een schaalbare reeks streaming multiprocessors. Eén zo'n multiprocessor bevat acht scalaire processorkernen, multi-threaded instructiemodule, gedeeld geheugen op de chip (on-chip).

Wanneer een C-programma dat CUDA-extensies gebruikt een GPU-kernel aanroept, worden kopieën van die kernel, of threads, genummerd en gedistribueerd naar beschikbare multiprocessors, waar de uitvoering ervan begint. Voor deze nummering en distributie wordt het kernnetwerk opgedeeld in blokken, die elk zijn onderverdeeld in verschillende threads. Threads in dergelijke blokken worden gelijktijdig uitgevoerd op beschikbare multiprocessors. Om een ​​groot aantal threads te beheren, wordt de SIMT-module (single-instruction multiple-thread) gebruikt. Deze module groepeert ze in “pakketten” van 32 threads. Dergelijke groepen worden uitgevoerd op dezelfde multiprocessor.

Analyse van financiële gegevens op GPU

Bij financiële analyse worden veel maatstaven en indicatoren gebruikt, waarvan de berekening serieuze rekenkracht vereist. Hieronder zullen we er enkele opsommen en de verwerkingssnelheid vergelijken die wordt weergegeven door een “gewone” processor Intel Core 2 Quad CPU (Q6700) met een klokfrequentie van 2,66 GHz en een cachegrootte van 4096 kilobytes, evenals populaire grafische kaarten.
Hurst-exponent
Bij tijdreeksanalyse wordt een maatstaf gebruikt die de Hurst-exponentieel wordt genoemd. Deze waarde neemt af als de vertraging tussen twee identieke waardenparen in de tijdreeks groter wordt. Het concept werd oorspronkelijk in de hydrologie gebruikt om de grootte van een dam in de Nijl te bepalen in omstandigheden van onvoorspelbare regenval en droogte.

Vervolgens werd de Hurst-exponent in de economie gebruikt, met name in de economie technische analyse om trends in de beweging van prijsreeksen te voorspellen. Hieronder vindt u een vergelijking van de snelheid waarmee de Hurst-exponent op de CPU en GPU wordt berekend (versnellingsindicator β = totale rekentijd op de CPU / totale rekentijd op de GeForce 8800 GT GPU):

Ising-model en Monte Carlo-methode
Een ander instrument dat naar het financiële veld is gemigreerd, dit keer vanuit de natuurkunde, is het Ising-model. Dit wiskundige model van de statistische natuurkunde is ontworpen om de magnetisatie van een materiaal te beschrijven.

Elk hoekpunt van het kristalrooster (er wordt niet alleen rekening gehouden met driedimensionale, maar ook met een- en tweedimensionale variaties) wordt geassocieerd met een getal dat spin wordt genoemd en gelijk is aan +1 of −1 (“veld omhoog”/“veld omlaag” ). Elk van 2^N mogelijke opties aan de rangschikking van spins (waarbij N het aantal roosteratomen is) wordt de energie toegewezen die voortvloeit uit de paarsgewijze interactie van de spins van naburige atomen. Vervolgens wordt voor een bepaalde temperatuur de Gibbs-verdeling in beschouwing genomen; het gedrag ervan wordt in beschouwing genomen groot aantal N atomen.

In sommige modellen (bijvoorbeeld met dimensies > 1) wordt een faseovergang van de tweede orde waargenomen. De temperatuur waarbij de magnetische eigenschappen van een materiaal verdwijnen, wordt kritisch genoemd (Curiepunt). In de omgeving ervan lopen een aantal thermodynamische kenmerken uiteen.

Aanvankelijk werd het Ising-model gebruikt om de aard van ferromagnetisme te begrijpen, maar later werd het wijdverspreider. In het bijzonder wordt het gebruikt om generalisaties te maken in sociaal-economische systemen. Een generalisatie van het Ising-model bepaalt bijvoorbeeld de interactie tussen financiëlemarktdeelnemers. Elk van hen heeft een gedragsstrategie, waarvan de rationaliteit mogelijk beperkt is. Beslissingen over het al dan niet verkopen of kopen van aandelen en tegen welke prijs, hangen af ​​van iemands eerdere beslissingen en de uitkomst daarvan, evenals van de acties van andere marktdeelnemers.

Het Ising-model wordt gebruikt om de interactie tussen marktdeelnemers te modelleren. Het Ising-model implementeren en simulatie modellering Er wordt gebruik gemaakt van de Monte Carlo-methode, waarmee u kunt construeren wiskundig model voor een project met ongedefinieerde waarden parameters.

Hieronder vindt u een vergelijking van de simulatieprestaties op CPU en GPU ( NVIDIA GeForce GTX280):

Er zijn implementaties van het Ising-model die tijdens de analyse worden gebruikt diverse hoeveelheden draait Dankzij de multi-spin-implementatie kunt u meerdere spins parallel laden.

Acceleratie met meerdere GPU's

Om de gegevensverwerking te versnellen, worden ook clusters van GPU-apparaten gebruikt - in dit geval hebben de onderzoekers een cluster van twee Tesla C1060 GPU-kaarten samengesteld, waarvan de communicatie werd uitgevoerd via Double Data Rate InfiniBand.

In het geval van Monte Carlo-simulaties van het Ising-model geven de resultaten aan dat de prestaties vrijwel lineair toenemen naarmate er meer GPU's worden toegevoegd.

Conclusie

Experimenten tonen aan dat het gebruik van GPU's tot aanzienlijke prestatieverbeteringen kan leiden financiële analyse. Tegelijkertijd kan de snelheidswinst vergeleken met het gebruik van een CPU-architectuur enkele tientallen keren bedragen. Tegelijkertijd kunt u een nog grotere prestatieverbetering bereiken door GPU-clusters te creëren - in dit geval groeit het vrijwel lineair.

U heeft besloten een computer te kopen. Loop langs de winkelpaden, kijk naar de prijskaartjes, maak kennis met de kenmerken. En de vraag rijst: wat is een GPU? Vaak zie je deze combinatie van letters, maar zie je de betekenis niet. Laten we het proberen uit te leggen.

GPU - wat is het en hoe verschilt het van de CPU?

GPU staat voor "grafische verwerkingseenheid", oftewel GPU. Het is een los apparaat voor een gameconsole, computer of camera. Verantwoordelijk voor de grafische weergave en voert deze uit. De GPU kan deze taak opmerkelijk goed aan, dankzij de pijplijnarchitectuur die speciaal voor deze doeleinden is ontworpen. Moderne GPU's verwerken grafische afbeeldingen veel beter dan hun klassieke centrale verwerkingseenheden (CPU's).

Momenteel wordt de GPU gebruikt als 3D grafische versneller, maar in uitzonderlijke gevallen kan deze worden gebruikt voor computergebruik. Het verschil tussen een GPU en een CPU is het volgende:

  • architectuur: het is gericht op het maximale bij hoge snelheid van berekening van complexen grafische objecten en texturen;
  • relatief lage commandoset.

De enorme rekenkracht wordt precies verklaard door de kenmerken van de architectuur. Samen met moderne CPU's met meerdere cores (2/4/8, wat al als een doorbraak werd beschouwd), werd de GPU oorspronkelijk ontwikkeld als een multi-core structuur. Het aantal kernen hier loopt in de honderden!

Het verschil in architectuur verklaart ook het verschil in werkingsprincipe. Als de CPU-architectuur is ontworpen voor sequentiële gegevensverwerking, dan is de GPU oorspronkelijk ontworpen om met computergraphics te werken, en daarom ontworpen voor grootschalige maar parallelle berekeningen.

Elk van deze architecturen heeft zijn eigen voordelen. De CPU is veel beter in sequentiële taken. Voor grote hoeveelheden verwerkte informatie heeft de GPU een voordeel. De belangrijkste voorwaarde is dat de taak parallellisme moet behouden.

Je weet nu veel over GPU's, wat een GPU is, en je kunt het zelfs aan je vrienden vertellen.

CPU's en GPU's lijken erg op elkaar; ze zijn beide gemaakt van honderden miljoenen transistors en kunnen duizenden bewerkingen per seconde verwerken. Maar hoe verschillen deze twee precies? belangrijke componenten elke thuiscomputer?

In dit artikel zullen we op een zeer eenvoudige en toegankelijke manier proberen uit te leggen wat het verschil is tussen een CPU en een GPU. Maar eerst moeten we deze twee processors afzonderlijk bekijken.

De CPU (Central Processing Unit of Central Processing Unit) wordt vaak het ‘brein’ van de computer genoemd. In de centrale processor bevinden zich ongeveer een miljoen transistors, met behulp waarvan verschillende berekeningen worden uitgevoerd. Thuiscomputers hebben doorgaans processors met 1 tot 4 kernen met kloksnelheden van ongeveer 1 GHz tot 4 GHz.

De processor is krachtig omdat hij alles kan. Een computer kan een taak uitvoeren omdat de processor die taak kan uitvoeren. Programmeurs hebben dit kunnen bereiken dankzij de brede instructiesets en enorme lijsten met functies die in moderne centrale verwerkingseenheden worden gedeeld.

Wat is GPU?

Een GPU (Graphics Processing Unit) is een gespecialiseerd type microprocessor die is geoptimaliseerd voor zeer specifieke computer- en grafische weergave. Een GPU draait op een lagere kloksnelheid dan een CPU, maar heeft veel meer verwerkingskernen.

Je kunt ook zeggen dat een GPU een gespecialiseerde CPU is die voor één specifiek doel is gemaakt: videoweergave. Tijdens het renderen voert de GPU een groot aantal eenvoudige wiskundige berekeningen uit. De GPU heeft duizenden kernen die tegelijkertijd kunnen draaien. Hoewel elke GPU-kern langzamer is dan de CPU-kern, is deze nog steeds efficiënter voor het uitvoeren van eenvoudige taken. wiskundige berekeningen nodig om afbeeldingen weer te geven. Dit enorme parallellisme zorgt ervoor dat de GPU de complexe 3D-graphics kan weergeven die moderne games nodig hebben.

Verschil tussen CPU en GPU

De GPU kan slechts een fractie van de dingen die een CPU kan, maar doet dit met ongelooflijke snelheden. De GPU zal honderden cores gebruiken om dringende berekeningen uit te voeren op duizenden pixels terwijl complexe 3D-graphics worden weergegeven. Maar om te bereiken hoge snelheden De GPU moet monotone bewerkingen uitvoeren.

Laten we een voorbeeld nemen Nvidia GTX 1080. Deze videokaart heeft 2560 shader cores. Dankzij deze kernen kan de Nvidia GTX 1080 2.560 instructies of bewerkingen in één klokcyclus uitvoeren. Als je het beeld 1% helderder wilt maken, kan de GPU dat zonder veel moeite aan. Maar de quad-core Intel Core i5 centrale processor kan slechts vier instructies in één klokcyclus uitvoeren.

CPU's zijn echter flexibeler dan GPU's. Centrale verwerkingseenheden hebben een grotere instructieset waardoor ze meer kunnen presteren breed bereik functies. Ook CPU's werken op een hoger maximum kloksnelheden en de mogelijkheid hebben om de invoer en uitvoer van computercomponenten te controleren. Zo kan de centrale verwerkingseenheid geïntegreerd worden virtueel geheugen, wat nodig is om een ​​modern besturingssysteem. Dit is precies wat de GPU niet kan.

GPU-computergebruik

Hoewel GPU's zijn ontworpen voor weergave, zijn ze tot meer in staat. Grafische verwerking is slechts een soort repetitieve parallelle berekening. Andere taken zoals Bitcoin-mijnbouw en het kraken van wachtwoorden zijn afhankelijk van dezelfde soorten enorme datasets en eenvoudige wiskundige berekeningen. Dit is de reden waarom sommige gebruikers videokaarten gebruiken voor niet-grafische bewerkingen. Dit fenomeen wordt GPU Computation of GPU computing genoemd.

Conclusies

In dit artikel hebben we CPU en GPU vergeleken. Ik denk dat het voor iedereen duidelijk is geworden dat GPU's en CPU's vergelijkbare doelen hebben, maar zijn geoptimaliseerd voor verschillende berekeningen. Schrijf je mening in de reacties, ik zal proberen te antwoorden.

Hoofdchip aan moederbord– dit is de centrale processor (CPU – Central Processor Unit). Centraal omdat het alle andere subsystemen bestuurt met behulp van het bussysteem en de chipset.

Het subsysteem dat de visualisatie en weergave van informatie op het scherm regelt, wordt een videosysteem genoemd. Het is geïntegreerd in het moederbord via een slot in de vorm van een videokaart. Een videokaart is een technische oplossing en is een bord met een eigen processor (dus GPU) en RAM.

GPU NVidia Nv45 op videokaart

De processor op de videokaart wordt GPU (Graphic Processor Unit) genoemd om de nadruk te leggen op:

  1. Wat is deze processor?
  2. Dat het niet centraal staat, dat wil zeggen ondergeschikt is aan de CPU.
  3. Dat het gericht is op het verwerken van speciale gegevens - grafische afbeeldingen.

GPU-locatie op het moederbord

Omdat grafische verwerking een specialisatie is in gegevensverwerking, is een GPU een gespecialiseerde CPU. Logischerwijs wordt specialisatie uitgedrukt door de scheiding van de GPU en de CPU, fysiek door het feit dat de GPU anders is ontworpen.

CPU bevat tientallen cores, GPU - duizenden

Deze fysieke implementatie van de GPU wordt gerechtvaardigd door de noodzaak om duizenden te verwerken parallelle taken, gerelateerd aan weergave. De centrale processor is gericht op gegevensverwerking: lange en opeenvolgende taken.

Een moderne CPU (CPU) kan een grafische verwerkingseenheid bevatten.

Quad-coreprocessor met extra grafische kern GPU

Met deze oplossing kan de computer het zonder videokaart doen dankzij de GPU die in de centrale processor is ingebouwd. Dit vermindert het energieverbruik met 30 tot 180%. De kosten van de processor stijgen met niet meer dan 20%.

Het grootste nadeel van deze implementatie is lage prestaties. Deze oplossing is geschikt voor kantoorcomputers, waar ze werken met documenten en databases, maar dan modern computerspel U kunt het niet uitvoeren, Photoshop wordt langzamer en AutoCAD loopt mogelijk vast.

Hoe de GPU op een computer te achterhalen

Voor de gebruiker wordt de GPU sterk geassocieerd met een videokaart, al is het slechts een processor. Weet welke grafische adapter geïnstalleerd op een computer is in drie gevallen nuttig:

  • bij het installeren of updaten van stuurprogramma's;
  • bij het beoordelen van een computer op conformiteit systeemvereisten software;
  • om te laten zien aan vrienden.

Als alle stuurprogramma's op uw computer zijn geïnstalleerd, kunt u het snelste in Apparaatbeheer kijken, in het gedeelte Videoadapters:

Bekijk GPU in Apparaatbeheer

Als de stuurprogramma's niet zijn geïnstalleerd, toont apparaatbeheer alleen een bericht over onbekende apparaten:

GPU in Apparaatbeheer als stuurprogramma's ontbreken

In dit geval downloaden CPU-Z-hulpprogramma, voer het uit en ga naar het tabblad “Graphics” (Graphics in de Engelse versie):

Bekijk GPU-in CPU-Z-programma

helpadmins.ru

GPU, wat is dat in een computer?

Hallo allemaal, GPU is de aanduiding van een videokaart, of beter gezegd, een grafische processor. Dit woord, dat wil zeggen, de afkorting is vaak te vinden in sommige kenmerken, bijvoorbeeld in de kenmerken Intel-processor Er bestaat zoiets als Integrated GPU, wat ingebouwde videokaart betekent. Nou, dat klopt, hij is eigenlijk ingebouwd, de videochip zit precies in de processor, dit is als het ware geen nieuws

Dat wil zeggen, we hebben al de conclusie getrokken dat de GPU een videoapparaat is. Maar wat is nog meer belangrijk om te begrijpen? Ik schreef dat de GPU terug te vinden is in de kenmerken, alles klopt, maar daarnaast is hij ook terug te vinden in programma's die de temperatuur weergeven. Ik denk dat je zulke programma's kent. Nou ja, of je weet het niet, kortom, in ieder geval zal wat ik nu ga schrijven nuttig voor je zijn om te weten. Middelen waar we het over hebben over GPU-temperatuur. Veel mensen beweren dat de videocamera bij 80 graden kan werken, maar ik vind dat dit een te hoge temperatuur is! En over het algemeen denk ik dat boven de 70 niet de norm is!

GPU staat trouwens voor Graphics Processing Unit

En hier is de grafische chip zelf, dat wil zeggen de GPU, dus ik heb deze met pijlen op het bord aangegeven:

Maar wat is dan de normale temperatuur? Tot 60 graden, nou ja, maximaal 66, nou ja, 70 graden is al het plafond... Maar daarboven denk ik dat dit niet zo goed meer is, alleen zo'n temperatuur zal de levensduur zeker niet verlengen Ben je het met mij eens? Nou ja, er is meer interessant punt Kortom, als de videokaart behoorlijk heet wordt, dan gooit hij verdomd ook zijn warmte in de behuizing, nou ja, het zal er duidelijk niet cool in zijn, en dan wordt het proces heet, kortom leuk! Houd er rekening mee dat het de TEMPERATUUR is die de levensduur van het apparaat kan verkorten! Hier op oude moederborden van hoge temperatuur ontplofte elektrolytische condensatoren.. Als je me niet gelooft, dan kun je zelf op internet zoeken..

Nou, vertel eens, was alles duidelijk voor je? Eerlijk gezegd hoop ik het! Nou, als er iets mis is, sorry!

Naar de hoofdpagina! videokaart 17-05-2017

virtmachine.ru

Wat betekent GPU?

GPU (grafische verwerkingseenheid)

GPU (graphics processing unit) is een hightech apparaat dat verantwoordelijk is voor het verwerken van grafische afbeeldingen in computers, laptops en mobiele telefoons. Moderne GPU's hebben een gespecialiseerde pijplijnarchitectuur, waardoor ze zeer efficiënt zijn in de verwerking grafische informatie vergeleken met een typische centrale processor. Kan gebruikt worden als onderdeel van discrete videokaart, en in geïntegreerde oplossingen (ingebouwd in noordelijke brug of in een hybride processor).

De belangrijkste verschillen tussen GPU en CPU:

  1. Architectuur (maximale nadruk op verwerking grafische texturen)
  2. Beperkt aantal uitvoerende teams

Hoge snelheid en kracht GPU-processors op dit moment wordt verklaard door de eigenaardigheden van de bouwarchitectuur. Als moderne CPU's uit 2-6 cores bestaan, wordt de GPU beschouwd als een multi-core structuur die tot honderden cores tegelijk gebruikt. De CPU gaat ervan uit dat de informatie sequentieel wordt verwerkt en de GPU is ontworpen voor multi-threading parallel werk met een schat aan informatie.

windows-gadjet.ru

Wat is een GPU en waar dient deze voor?

Een grafische processor of in het Engels GPU - Graphics Processing Unit - is een apparaat dat een microschakeling is, een chip die deel uitmaakt van een videoadapter (videokaart) of moederbord.

De GPU is verantwoordelijk voor het construeren (renderen) van het beeld.

Simpel gezegd kan de rol en het belang van de GPU als volgt worden omschreven:

De GPU ontvangt van de centrale verwerkingseenheid (CPU) de verwerkingsgegevens die nodig zijn om een ​​beeld te construeren, verwerkt deze vervolgens en bereidt deze voor op verdere bewerkingen, waardoor het beeldvormingsproces aanzienlijk wordt versneld en de belasting van de centrale processor wordt verminderd

De GPU is een optioneel onderdeel; zijn werk kan worden uitgevoerd door de centrale.

In tegenstelling tot de centrale processor kan de grafische processor, vanwege verschillen in architectuur (structuur, apparaat), tientallen, honderden, duizenden keren sneller verwerken bepaalde typen bewerkingen, bijvoorbeeld het verwerken van gegevens om een ​​afbeelding te construeren en meer.

De GPU kan discreet zijn, dat wil zeggen onderdeel van een videokaart gemaakt in de vorm van een uitbreidingskaart (apparaat) geïnstalleerd in de uitbreidingssleuf van het moederbord. In dit geval bevinden alle extra componenten zich op één printplaat, die kan op elk moment eenvoudig worden verwijderd of vervangen.

Of het is geïntegreerd, onderdeel van het moederbord van het apparaat zelf. In dit geval bevindt de grafische processor zich op het moederbord, alle extra componenten bevinden zich in de buurt. Gebruikt in personal computers, smartphones, spelconsoles enzovoort.

19-06-2017, 20:38 Detaillook

www.detaillook.com

NVIDIA GPU en vergelijking van GPU en CPU

Cloudcomputergebruik heeft alle industrieën radicaal veranderd, datacenters gedemocratiseerd en de manier waarop ondernemingen opereren volledig veranderd. De belangrijkste assets van het bedrijf worden nu opgeslagen in de cloud van de door u gekozen provider. Echter, uitpakken maximaal voordeel op basis van de beschikbare gegevens is een geschikte krachtige computeroplossing vereist.

NVIDIA-software Diep leren gemaakt om te voorzien maximale prestaties op 's werelds snelste GPU's en omvat geoptimaliseerde deep learning-frameworks, bibliotheken, stuurprogramma's en besturingssystemen. Deze uniforme software draait op een verscheidenheid aan computerplatforms, variërend van TITAN X grafische kaarten en GeForce GTX 1080Ti naar DGX-systemen en de cloud, en is 24/7 beschikbaar.

GPU-cloudcomputing is ook op aanvraag beschikbaar op alle grote cloudplatforms.

HOE TOEPASSINGEN GPU-VERSNELING KRIJGEN

De GPU verwerkt de delen van de applicatie die veel vereisen rekenkracht, terwijl de rest van de applicatie op de CPU draait. Vanuit het oogpunt van de gebruiker draait de applicatie simpelweg veel sneller.


Een eenvoudige manier om het verschil tussen GPU en CPU te begrijpen, is door te vergelijken hoe ze taken uitvoeren. De CPU bestaat uit verschillende kernen die daarvoor zijn geoptimaliseerd sequentiële verwerking gegevens, terwijl de GPU duizenden kleinere, energiezuinigere kernen heeft die zijn ontworpen om meerdere taken tegelijkertijd uit te voeren.

De GPU bestaat uit duizenden kernen efficiënte verwerking parallelle taken


Bekijk de onderstaande video om GPU en CPU te vergelijken

Video: "MythBusters demonstreren de kracht van GPU versus CPU-computing" (01:34)

Meer dan 400 applicaties, waaronder 9 van de top 10 HPC-applicaties, zijn al versneld op GPU's, waardoor alle GPU-gebruikers aanzienlijke prestatieverbeteringen voor hun werklasten kunnen realiseren. Bekijk onze app-catalogus om te zien of de app waarmee u werkt GPU-versneld is (PDF 1,9 MB).

Er zijn drie hoofdmethoden om GPU-versnelling aan uw toepassing toe te voegen:

  • Gebruik GPU-geoptimaliseerde bibliotheken
  • Voeg richtlijnen of "hints" toe aan de compiler om uw code automatisch te parallelliseren
  • Gebruik extensies voor programmeertalen die je al kent, zoals C en Fortran

Leren hoe u GPU's kunt gebruiken met het CUDA parallelle programmeermodel is heel eenvoudig.

Gratis online lessen en bronnen voor ontwikkelaars zijn beschikbaar in de CUDA Zone.

Grafische verwerkingseenheid (GPU) - lichtend voorbeeld hoe technologie die is ontworpen voor grafische verwerkingstaken zich heeft verspreid naar het niet-verwante gebied van high-performance computing. Moderne GPU's vormen de kern van veel complexe machine learning- en data-analyseprojecten. In ons overzichtsartikel bekijken we hoe Selectel-klanten GPU-hardware gebruiken en denken we na over de toekomst van datawetenschap en computerapparatuur met docenten van de Yandex School of Data Science.

GPU's zijn de afgelopen tien jaar veel veranderd. Naast de enorme toename van de productiviteit was er sprake van een indeling van apparaten naar soort gebruik. Zo worden videokaarten voor thuisspelsystemen en virtual reality-installaties in een aparte richting toegewezen. Er verschijnen krachtige, zeer gespecialiseerde apparaten: voor serversystemen is een van de toonaangevende versnellers de NVIDIA Tesla P100, speciaal ontworpen voor industrieel gebruik in datacentra. Naast GPU's wordt er actief onderzoek gedaan op het gebied van het creëren van een nieuw type processors die de werking van de hersenen imiteren. Een voorbeeld is het Kirin 970-platform met één chip met een eigen neuromorfe processor voor taken die verband houden met neurale netwerken en beeldherkenning.

Deze situatie doet ons nadenken over de volgende vragen:

  • Waarom is het vakgebied data-analyse en machine learning zo populair geworden?
  • Hoe GPU's de markt voor computerhardware gingen domineren intensief werk met gegevens?
  • Welk onderzoek op het gebied van data-analyse zal in de nabije toekomst het meest veelbelovend zijn?

Laten we proberen deze problemen op volgorde aan te pakken, te beginnen met de eerste eenvoudige videoprocessors en eindigend met moderne, krachtige apparaten.

GPU-tijdperk

Laten we eerst onthouden wat een GPU is. Grafische verwerkingseenheid is een grafische verwerkingseenheid die veel wordt gebruikt in desktop- en serversystemen. Een onderscheidend kenmerk van dit apparaat is de focus op massaal parallel computergebruik. In tegenstelling tot GPU's is de architectuur van een andere computermodule, de CPU (Central Processor Unit), ontworpen voor sequentiële gegevensverwerking. Als het aantal kernen in een gewone CPU in tientallen wordt gemeten, dan loopt het aantal in een GPU in de duizenden, wat beperkingen oplegt aan de soorten uitgevoerde opdrachten, maar hoge rekenprestaties biedt bij taken waarbij parallellisme betrokken is.

Eerste stappen

De ontwikkeling van videoprocessors in de vroege stadia hield nauw verband met de groeiende behoefte aan een aparte computerapparaat voor het verwerken van twee en 3D-afbeeldingen. Vóór de komst van afzonderlijke videocontrollercircuits in de jaren zeventig werd de beelduitvoer uitgevoerd via het gebruik van discrete logica, wat een effect had op het hogere stroomverbruik en de grote maten printplaten. Gespecialiseerde microschakelingen maakten het mogelijk om de ontwikkeling van apparaten die zijn ontworpen om met grafische afbeeldingen te werken in een aparte richting te scheiden.

De volgende revolutionaire gebeurtenis was de opkomst van een nieuwe klasse van meer complexe en multifunctionele apparaten- videoprocessors. In 1996 bracht 3dfx Interactive de Voodoo Graphics-chipset uit, die snel 85% van de speciale videomarkt veroverde en destijds de leider op het gebied van 3D-graphics werd. Na de serie slechte beslissingen management van het bedrijf, dat onder meer de aankoop van videokaartfabrikant STB omvatte, verloor 3dfx zijn leiderschap aan NVIDIA en ATI (later AMD), en werd in 2002 failliet verklaard.

Algemene GPU-computergebruik

In 2006 kondigde NVIDIA de productlijn uit de GeForce 8-serie aan, die een nieuwe klasse apparaten inluidde die zijn ontworpen voor computergebruik met algemene grafische verwerkingseenheden (GPGPU). Tijdens ontwikkeld door NVIDIA kwam tot het inzicht dat groter aantal Kernen die op lagere frequenties werken, zijn efficiënter voor parallelle werkbelastingen dan een klein aantal beter presterende kernen. Videoprocessors van de nieuwe generatie hebben parallelle computerondersteuning geboden, niet alleen voor het verwerken van videostreams, maar ook voor problemen die verband houden met machinaal leren, lineaire algebra, statistiek en andere wetenschappelijke of commerciële problemen.

Erkend leider

Verschillen in de initiële toewijzing van taken voor de CPU en GPU leidden tot aanzienlijke verschillen in de architectuur van de apparaten: hoge frequentie versus multi-core. Voor GPU's creëerde dit een computerpotentieel dat nu volledig wordt gerealiseerd. Videoprocessors met een indrukwekkend aantal zwakkere verwerkingskernen leveren uitstekend werk op het gebied van parallel computergebruik. De centrale processor, van oudsher ontworpen om sequentiële taken uit te voeren, blijft de beste in zijn vakgebied.

Laten we als voorbeeld de prestatiewaarden van de centrale en grafische processor vergelijken bij het uitvoeren van een veel voorkomende taak in neurale netwerken: matrixvermenigvuldiging hoge orde. We zullen de volgende apparaten selecteren om te testen:

  • CPU. Intel Xeon E5-2680 v4 - 28 threads met HyperThreading, 2,4 GHz;
  • GPU NVIDIA GTX 1080 – 2560 CUDA-kernen, 1607 MHz, 8 GB GDDR5X.

Laten we een voorbeeld gebruiken van het berekenen van matrixvermenigvuldiging op CPU en GPU in Jupyter Notebook:

In de bovenstaande code meten we de tijd die nodig was om matrices van dezelfde volgorde op de CPU of GPU te berekenen (“Execution Time”). De gegevens kunnen worden gepresenteerd in de vorm van een grafiek waarin de horizontale as de volgorde van de vermenigvuldigde matrices weergeeft, en de verticale as de uitvoeringstijd in seconden:

De oranje gemarkeerde grafieklijn toont de tijd die nodig is om gegevens in normaal RAM te creëren, deze over te brengen naar GPU-geheugen, en daaropvolgende berekeningen. De groene lijn toont de tijd die nodig is om gegevens te berekenen die al in het videokaartgeheugen zijn gegenereerd (zonder overdracht vanuit RAM). Blauw geeft de teltijd aan centrale verwerker. Matrices met een orde van minder dan 1000 elementen worden in vrijwel dezelfde tijd op de GPU en CPU vermenigvuldigd. Het prestatieverschil is duidelijk zichtbaar bij matrices groter dan 2000 in 2000, wanneer de rekentijd op de CPU naar 1 seconde springt, terwijl de GPU dicht bij nul blijft.

Complexer en praktische problemen worden efficiënter opgelost op een apparaat met GPU's dan zonder. Omdat de problemen die onze klanten oplossen met GPU-hardware zo gevarieerd zijn, hebben we besloten uit te zoeken wat de meest populaire gebruiksscenario's zijn.

Wie in Selectel leeft goed met een GPU?

De eerste optie die meteen in je opkomt en de juiste gok blijkt te zijn, is mijnbouw, maar het is interessant om op te merken dat sommigen het gebruiken als een hulpmanier om de apparatuur tot het “maximum” te laden. In het geval van het huren van een speciale server met videokaarten, wordt de tijd zonder werklast gebruikt om cryptocurrencies te minen waarvoor geen gespecialiseerde installaties (farms) nodig zijn om deze te verkrijgen.

Taken met betrekking tot grafische verwerking en weergave zijn tot op zekere hoogte al klassiek geworden en vinden steevast hun plaats op Selectel-servers met grafische versnellers. Door voor dergelijke taken hoogwaardige apparatuur te gebruiken, krijgt u een effectievere oplossing dan het organiseren van speciale werkstations met videokaarten.

Tijdens het gesprek met onze klanten ontmoetten we ook vertegenwoordigers van de Yandex School of Data Analysis, die de kracht van Selectel gebruikt om testleeromgevingen te organiseren. We besloten meer te weten te komen over wat studenten en docenten doen, welke gebieden van machinaal leren nu populair zijn en wat de toekomst voor de industrie in petto heeft zodra jonge professionals zich bij toonaangevende organisaties aansluiten of hun eigen startups lanceren.

Datawetenschap

Er is waarschijnlijk niemand onder onze lezers die de zinsnede “ neurale netwerken" of "machine learning". Als we marketingvariaties op het thema van deze woorden buiten beschouwing laten, komt het uiteindelijk neer op een opkomende en veelbelovende datawetenschap.

De moderne benadering van het werken met data omvat verschillende hoofdgebieden:

  • Grote gegevens ( Grote gegevens). Het grootste probleem op dit gebied is de enorme hoeveelheid informatie die niet op één server kan worden verwerkt. Vanuit het oogpunt van infrastructuurondersteuning is het noodzakelijk om de problemen van het creëren op te lossen clustersystemen, schaalbaarheid, fouttolerantie en gedistribueerde gegevensopslag;
  • Hulpbronintensieve taken (machine learning, diep leren en anderen). In dit geval is de kwestie van het gebruik van high-performance computing vereist grote hoeveelheid RAM- en CPU-bronnen. Bij dergelijke taken worden systemen met grafische versnellers actief gebruikt.

De grens tussen datagebieden vervaagt geleidelijk: de belangrijkste tools voor het werken met big data (Hadoop, Spark) introduceren ondersteuning voor GPU-computing, en machine learning-taken bestrijken nieuwe gebieden en vereisen grotere hoeveelheden data. Docenten en studenten van de School of Data Analysis zullen ons helpen dit in meer detail te begrijpen.

Het is moeilijk om het belang te overschatten bekwaam werk met gegevens en passende implementatie van geavanceerde analytische hulpmiddelen. We hebben het niet eens over big data, hun ‘meren’ of ‘rivieren’, maar eerder over intelligente interactie met informatie. Wat er nu gebeurt is unieke situatie: We kunnen een grote verscheidenheid aan informatie verzamelen en geavanceerde tools en diensten gebruiken voor diepgaande analyses. Bedrijven implementeren dergelijke technologieën niet alleen om geavanceerde analyses te verkrijgen, maar ook om te creëren uniek product in welke branche dan ook. Precies laatste punt vormt en stimuleert grotendeels de groei van de data-analyse-industrie.

Nieuwe richting

Informatie omringt ons overal: uit de logs van internetbedrijven en bankverrichtingen vóór metingen in experimenten bij de Large Hadron Collider. De mogelijkheid om met deze gegevens te werken kan miljoenen winst opleveren en antwoorden bieden op fundamentele vragen over de structuur van het heelal. Daarom is data-analyse een apart onderzoeksgebied geworden binnen het bedrijfsleven en de wetenschappelijke gemeenschap.

De School of Data Analysis leidt de beste gespecialiseerde specialisten en wetenschappers op die in de toekomst de belangrijkste bron van wetenschappelijke en industriële ontwikkelingen op dit gebied zullen worden. De ontwikkeling van de branche heeft ook gevolgen voor ons als infrastructuuraanbieder: steeds meer klanten vragen om serverconfiguraties voor data-analysetaken.

De specifieke taken van onze klanten bepalen welke apparatuur we aan klanten moeten aanbieden en in welke richting we deze moeten ontwikkelen productlijn. Samen met Stanislav Fedotov en Oleg Ivchenko hebben we studenten en docenten van de School of Data Analysis ondervraagd en ontdekten welke technologieën zij gebruiken om praktische problemen op te lossen.

Technologieën voor gegevensanalyse

Tijdens de training gaan studenten van de basis (hogere basiswiskunde, algoritmen en programmeren) naar de meest geavanceerde gebieden van machine learning. We hebben informatie verzameld over degenen die servers met GPU's gebruiken:

  • Diep leren;
  • Versterkend leren;
  • Computervisie;
  • Automatische tekstverwerking.

Studenten gebruiken gespecialiseerd gereedschap in hun educatieve opdrachten en onderzoek. Sommige bibliotheken zijn ontworpen om gegevens naar te converteren vereiste soort, andere zijn ontworpen om mee te werken specifiek type informatie, zoals tekst of afbeeldingen. Deep learning is een van de meest complexe gebieden in data-analyse en maakt uitgebreid gebruik van neurale netwerken. We besloten uit te zoeken welke raamwerken docenten en leerlingen gebruiken om met neurale netwerken te werken.

De gepresenteerde tools krijgen verschillende niveaus van steun van hun makers, maar worden niettemin nog steeds actief gebruikt voor educatieve en werkdoeleinden. Velen van hen hebben krachtige hardware nodig om taken binnen een adequaat tijdsbestek te verwerken.

Verdere ontwikkeling en projecten

Zoals bij elke wetenschap zal de richting van data-analyse veranderen. De ervaringen die studenten vandaag opdoen zullen ongetwijfeld toekomstige ontwikkelingen bepalen. Daarom is het vooral de moeite waard om de hoge praktische oriëntatie van het programma op te merken: sommige studenten beginnen tijdens hun studie of daarna met stages bij Yandex en passen hun kennis al toe op echte diensten en diensten (zoeken, computervisie, spraakherkenning en andere).

We spraken over de toekomst van data analytics met docenten van de School of Data Analytics, die hun visie op de ontwikkeling van data science met ons deelden.

Volgens Vlada Shakhuro, docent van de cursus “Beeld- en Videoanalyse”, de meest interessante taken in computervisie- het garanderen van de veiligheid op drukke plaatsen, het besturen van een onbemand voertuig en het creëren van een applicatie met behulp van augmented reality. Om deze problemen op te lossen, is het noodzakelijk om videogegevens kwalitatief te kunnen analyseren en in de eerste plaats algoritmen te ontwikkelen voor het detecteren en volgen van objecten, het herkennen van een persoon aan het gezicht en de driedimensionale reconstructie van de waargenomen scène. Docent Victor Lempitsky, die de cursus 'Deep Learning' leidt, belicht afzonderlijk autoencoders, evenals generatieve en vijandige netwerken in zijn gebied.

Een van de mentoren van de School of Data Analysis deelt zijn mening over de verspreiding en het begin van het massale gebruik van machine learning:

“Machine learning evolueert van een domein van een paar obsessieve onderzoekers naar een hulpmiddel voor de gemiddelde ontwikkelaar. Eerder (bijvoorbeeld in 2012) schreven mensen code op laag niveau om convolutionele netwerken op een paar videokaarten te trainen. Nu kan iedereen binnen enkele uren:

  • download de gewichten van een reeds getraind neuraal netwerk (bijvoorbeeld in keras);
  • gebruik het om een ​​oplossing te vinden voor jouw probleem (fine-tuning, zero-shot learning);
  • embed het in uw website of mobiele applicatie(tensorflow/cafe 2).

Veel grote bedrijven en startups hebben al geprofiteerd van een dergelijke strategie (bijvoorbeeld Prisma), maar er moeten nog veel meer problemen worden ontdekt en opgelost. En misschien zal dit hele machine-/deep learning-gedoe op een dag net zo gewoon worden als Python of Excel nu is.”

Niemand kan de technologie van de toekomst vandaag nauwkeurig voorspellen, maar als er een bepaalde bewegingsvector is, kun je begrijpen wat er nu bestudeerd moet worden. En de mogelijkheden daarvoor zijn binnen moderne wereld- een enorm aantal.

Mogelijkheden voor beginners

De studie van data-analyse is beperkt hoge eisen voor studenten: uitgebreide kennis op het gebied van wiskunde en algoritmen, programmeervaardigheden. Echt waar serieuze uitdagingen Machine learning vereist bestaan gespecialiseerde apparatuur. En voor degenen die meer willen leren over de theoretische component van data science, heeft de School of Data Analysis samen met de Higher School of Economics een online cursus gelanceerd “”.

In plaats van een conclusie

De groei van de GPU-markt wordt gedreven door de groeiende belangstelling voor de mogelijkheden van dergelijke apparaten. GPU wordt thuis gebruikt spelsystemen, rendering- en videoverwerkingstaken, en waar algemeen krachtig computergebruik vereist is. Praktische toepassing dataminingtaken zullen dieper in onze kennis doordringen dagelijks leven. En uitvoering soortgelijke programma's Dit wordt het meest effectief gedaan met behulp van de GPU.

Wij danken onze klanten, maar ook docenten en studenten van de School of Data Analysis voor de gezamenlijke voorbereiding van het materiaal, en we nodigen onze lezers uit om hen beter te leren kennen.

En voor degenen die ervaren en ervaren zijn op het gebied van machine learning, data-analyse en meer, raden we aan te kijken naar verhuur van Selectel serverapparatuur met grafische versnellers: van eenvoudige GTX 1080 tot Tesla P100 en K80 voor de meest veeleisende taken.