Publish wiki from the repository
@@ -0,0 +1,35 @@
|
|||||||
|
# Penerangan
|
||||||
|
|
||||||
|
🌐 [English](Description) · [Dansk](Description-da) · **Bahasa Melayu**
|
||||||
|
|
||||||
|
## Tujuan
|
||||||
|
|
||||||
|
Program ini menunjukkan betapa lajunya sesebuah CPU. Kelajuan yang kelihatan
|
||||||
|
bergantung pada cara program ditulis, jadi angka itu mengukur CPU dan kod
|
||||||
|
bersama-sama, bukan CPU sahaja.
|
||||||
|
|
||||||
|
## Apa yang dilakukannya
|
||||||
|
|
||||||
|
Program menguji setiap nombor dari 0 hingga 1,000,000 dengan `is_prime_avx2`,
|
||||||
|
yang menggunakan pembahagian cuba-cuba AVX2 dengan 6k ± 1 (empat pembahagi
|
||||||
|
setiap langkah). Ia mencetak setiap nombor perdana pada barisnya sendiri dan
|
||||||
|
menulis baris ringkasan ke standard error:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Found 78498 primes from 0 to 1000000 in 13.806 ms
|
||||||
|
```
|
||||||
|
|
||||||
|
78,498 ialah bilangan nombor perdana yang diketahui hingga 1,000,000, jadi baris
|
||||||
|
ringkasan juga berfungsi sebagai semakan ketepatan.
|
||||||
|
|
||||||
|
## Mengapa masa bergantung pada kod
|
||||||
|
|
||||||
|
CPU yang sama memberi masa yang sangat berbeza untuk program yang berbeza:
|
||||||
|
|
||||||
|
- algoritma (pembahagian cuba-cuba, ayak, ayak bersegmen),
|
||||||
|
- set arahan yang digunakan (kod skalar, AVX2, AVX-512),
|
||||||
|
- pengkompil dan bendera (`-O3 -mavx2`, MSVC `/O2 /arch:AVX2`),
|
||||||
|
- apa yang diukur (carian sahaja, atau juga pencetakan ke konsol).
|
||||||
|
|
||||||
|
Di sini hanya carian diukur. Keputusan dikumpul dahulu dan dicetak kemudian,
|
||||||
|
supaya kelajuan konsol tidak mengubah angka.
|
||||||
Reference in New Issue
Block a user