TFLOPS er et tall som titt og ofte dukker opp når nye toppskjermkort kommer ut. Men vet du hva det betyr?
Guide
TFLOPS er et tall som titt og ofte dukker opp når nye toppskjermkort kommer ut. Men vet du hva det betyr? (Bilde: Varg Aamo, Hardware.no / Bakgrunn: AMD)

Tallet som forteller hvor kraftig skjermkortet egentlig er

Du trenger aldri mer klø deg i hodet over FLOPS.

Hei, dette er en Ekstra-sak som noen har delt med deg.

Lyst til å lese mer? Få fri tilgang, ny og bedre forside og annonsefritt nettsted for kun 49,- i måneden.
Prøv én måned gratis Les mer om Tek Ekstra
Annonsør­innhold
Les hele saken »

Du har kanskje vært borti FLOPS, og avskrevet det som noe mildt uforståelig som du ikke vet hva betyr. Det er du i så fall ikke alene om. De fem bokstavene står for «floating-point operations per second», og er en måleenhet for skjermkortets ytelse som svært få PC-brukere har noe særlig forhold til.

De fleste ser i stedet på ting som FPS, altså hvor mange bilder et skjermkort kan få til å flyte over skjermen per sekund. Dette duger når man skal sammenlikne kort direkte i ett og samme spill, men det er et ganske dårlig mål på skjermkortets rent objektive ytelse. For å kunne se på musklene skjermkortene faktisk har å skilte med er det først og fremst FLOPS som gjelder, da dette er et direkte mål på hvor raskt kortet klarer å knuse seg gjennom regnestykker.

Selv om verden har kommet temmelig langt siden tiden da «computer» var yrkestittelen til folk som var flinke til å regne, er nemlig PC-ene våre den dag i dag bare veldig avanserte regnemaskiner. Hver eneste komponent mates konstant med tall, og etter å ha tygget litt på disse får du spektakulære spilleffekter, vakker lydgjengivelse eller naturtro 3D-modeller ut på din side av skjermen.

Flyttall og reelle tall

Avbildet: Veldig, veldig mange FLOPS.
Avbildet: Veldig, veldig mange FLOPS.Foto: Nvidia

Den norske oversettelsen av «floating point» er det litt trøblete «flyttall». Denne oversettelsen kan kanskje bidra til å gjøre FLOPS litt mer uforståelige for oss nordmenn enn de trenger å være. Det er nemlige ikke tallene som flyter, men kommaet – altså punktet – som de kan komme utstyrt med.

For å starte på begynnelsen må vi snakke litt kort om reelle tall; altså alle slags tallverdier som har en faktisk betydning. Reelle tall kan bestå av ett eller flere sifre, de kan komme med eller uten komma, de kan være positive eller negative, og de kan uttrykkes som brøker. Men i siste instans har de en eller annen faktisk, endelig verdi.

Når vi sier at kroppstemperaturen din er 37 grader Celsius, er 37 et reelt tall. Når man sier at omkretsen på en sirkel er diameter ganger pi, så er pi et reelt tall.

Flyttall, på den annen side, er ikke reelle tall i seg selv – de er et plassbesparende uttrykk for disse. Der du normalt vil skrive «halvannen million» som «1 500 000» er det er reelt tall som består av syv sifre, men du kunne også uttrykt dette som 1,5*106. Dette lille regnestykket er altså ikke et reelt tall i seg selv, men en måte du kan uttrykke det reelle tallet «1 500 000» på.

Hvis vi obduserer dette lille stykket har det tre bestanddeler. Den første er «1,5», som er koeffisienten i stykket (og forresten også et reelt tall). Koeffisienten skal så ganges med basen i tallsystemet vi bruker, som her er 10. 10-base er for øvrig også det som folk bruker i de fleste dagligdagse sammenhenger hvor tall er involvert. Etter basen følger eksponenten, som her skrives 6, og som er antallet ganger basen skal opphøyes.

Enn så lenge ser ikke dette helt ukjent ut, og vi har alle fått inn denne måten å skrive store tall på i løpet av grunnskolen. Metoden med å gange opp koeffisienten med basetallet opphøyd i en eksponent, kalles vitenskapelig notasjon, og flyttall fungerer i prinsippet på akkurat samme måte.

La kommaet flyte

En av de spesielle tingene med flyttall er at kommaet, som i eksempelet ovenfor, kan flyte frem og tilbake. Dette er svært nyttig i maskinelle utregninger, og særlig når vi begynner å få litt mer innviklede tall som skal uttrykkes. 1 234 567 vil kunne uttrykkes 1,234567*106, men du kan også skrive det som 12,34567*105 eller 12345,67*102. Dette er jo fortsatt helt forståelig, men så kommer det en liten uortodoks regel inn som mange ikke er så kjent med.

