GPU voor ML-onderzoek · Crypto-betaling zonder KYC
IteraGPU
Methode 02 · Kwaliteit, meting en kosten

Welke GPU kost het minst voor hetzelfde ML-resultaat?

Vergelijk eerst resultaten die aan dezelfde kwaliteitseis voldoen, en daarna het budget dat nodig is om ze binnen je planning te behalen. Een hogere doorvoer is niet voldoende: het corpus moet compleet zijn, de uitvoer acceptabel en de export afgerond. Dit dossier biedt een inferentieprotocol, een blanco resultatenblad en een forfaitberekening; het publiceert geen ranglijst van GPU-prestaties.

01 /

Bepalen wat als een geaccepteerd resultaat geldt

Schrijf de beslissing op vóór de tests: “Welke configuratie verwerkt al mijn documenten, respecteert mijn minimale kwaliteit en is klaar vóór mijn deadline, voor het laagste vastgelegde budget?” Leg het scenario vast: hier een corpus dat offline wordt verwerkt. Een interactieve toepassing zou ook de aankomst van verzoeken, hun gelijktijdigheid en de aanvaardbare latentie moeten definiëren; de rangschikking volgt niet uit deze enkele test.

Noem een volledige set uitvoer die al je controles doorstaat een gevalideerd corpus. Een aangemaakt bestand is nog geen geaccepteerd resultaat. Controleer de identifiers, het formaat, de dekking en een metriek die aansluit bij je gebruik. Noteer de drempel en de tolerantie ten opzichte van een referentie voordat je naar de tijden kijkt. Twee configuraties kunnen zo gelijkwaardig zijn voor de beslissing zonder bit voor bit identieke getallen te produceren.

Deze scheiding tussen dataset, kwaliteitsdoel en scenario bestaat ook in de principes van MLPerf Inference. Het onderstaande protocol is onze werkwijze die je op je project kunt aanpassen; het vormt geen MLPerf-uitvoering en geen MLPerf-certificering.

Technische bronnen: MLCommons — scenario's, metrieken en kwaliteitsdoelen

02 /

De invoer, de referentie en het manifest voorbereiden

Je hebt een corpus nodig dat je mag gebruiken, referentieantwoorden of een evaluatieprocedure, de inferentiecode en een omgeving die het gekozen model kan uitvoeren. Houd de gegevens waarmee je de configuratie instelt gescheiden van het definitieve vergelijkingscorpus. Als je de drempels aanpast nadat je dat laatste hebt gezien, voorzie dan een nieuwe onafhankelijke evaluatie om de conclusie te onderbouwen.

Geef elke invoer een stabiele identifier. Bewaar een vingerafdruk van het corpus, de verwerkingsorde, de revisie van het model en de tokenizer, de versies van de code en de afhankelijkheden. Het manifest beschrijft ook de gebruikte GPU's, precisie, kwantisatie, compilatie, attention-backend, padding-beleid en maximale lengte. Een andere afkapping zou het werk dat je vergelijkt veranderen.

Noteer de daadwerkelijk aanwezige driver en backend. Controleer voor een AMD-variant de combinatie van systeem, GPU, ROCm en framework in de officiële matrix. Een geraadpleegde documentatie of de naam van een kaart bewijst niet dat die omgeving is geïnstalleerd. Als de softwarestacks tussen twee proeven verschillen, heeft de conclusie betrekking op de volledige geteste configuraties.

Technische bronnen: AMD — compatibiliteitsmatrix voor ROCm

03 /

Voorbeeld: dezelfde 1.000 teksten classificeren

Hier is een experiment om met je eigen data op te zetten, zonder verondersteld prestatieresultaat. Je wilt 1.000 teksten in de categorieën van je project classificeren. Reserveer 600 korte invoeren, 300 middelgrote en 100 lange; bepaal de grenzen met de gekozen tokenizer en houd een representatieve verdeling van de klassen aan. Deze opsplitsing is een voorbeeldprotocol, geen aangeleverd corpus en geen universele aanbeveling voor verhoudingen.

