r2d290 Skrevet 9. november 2011 Del Skrevet 9. november 2011 Heisann Har fått følgende oppgave: "Sjekk om antall klokkeperioder (kan omregnes fra antall prosenter i Statisical Profiling) stemmer med det som kan forventes ut fra aritmetisk kompleksitet. Forklar eventuelt avvik." Har beregnet at hele kretskortet bruker 2083 klokkeperioder (100MHz/48kHz). Og siden metoden min bruker 6% av prosessoren, bruker/trenger denne metoden 125 cycles. Hvordan kan jeg finne ut om dette tallet er "forventet" ut ifra aritmetisk kompleksitet? Har en helt vanlig "typisk" kode med litt for-løkker, if-setninger og array-utfylling. Lenke til kommentar
LonelyMan Skrevet 9. desember 2011 Del Skrevet 9. desember 2011 Du kan ikke få nøyaktig måling med en gitt kode, det kommer an på hvordan koden settes sammen av kompilatoren din, noen instruksjoner settes på vent, mens andre fullfører, cache misses gjør alt helt uforutsigbart og synkroniserer du ikke koden ved å implementere enn cpuid instruksjon (som er den eneste instruksjonen som nøytraliserer paralell kjøring) så får du iallefall ikke rette tider. Du må skrive en systemdriver og bruke RDTSC i kombinasjon med CPUID for å måle det nøyaktig, system interrupts gjør også at det blir feil målt. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå