GPU - wat betekent het? GPU-snelheid wat is het?

CPU en GPU lijken erg op elkaar. Ze zijn allebei gemaakt van miljoenen transistors, die duizenden bewerkingen per seconde kunnen uitvoeren en die vatbaar zijn voor . Maar wat is het verschil tussen CPU en GPU?

Wat is CPU?

CPU (Central Processing Unit) is de centrale verwerkingseenheid, met andere woorden, het ‘brein’ van de computer. Het is een verzameling van enkele miljoenen transistors die complexe berekeningen kunnen uitvoeren. Een standaardprocessor heeft één tot vier kernen met kloksnelheden variërend van 1 tot 4 GHz, hoewel recentelijk.

De CPU is een redelijk krachtig apparaat dat elke taak op een computer kan uitvoeren. Het aantal kernen en de kloksnelheid van de CPU zijn enkele van de belangrijkste

Wat is GPU?

GPU (Graphics Processing Unit) is een gespecialiseerd type microprocessor dat is geoptimaliseerd voor het weergeven van afbeeldingen en het oplossen van specifieke problemen. De kloksnelheid van een GPU is aanzienlijk lager dan die van een CPU, maar heeft meestal meer cores.

Wat is het verschil tussen CPU en GPU?

De GPU kan slechts een fractie van de vele bewerkingen van de CPU uitvoeren, maar doet dit met een ongelooflijke snelheid. De GPU gebruikt honderden kernen om realtime berekeningen uit te voeren om duizenden pixels op een monitor weer te geven. Hierdoor kunnen complexe game-graphics vloeiend worden weergegeven.

CPU's zijn echter flexibeler dan GPU's. Centrale verwerkingseenheden hebben een grotere set instructies, waardoor ze een breder scala aan taken kunnen uitvoeren. CPU's werken op hogere maximale frequenties en kunnen de invoer en uitvoer van alle computercomponenten regelen. CPU's kunnen werken met virtueel geheugen, wat nodig is voor moderne besturingssystemen, maar GPU's niet.

Een beetje over GPU-computing

Hoewel GPU's het beste zijn voor videoweergave, zijn ze technisch gezien tot meer in staat. Grafische verwerking is slechts één soort repetitieve en zeer parallelle taak. Andere taken, zoals Bitcoin-mining of het kraken van wachtwoorden, zijn afhankelijk van dezelfde soorten grote datasets en wiskundige bewerkingen. Dit is de reden waarom veel mensen GPU's gebruiken voor 'niet-grafische' doeleinden.

Kortom

CPU's en GPU's hebben vergelijkbare doelen, maar zijn geoptimaliseerd voor verschillende computertaken. Dit is het verschil tussen CPU en GPU. Om goed en efficiënt te kunnen werken, moet een computer over beide soorten microprocessors beschikken.

Goede dag voor iedereen, mijn lieve vrienden en gasten van mijn blog. Vandaag wil ik het graag hebben over de hardware van onze computers. Vertel me alsjeblieft, heb je gehoord van zoiets als een GPU? Het blijkt dat veel mensen zo'n afkorting voor het eerst horen.

Hoe triviaal het ook mag klinken, tegenwoordig leven we in het tijdperk van computertechnologie, en soms is het moeilijk om iemand te vinden die geen idee heeft hoe een computer werkt. Het is dus bijvoorbeeld voldoende dat iemand zich realiseert dat de computer werkt dankzij de centrale verwerkingseenheid (CPU).

Iemand zal verder gaan en ontdekken dat er ook een bepaalde GPU is. Zo'n ingewikkelde afkorting, maar vergelijkbaar met de vorige. Laten we dus eens kijken wat een GPU in een computer is, hoe ze zijn en welke verschillen deze heeft met de CPU.

Weinig verschil