Vergelijk batches van 1, 4 en 8 met hetzelfde model, dezelfde precisie, dezelfde volgorde en dezelfde padding-regel. De enige variabele in deze eerste reeks is de batch. Een tweede reeks kan de precisie of de hardware wijzigen, terwijl de andere keuzes expliciet vast blijven. Groeperen op lengte is een nieuwe variant die je moet aangeven, want het verandert de organisatie van het werk.

Exporteer voor elke passage de 1.000 voorspellingen met hun identificatoren. De controle moet exact de verwachte identificatoren terugvinden, zonder duplicaat of weglating. Bewaar de foutieve voorspellingen: ze dienen voor de kwaliteitsberekening. Het verwijderen van de moeilijke voorbeelden zou de score kunstmatig verbeteren en het werkelijk verwerkte corpus verkleinen.

Kwaliteitscontract om in te vullen vóór de eerste meting
ControleRegel van het voorbeeldVast te leggen beslissing
DekkingDe 1.000 verwachte identificatoren komen exact één keer voorElke ontbrekende of dubbele identificator maakt het corpus ongeldig
FormaatEén toegestane klasse per tekst; eindige numerieke waarden indien geëxporteerdSchema en toegestane klassen
Algemene kwaliteitEén hoofddmetriek, bijvoorbeeld macro-F1Minimale drempel en tolerantie ten opzichte van de referentie
Belangrijke gevallenVerificatie van de voor het project kritieke klassen of lengtesSubgroepen en vooraf vastgelegde criteria
DeadlineVoorspellingen geëvalueerd en bestanden opgehaald vóór de deadlineEinddatum, tijd en tijdzone
04 /

Opstarten, opwarmen en gemeten passage scheiden

Noteer het benodigde downloaden, installeren, laden en compileren apart van de gestabiliseerde verwerking. Ze kunnen worden uitgesloten van de stopwatch van een passage, terwijl ze toch een deel van de huur innemen. Leg een identieke opwarmregel vast voor alle varianten: gedekte invoeren, aantal passages en behandeling van hercompilaties. Pas deze regel niet aan nadat je hebt gezien welke variant ervan profiteert.

Bepaal de grenzen van de hoofdtijd. Meet voor dit offline voorbeeld het lezen van het corpus, de tokenisatie, de overdrachten, de inferentie en het materialiseren van de voorspellingen op de host. Meet daarna de evaluatie en het wegschrijven van de deliverables apart om de volledige campagne vast te stellen. Een duur die beperkt blijft tot de GPU-berekening is niet direct te vergelijken met deze verwerkingstijd.

CUDA-bewerkingen zijn asynchroon: een host-stopwatch moet wachten op het einde van de voorafgaande bewerkingen vóór zijn start en op dat van het gemeten werk vóór zijn stop. CUDA-events zijn geschikt voor een correct afgebakende GPU-scope. Voor een geïsoleerde bewerking ondersteunt torch.utils.benchmark.Timer het opwarmen en synchroniseren. Houd dezelfde meetgrenzen aan tussen varianten.

Technische bronnen: PyTorch 2.14 — asynchrone CUDA-uitvoering · PyTorch — meten met torch.utils.benchmark

05 /

Herhalen en mislukkingen bewaren

Voorzie vijf volledige passages per variant voor deze eerste vergelijking. Wissel hun volgorde af, bijvoorbeeld 1–4–8 dan 4–8–1 dan 8–1–4, zodat niet altijd dezelfde variant eerst komt. Handhaaf het beleid voor processen, caches en opwarmen. Deze vijf passages beschrijven je kleine reeks; ze bewijzen op zichzelf niet de stabiliteit over een lange periode.

Een rij in de ruwe tabel vertegenwoordigt één geprobeerde passage, inclusief een afbreking. Ze verbindt de variant en het corpus met de parameters, de duur en het kwaliteitsoordeel. De velden expected_ids en observed_ids leggen de aantallen entries vast; ids_match bevestigt de gelijkheid van de verzamelingen, gecontroleerd in de afzonderlijk bewaarde voorspellingsbestanden. corpus_accepted bevat het oordeel over de passage. Noteer de fouten en het pad van de uitvoer in notes. Als een meting ontbreekt, laat je de cel leeg en geef je aan waarom. Het ontbreken van een GPU is geen meting van nul seconden of nul bytes.