Siden innmaten i en datamaskin fungerer som ett helhetlig system, er det nemlig ett rådende regelverk som gjelder for alle utregninger. Dersom man for eksempel opererer i et 10-basesystem, slik som i eksemplene ovenfor, vil det være implisitt for maskinen at alle disse tallene med flyttbare komma skal ganges med 10 før de opphøyes i noe annet. Dermed kan man droppe hele 10-tallet, og bare skrive 1,234567*6, så og si, og da har man plutselig spart litt mer plass.

For ordens skyld skal det nå påpekes at datamaskiner fungerer med binære tallsystemer, som vil si at de stort sett opererer med et 2-basesystem. Prinsippet er imidlertid like gyldig der.

Forskjellige presisjoner

Selv GeForce GTX Titan Z har en begrenset mengde minne å leke med.
Selv GeForce GTX Titan Z har en begrenset mengde minne å leke med.Foto: Nvidia

Årsaken til at man trenger å spare plass ved hjelp av slike matematiske krumspring er veldig enkel: Minne er en fryktelig begrenset ressurs for datamaskiner. Selv med dagens turbokraftige maskiner vil man gjerne ha så mye minne tilgjengelig som mulig, og da er FLOPS veldig hendig. Du trenger nemlig ikke okkupere mer enn 4 bytes av maskinens minne for å lagre helt enormt innfløkte flyttall med det noen kaller FP32, men som oftest omtales som enkel presisjon.

Slik fungerer det:

4 bytes består av 32 bits. Én bit brukes for å lagre tallets fortegn, altså om det er snakk om et positivt eller negativt tall. 23 bits brukes for å lagre stykkets koeffisient. De siste åtte bits går med til å lagre eksponenten, som dermed kan dekke et spenn på 256 forskjellige verdier – så du kan for eksempel opphøye basen som koeffisienten i stykket skal ganges med, med 128, eller med -127.

Alt dette munner ut i muligheten til å skrive desimaltall – altså de vi bruker i det daglige – med et sted mellom seks og ni signifikante sifre innenfor disse fire små bytene. Likevel er det en ulempe ved flyttall, og det er at de fort kan bli litt upresise. Har du flere sifre i det reelle tallet enn du kan få uttrykt med enkeltpresisjon, vil disse rett og slett ikke bli telt med.

Noe kan falle utenfor

For å gi et konkret eksempel kan vi ta det reelle tallet «100 000 000». Dette er ni sifre, som gir oss en verdi på hundre millioner. Dersom du ved hjelp av flyttall med enkel presisjon prøver å legge til «0,3», vil det ikke skje noe som helst, siden «100 000 000,3» er ti sifre – ett mer enn den øverste grensen for hva enkel presisjon kan håndtere.

Mattestykket vil for datamaskinen se slik ut: «100 000 000 + 0,3 = 100 000 000». Dette kan kanskje se ut som en uskyldig og grei avrunding å gjøre, men når du gjentar denne operasjonen ti millioner ganger på rad – noe datamaskiner får gjort på et blunk – så vil du ende med et dramatisk feil svar. Der du skulle hatt «103 000 000» sitter du fortsatt bare med de opprinnelige hundre millionene, fordi dette siste, tiende sifferet du har prøvd å legge til har blitt forkastet hver eneste gang.

Så vil nok noen observante lesere påpeke at med 4 bytes, altså 32 bits, vil man kunne lagre veldig mye større reelle tall enn du får med bare ni sifre. På én bit kan du nemlig lagre verdier mellom 0 og 1, på to bit får du også plass til 2 og 3, mens du med en binær tallrekke på 32 bits kan ta for deg alle verdier opp til 4,3 milliarder – altså drøyt fire ganger så mye som den éne milliarden verdier du i utgangspunktet kan få uttrykt med ni sifre.

Da er det viktig å huske på at med bare en ren binær rekke 0-er og 1-ere vil du ikke kunne si noe om fortegnet, og du vil heller ikke kunne kjøre på med noen komma. Eksponenter blir også vanskelige å få plass til. Hver eneste 4-bytes klump med flyttall rommer altså ikke bare inntil disse maksimalt ni sifrene, men også informasjon om hvor et komma skal plasseres – takket være slike muligheter som å ha eksponenter med negative fortegn – og i praksis dermed et utall forskjellige delverdier innimellom hvert hele tall.

Enkel presisjon er ofte godt nok

Både AMD og Nvidia har i årevis konkurrert om å gi deg flest FLOPS.
Både AMD og Nvidia har i årevis konkurrert om å gi deg flest FLOPS.Foto: Varg Aamo, Hardware.no

Problemet med at regnestykket kan bli litt upresist er dessuten ganske ubetydelig for de fleste dagligdagse formål. Til for eksempel spillgrafikk, hvor man gjerne vil regne ut slikt som hvor mye lys som skal reflekteres fra en overflate, holder de seks til ni sifrene man får fra enkel presisjon i lange baner. Et lite eksempel kan vise dette godt:

La oss si at du har en virtuell lampe i et spill. Denne skal ha en lysstyrke på 100, som reduseres med en tredjedel for hver tiende meter du kommer unna selve lampen. Enkle flyttalloperasjoner, altså FLOPS, vil kunne lagre en verdi for lysstyrken i hver eneste kubikkcentimeter i det virtuelle rommet; og om du har tre eller tretti desimalplasser etter kommaet spiller ingen praktisk rolle i det hele tatt. Spilleren vil ikke merke forskjell uansett om lyset på spillkarakteren skinner med en styrke på 17,00000005 eller bare 17. Da er det mye viktigere at lyset faktisk glir mykt og glatt, noe som krever at datamaskinen kan regne ut alle flyttall-verdiene kjemperaskt – altså at skjermkortet klarer å utføre mange nok FLOPS.

Når man kommer over i ingeniørkunstens eller forskningens verden, blir dog kravene til nøyaktighet langt høyere. Da går det fint an å øke presisjonen, ved å bruke det som kalles flyttalloperasjoner med dobbel presisjon, eller tidvis FP64. Dette går ut på å doble antallet bits man benytter i minnet, noe som også omtrent dobler antallet signifikante desimaltall man kan lagre – til et sted mellom 15 og 17 sifre.

Med dobbel presisjon benytter man fortsatt bare én bit til å lagre fortegnet, men eksponenten får nå boltre seg på 11 bits, altså tre flere enn med enkel presisjon. Koeffisienten får dessuten 52 bits til disposisjon, mot 23 med enkel presisjon. Vanlige skjermkort til forbrukere er imidlertid som regel låst til kun å levere godsakene med enkel presisjon.

Ytelsen stuper med høyere nøyaktighet

Den store ulempen ved å benytte et høyere presisjonsnivå er, ved siden av at det rent praktisk koster mer minne, er at utregningene tar mye lengre tid. Da Nvidia lanserte en oppgradert versjon av sine beste regnekort i fjor høst ble dette oppgitt til å evne 1,43 TFLOPS – altså billioner flyttalloperasjoner per sekund – med dobbel presisjon. Til sammenlikning kunne det klare 4,29 TFLOPS med enkel presisjon. Hastigheten er med andre ord tre ganger så høy når presisjonsnivået halveres, og det er altså på en proffmodell til bedriftsmarkedet.

Det noe mer lommebokvennlige, «halvprofesjonelle» GeForce GTX Titan Black kom ut tidligere i år, og skal klare å levere hele 5,1 TFLOPS med enkel presisjon. Setter du dette skjermkortet over til å jobbe med dobbel presisjon faller ytelsen til bare 1,3 TFLOPS.

For balansens skyld må også erkerivalen AMD nevnes: Deres heftigste modell for tiden yter hele 11,5 TFLOPS med enkel presisjon; men som med de fleste skjermkort som ikke er tiltenkt proffbruk sies det ikke stort om ytelse ved dobbel presisjon. Slikt overlater nemlig AMD til sine FirePro-grafikkort, som du blant annet finner i Apple Mac Pro.

Et mål på ren regnekraft

På samme vis som man kan doble presisjonen ved å bruke 64 bits, er kvadruppel presisjon også mulig å få til. Dette er nokså lite utbredt i dag på grunn av de langt høyere båndbredde- og minnekostnadene det medfører, men det kan komme til å endre seg siden teknikken blir stadig bedre. Det ser vi jo også på den andre enden av skalaen, hvor det går an å bruke 16-bits halv presisjon, men dette var vanligere før i tiden da datamaskinene var svakere.

Men uansett hvilket presisjonsnivå man legger seg på er FLOPS et rent og godt mål på hvor store muskler en PC-komponent har til rådighet. Det kan brukes på andre deler enn skjermkort også, men disse er langt på vei de enkeltstående delene som leverer flest FLOPS i dag.

FLOPS er dessuten mer direkte sammenliknbart mellom individuelle skjermkort enn mange andre måter å måle på, hvis det man er interessert i er den teoretiske evnen kortet har til å levere grafiske festfyrverkerier – eller man skal bruke kortet til forskjellige typer tallknusing. Men i praksis spiller også ting som drivere, temperaturer og overklokking en rolle.

Til helt vanlig spillbruk holder derfor vanlige spilltester i lange baner:
Vi har stortestet en rekke eldre kort våre for å se hva du tjener på en oppgradering »

Norges beste mobilabonnement

Sommer 2019

Kåret av Tek-redaksjonen

Jeg bruker lite data:

Sponz 1 GB


Jeg bruker middels mye data:

GE Mobil Leve 6 GB


Jeg bruker mye data:

Chili 25 GB


Jeg er superbruker:

Chili Fri Data


Finn billigste abonnement i vår mobilkalkulator

Til toppen