In eenvoudige bewoordingen is GPU een grafische verwerkingseenheid, soms wordt het een videokaart genoemd, wat gedeeltelijk een vergissing is. Een videokaart is een kant-en-klaar componentapparaat, inclusief de processor die we beschrijven. Het kan opdrachten verwerken om driedimensionale afbeeldingen te genereren. Het is vermeldenswaard dat dit hiervoor een sleutelelement is; de prestaties en verschillende mogelijkheden van het videosysteem als geheel zijn afhankelijk van de kracht ervan.

De GPU heeft zijn eigen onderscheidende kenmerken vergeleken met zijn CPU-tegenhanger. Het belangrijkste verschil ligt in de architectuur waarop het is gebouwd. De GPU-architectuur is zo ontworpen dat je grote hoeveelheden data efficiënter verwerkt. De CPU verwerkt op zijn beurt gegevens en taken opeenvolgend. Uiteraard moet deze functie niet als een minpunt worden opgevat.

Soorten GPU's

Er zijn niet veel soorten grafische processors, een daarvan wordt discreet genoemd en wordt op afzonderlijke modules gebruikt. Zo'n chip is behoorlijk krachtig, dus er is een koelsysteem van radiatoren voor nodig, koelers kunnen bijzonder belast worden; er kan vloeistofkoeling worden gebruikt.

Tegenwoordig kunnen we een belangrijke stap waarnemen in de ontwikkeling van grafische componenten, dit komt door de opkomst van een groot aantal soorten GPU's. Als voorheen een computer moest worden uitgerust met afzonderlijke grafische afbeeldingen om toegang te krijgen tot games of andere grafische applicaties, kan deze taak nu worden uitgevoerd door de IGP - geïntegreerde grafische processor.

Bijna elke computer (met uitzondering van servers), of het nu een laptop of een desktopcomputer is, is nu uitgerust met geïntegreerde grafische afbeeldingen. De videoprocessor zelf is ingebouwd in de CPU, wat het stroomverbruik en de prijs van het apparaat zelf aanzienlijk kan verminderen. Bovendien kunnen dergelijke afbeeldingen van andere subtypen zijn, bijvoorbeeld: discreet of hybride-discreet.

De eerste optie betreft de duurste oplossing: solderen op het moederbord of een aparte mobiele module. De tweede optie wordt niet voor niets hybride genoemd; het gebruikt in feite een klein videogeheugen, dat op het bord is gesoldeerd, maar het tegelijkertijd kan uitbreiden met behulp van RAM.

Dergelijke grafische oplossingen kunnen uiteraard niet concurreren met volwaardige discrete videokaarten, maar ze laten al behoorlijk goede prestaties zien. In ieder geval hebben ontwikkelaars ruimte om te streven; misschien is deze oplossing de toekomst.

Nou, dat is waarschijnlijk alles wat ik heb. Ik hoop dat je het artikel leuk vond! Ik kijk ernaar uit je weer te zien op mijn blog. Veel geluk voor jou. Tot ziens!

