Publish wiki from the repository
@@ -0,0 +1,34 @@
|
|||||||
|
# Beskrivelse
|
||||||
|
|
||||||
|
🌐 [English](Description) · **Dansk** · [Bahasa Melayu](Description-ms)
|
||||||
|
|
||||||
|
## Formål
|
||||||
|
|
||||||
|
Programmet viser, hvor hurtig en CPU er. Hvor hurtig den ser ud til at være,
|
||||||
|
afhænger af, hvordan programmet er skrevet, så tallet måler CPU'en og koden
|
||||||
|
sammen, ikke CPU'en alene.
|
||||||
|
|
||||||
|
## Hvad det gør
|
||||||
|
|
||||||
|
Programmet tester hvert tal fra 0 til 1.000.000 med `is_prime_avx2`, som bruger
|
||||||
|
AVX2-prøvedivision med 6k ± 1 (fire divisorer pr. trin). Det udskriver hvert
|
||||||
|
primtal på sin egen linje og skriver en opsummering til standard error:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Found 78498 primes from 0 to 1000000 in 13.806 ms
|
||||||
|
```
|
||||||
|
|
||||||
|
78.498 er det kendte antal primtal op til 1.000.000, så opsummeringen virker
|
||||||
|
også som kontrol af, at resultatet er rigtigt.
|
||||||
|
|
||||||
|
## Hvorfor tiden afhænger af koden
|
||||||
|
|
||||||
|
Den samme CPU giver meget forskellige tider for forskellige programmer:
|
||||||
|
|
||||||
|
- algoritmen (prøvedivision, en si, en segmenteret si),
|
||||||
|
- instruktionssættet (skalar kode, AVX2, AVX-512),
|
||||||
|
- compiler og flag (`-O3 -mavx2`, MSVC `/O2 /arch:AVX2`),
|
||||||
|
- hvad der måles (kun søgningen, eller også udskrivning til en konsol).
|
||||||
|
|
||||||
|
Her måles kun søgningen. Resultatet samles først og udskrives bagefter, så
|
||||||
|
konsollens hastighed ikke påvirker tallet.
|
||||||
Reference in New Issue
Block a user