Als batch 8 bij lange inputs het geheugen overschrijdt, behoud dan de mislukte rij en het aantal voltooide entries. Vervang deze passage niet stilzwijgend door een kleinere batch. De herstartinstelling wordt een aparte variant; de tijd en het aantal pogingen horen bij de balans. Een onderbreking of een formaatfout is nooit een economisch succes omdat ze snel was.

Doorvoer van een volledige passage = aantal verwerkte entries ÷ duur van het opgegeven bereik. Het kwaliteitsoordeel blijft een afzonderlijke controle.
06 /

Lees de duren zonder vijf proeven te overinterpreteren

Presenteer de vijf ruwe duren, hun mediaan, hun minimum en hun maximum, met het aantal successen en mislukkingen. De mediaan beschrijft het midden van deze waarnemingen; ze schrapt de incidenten niet. Als een passage om een gedocumenteerde externe oorzaak wordt uitgesloten, bewaar dan het spoor en pas dezelfde uitsluitingsregel toe op alle varianten.

Presenteer een p95 berekend op vijf passages niet als een robuuste schatting van de trage gevallen. Verzamel voor het bestuderen van de latentie van verzoeken een geschikte set individuele tijden met het aankomstscenario en de gelijktijdigheid. De vijf corpusduren en de latenties van 1.000 verzoeken zijn niet dezelfde populatie.

Als de waargenomen spreiding vergelijkbaar is met het verschil tussen de medianen, dan beslist de reeks nog niet tussen de opties. Voeg herhalingen toe in een gemeenschappelijk protocol of onderzoek een specifieke oorzaak: laden, invoervormen, compilatie, gelijktijdige activiteit. Vermijd om alleen de beste passage van elke kaart te weerhouden.

07 /

Controleer de kwaliteit na een wijziging van de precisie

Vertrek voor het vergelijken van FP32, BF16 of een kwantisatie van dezelfde inputs en dezelfde referentie. Evalueer het formaat, de hoofdas en de voorziene subgroepen. Een variant die uw tolerantie overschrijdt kan interessant zijn voor een ander doel; ze sluit niet aan bij de vergelijking bij gelijke kwaliteit door de drempel achteraf te verlagen.

Leg de gebruikte seeds en deterministische opties vast. PyTorch garandeert geen volledige reproduceerbaarheid tussen versies, platforms of CPU- en GPU-uitvoeringen, zelfs niet met dezelfde seed. Geef dus aan wat je probeert te reproduceren: identieke uitvoer, begrensde numerieke afwijking of aanvaardbare zakelijke kwaliteit. Voorzie voor een stochastisch protocol meerdere gemeenschappelijke seeds en bewaar hun resultaten afzonderlijk.

Technische bronnen: PyTorch 2.14 — reikwijdte en grenzen van de reproduceerbaarheid

08 /

Gebruik het geheugen als een haalbaarheidscriterium

Een optie moet het corpus met zijn lange inputs voltooien voordat de kost wordt vergeleken. Noteer de geheugenpiek per apparaat en het bereik van de teller. Bij PyTorch volgt memory_allocated de tensoren en memory_reserved het door de allocator beheerde geheugen: deze waarden worden niet opgeteld. De bijbehorende pieken kunnen op verschillende momenten optreden.

De notebook in de geheugenmap helpt om schatting en waarneming te onderscheiden. De oefening vervangt niet de meting van uw model: laad uw omgeving, behoud de parameters en voer uw belasting opnieuw uit. Een aangekondigde capaciteit per kaart en een lotprijs laten niet toe om een doorvoer, een interconnectie of een automatische verdeling van het model over meerdere GPU's af te leiden.

Technische bronnen: PyTorch 2.14 — tellers en geheugenallocator

09 /

Kies de duur met de volledige planning

De benodigde duur is niet alleen de som van de GPU-kernels. Bouw een toegangvenster van de voorbereiding op de huur tot het ophalen van de deliverables: installatie, controles, opwarming, vergelijkingen, voorziene herstarts, evaluatie en export. Voeg de wachtperiodes toe waarin u de huur nog moet behouden. Wanneer taken elkaar overlappen, redeneer dan op basis van de werkelijke planning in plaats van hun duren twee keer op te tellen.