Grafische verwerkingseenheden (GPU's) zijn een goed voorbeeld van hoe een 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 accelerators de NVIDIA Tesla P100, speciaal ontworpen voor industrieel gebruik in datacenters. Naast GPU's wordt er actief onderzoek gedaan op het gebied van het creëren van een nieuw type processor dat de werking van de hersenen nabootst. 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 zijn GPU's de data-intensieve hardwaremarkt gaan domineren?
  • 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. Graphics Processing Unit 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 afzonderlijk computerapparaat voor het verwerken van twee- en driedimensionale grafische afbeeldingen. Vóór de komst van afzonderlijke videocontrollercircuits in de jaren '70 werd de beelduitvoer uitgevoerd door het gebruik van discrete logica, wat een invloed had op het hogere stroomverbruik en de grote 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 complexere 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 een reeks mislukte beslissingen van het management van het bedrijf, waaronder de aankoop van videokaartfabrikant STB, 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 de ontwikkeling kwam NVIDIA tot het inzicht dat een groter aantal cores die op lagere frequenties werken efficiënter zijn voor parallelle werkbelastingen dan een klein aantal beter presterende cores. 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: het vermenigvuldigen van matrices van 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 het reguliere RAM-geheugen te creëren, deze naar het GPU-geheugen over te brengen en deze vervolgens te berekenen. 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 op de CPU weer. 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.

Complexere en praktische problemen kunnen efficiënter worden 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 uitdrukking ‘neurale netwerken’ of ‘machine learning’ niet heeft gehoord. 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. 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 van clustersystemen, schaalbaarheid, fouttolerantie en gedistribueerde gegevensopslag op te lossen;
  • Hulpbronintensieve taken (machine learning, deep learning en andere). In dit geval wordt de kwestie van het gebruik van high-performance computing, waarvoor een grote hoeveelheid RAM- en processorbronnen nodig zijn, aan de orde gesteld. 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 belang van competent werken met data en de juiste implementatie van geavanceerde analytische hulpmiddelen kan moeilijk worden overschat. We hebben het niet eens over big data, hun ‘meren’ of ‘rivieren’, maar eerder over intelligente interactie met informatie. Wat er nu gebeurt is een 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 een ​​uniek product in elke branche te creëren. Het is dit laatste punt dat de groei van de data-analyse-industrie grotendeels vormgeeft en stimuleert.

Nieuwe richting

Informatie omringt ons overal: van logboeken van internetbedrijven en banktransacties tot 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 onze productlijn moeten ontwikkelen. 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 gespecialiseerde hulpmiddelen bij hun onderwijsopdrachten en onderzoek. Sommige bibliotheken zijn ontworpen om gegevens terug te brengen tot de vereiste vorm, andere zijn ontworpen om met een specifiek type informatie te werken, 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 stage te lopen bij Yandex en passen hun kennis toe op echte 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’, zijn de interessantste taken in computer vision het waarborgen 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);
  • sluit het in uw website of mobiele applicatie in (tensorflow / caffe 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 daar zijn in de moderne wereld veel mogelijkheden voor.

Mogelijkheden voor beginners

De studie van data-analyse wordt beperkt door hoge eisen aan studenten: uitgebreide kennis van wiskunde en algoritmen, programmeervaardigheden. Echt serieuze machine learning-taken vereisen al 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's worden gebruikt in thuisspelsystemen, rendering- en videoverwerkingstaken, en waar algemeen krachtig computergebruik vereist is. De praktische toepassing van dataminingtaken zal steeds dieper in ons dagelijks leven doordringen. En de uitvoering van dergelijke programma's gebeurt het meest efficiënt 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 geavanceerd zijn op het gebied van machine learning, data-analyse en meer, bieden wij Selectel aan om te kijken naar het huren van serverapparatuur met grafische versnellers: van eenvoudige GTX 1080 tot Tesla P100 en K80 voor de meest veeleisende taken.

Een Duitse onderzoeker naar het gebruik van GPU-computing in de econofysica en statistische natuurkunde, onder meer voor het analyseren van informatie op 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, met name hiervoor gebruiken ze 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 de handelsactiviteiten kunnen versnellen. 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, een multi-threaded instructiemodule en 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 getoond door een “gewone” 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 technische analyses 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” ). Aan elk van de 2 ^ N mogelijke spin-arrangementen (waarbij N het aantal roosteratomen is) wordt energie toegewezen die voortvloeit uit de paarsgewijze interactie van de spins van naburige atomen. Vervolgens wordt voor een gegeven temperatuur de Gibbs-verdeling in beschouwing genomen - het gedrag ervan wordt in beschouwing genomen voor een groot aantal atomen N.

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. Om het Ising-model en de simulatie te implementeren, wordt de Monte Carlo-methode gebruikt, waarmee u een wiskundig model kunt bouwen voor een project met onzekere parameterwaarden.

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

Er zijn implementaties van het Ising-model met verschillende aantallen spins tijdens de analyse. 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-simulatie van het Ising-model geven de resultaten aan dat de prestaties vrijwel lineair verbeteren naarmate er meer GPU's worden toegevoegd.

Conclusie

Experimenten tonen aan dat het gebruik van GPU's kan leiden tot aanzienlijke verbeteringen in de prestaties van financiële analyses. 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.