invariant Skrevet 5. desember 2005 Del Skrevet 5. desember 2005 Kan du garantere at det ikke er noen konsekvenser på ytelsesnivå på noen kode av sjekken? Isåfall vil jeg gjerne vite hva i all verden sjekken er der for. 5245451[/snapback] Hei! Har du noen gang prøvd å kjøre et program med SSE2-kode på en PC uten SSE2? Da får du en stygg feilmelding "Priviliged Instruction". Derfor har Intel satt inn feilmeldingen "Fatal Error: This program was not built to run on the processor in your system" isteden basert på en CPUID-sjekk. Dersom du ikke liker dette, så kan du kompilere hovedprogrammet med -xW og lage din egen CPUID sjekk, basert på et lite program hos Microsoft: http://msdn2.microsoft.com/en-us/library/xs6aek1h.aspx, klikk på download sample. Nå er det ikke bare SSE, SSE2 og SS3 som varierer fra CPU til CPU, men også bl.a. Hyper-Threading. Så det er gode grunner for å ha en CPUID-sjekk, enten en fra kompilatoren, eller en du lager selv, for at du skal kunne bruke de seneste instruksjons-settene og samtidig gi hyggelige feilmeldinger til brukere dersom arkitekturen deres ikke støtter softwaren din. Softwaren din er sikkert for vel-implementert til at PGO skal ha noen dramatisk effekt, men det kan lønne seg å leke seg litt med dette for å finne ut hva den eventuelle nytte-effekten kan være. Store programmer, med flere millioner kode-linjer, hvor mange har vært inne å kodet, og f.eks. en likningsløser bare er en liten del av det hele, kan være bedre egnet for PGO optimering. Men det kan også hende at det ikke har noen effekt. Det varierer fra case til case. Invariant. 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å