Voorbeeld van een tijdlijn, zonder aanname over snelheid: je wilt toegang houden van maandag 9 uur tot vrijdag 9 uur, in dezelfde tijdzone en buiten de zomertijdomschakeling. Dit venster beslaat 96 uur. Het overschrijdt de 72 uur van een pakket van 3 dagen en past binnen de 168 uur van een pakket van 7 dagen. Dat bewijst niet dat je verwerkingen op tijd klaar zijn: hun duur moet nog worden gemeten.

Met de calculator kun je je totale venster invullen en worden de pakketten van 3, 7 en 30 dagen weergegeven. Een pakket dat de tijdlijn dekt, wordt een kandidaat. Als de campagne de gekozen periode overschrijdt, wijzig dan het programma of begroot expliciet de extra periodes die nodig zijn; ga niet uit van een automatische verlenging.

De grenzen om in je planning op te nemen
StapWaarneembaar eindeDuur
VoorbereidingOmgeving geladen en minimale test geslaagdTe meten of te plannen
VergelijkingAlle geplande runs hebben een vastgelegde statusTe meten
Evaluatie en hervattingenElke uitvoer heeft een verdict, elke mislukking een beslissingTe meten of te plannen
ExportBestanden opgehaald, geopend en gecontroleerd op de bestemmingTe meten
VerwachtingenHerlezing en beschikbaarheid van het team opgenomen in de tijdlijnTe plannen
10 /

Bereken de gemaakte kosten met onze pakketten

Het budget van een huur is de prijs van het pakket per lot, vermenigvuldigd met het aantal loten. De kosten per gevalideerd corpus deel je vervolgens door dat hele bedrag door de bruikbare corpora die daadwerkelijk zijn geaccepteerd binnen het aangegeven bereik. Als geen enkel corpus wordt geaccepteerd, is de ratio ongedefinieerd. De gemaakte kosten blijven wel in de balans staan.

De onderstaande prijzen komen uit onze catalogus, versie van 24 september 2026. Ze illustreren de rekenregel, zonder vast te stellen welke GPU je taak het snelst afrondt. Een B200-lot bevat al twee kaarten: de prijs nog een tweede keer met twee vermenigvuldigen zou die kaarten dubbel tellen. Twee loten RTX 4090 voor 7 dagen kosten zo 220 USD; een lot van twee B200 voor 7 dagen kost 2.071 USD.

Een korte run maakt van het pakket geen factuur per uur. De calculator gebruikt het totaal van het pakket, ook als een deel van de periode ongebruikt blijft. Noteer voor een ruimer projectbudget apart de andere kosten die daadwerkelijk van toepassing zijn en hun onderbouwing. Meng geen kosten die bij de ene variant zijn gemeten met posten die bij de andere zijn vergeten.

Gemaakte kosten = pakketprijs per lot × aantal loten. Kosten per bruikbaar gevalideerd corpus = gemaakte kosten ÷ aantal bruikbare gevalideerde corpora, strikt positief.
Voorbeelden van IteraGPU-prijzen per lot, in USD — catalogus van 24 september 2026
Configuratie van het lot3 dagen7 dagen30 dagen
1 × NVIDIA GeForce RTX 4090 24 GB47,14110,00390,00
2 × NVIDIA B200 SXM, 180 GB per kaart887,572 071,007 391,00

Technische bronnen: IteraGPU — pakketten uit de catalogus

11 /

Tel nuttige deliverables, geen herhalingen van metingen

De vijf herhalingen van dezelfde benchmark dienen om de spreiding te observeren. Ze worden niet zomaar vijf nuttige productiecorpora omdat er vijf bestanden zijn geschreven. Definieer de verwachte deliverables vóór de campagne en tel elke geaccepteerde deliverable slechts één keer. Als het echte werk meerdere corpora betreft, moet elke configuratie dezelfde corpora verwerken en dezelfde kwaliteitsregel toepassen.

Laat in de calculator het aantal corpora leeg zolang de nuttige deliverables niet daadwerkelijk zijn afgerond en gevalideerd. Het vakje voor kwaliteit bevestigt je eigen controle; de tool leest noch je voorspellingen noch je metrieken. Vul alleen de vastgestelde hoeveelheid in. Het campagnevenster mag een planningsaanname zijn, maar een capaciteitsprognose vervangt geen geaccepteerde resultaten.

De eindbalans bundelt voor elke toegestane configuratie de kwaliteitsverdicts, de ruwe duur, het campagnevenster, het gemaakte pakket en het aantal geaccepteerde deliverables. Een snelle optie kan nuttig zijn voor een krappe deadline zonder de goedkoopste te zijn. Twee opties die binnen dezelfde tijdlijn passen, kun je onderscheiden op basis van hun gemaakte kosten, hun mislukkingen of de resterende onzekerheid.

12 /

Download het protocol en houd een herbruikbaar bewijs

De map IteraGPU Lab v1 bundelt de materialen voor deze vergelijking en de geheugenmeting. Begin met de README en het kwaliteitsprotocol en vul daarna de ruwe tabel aan met je runs. De prestatiecellen blijven leeg vóór een uitvoering; de tarieven zijn catalogusgegevens, gescheiden van de metingen.

Om twee partijen RTX 4090 gedurende 7 dagen te berekenen, plaats je calcul_forfaits.py en tarifs-forfaits.csv in dezelfde map, open je een terminal in die map en voer je het onderstaande commando uit met Python 3.10 of nieuwer. Het toont een forfait van 220,00 USD voor twee GPU's. De optionele optie --accepted-results ontvangt je gehele aantal daadwerkelijk afgeronde en gevalideerde, afzonderlijke bruikbare corpora. Laat deze weg zolang die vaststelling niet bestaat: het script berekent dan alleen het forfait, zonder een kosten-per-resultaat te verzinnen.

Bewaar het manifest, de invoerhashes, de voorspellingen, de verdicts en de tabel met pogingen samen. De beslissingsnotitie vermeldt de gekozen instelling, de gedekte belasting en de reden voor de keuze. Je kunt die later naast je huur in het IteraGPU-schrift leggen en de experimentele vraag exact opnieuw uitvoeren bij een model- of versiewijziging.

Dit offlineprotocol kwalificeert op zichzelf geen interactieve dienst, geen training tot convergentie of een andere dataset. Definieer voor die toepassingen de bruikbare eenheid en de controles opnieuw voordat je vergelijkt. De meegeleverde bestanden dienen om je proeven voor te bereiden en vast te leggen; deze map bevat geen gemeten vergelijking tussen de configuraties uit de catalogus, noch een waargenomen besparing.

shell
python calcul_forfaits.py --gpu rtx-4090 --days 7 --lots 2
TOOL / PAKKETTEN

Het budget van je campagne berekenen

Kies een configuratie en je aantal sets. De tabel gebruikt de prijzen uit onze catalogus. Vul daarna je eigen aannames voor de planning in; er wordt geen rekentijd voorspeld.

1 GPU in totaal · 24 GB per GPU · 1 GPU inbegrepen in de prijs van elk lot.

Neem voorbereiding op de huur, berekeningen, evaluatie, geplande onderbrekingen en export mee. Een venster dat binnen het forfait past, garandeert niet dat de verwerking slaagt.

Een corpus is de volledige werkset zoals gedefinieerd door je protocol. Tel alleen nuttige, voltooide en gevalideerde corpora; herhalingen van de benchmark vormen geen nieuwe nuttige corpora. De calculator meet de kwaliteit niet.

Pakketten NVIDIA GeForce RTX 4090 24GB · 1 lot · USD
DuurTotaal van het forfaitIngevoerd vensterUSD / gevalideerd corpus
3 dagen · 72 uUSD 47,14In te vullenKwaliteit en kwantiteit vereist
7 dagen · 168 uUSD 110,00In te vullenKwaliteit en kwantiteit vereist
30 dagen · 720 uUSD 390,00In te vullenKwaliteit en kwantiteit vereist

Kosten per corpus = totaal van het pakket ÷ aantal gevalideerde volledige corpora. Het pakket is volledig verschuldigd; deze ratio vormt geen uurtarief of betaling per gebruik.

Als het venster meer dan 30 dagen overschrijdt, stel dan een nieuwe planning of meerdere huurperiodes in en controleer hun beschikbaarheid. De calculator veronderstelt geen automatische verlenging of continuïteit van capaciteit.