Openlibm's `pow`, `hypot`, `exp` and `log` are considerably slower than Glibc's
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- c
- Ambito
- performance
Direzione di ricerca
L’issue non indica alcun file sorgente o test. Inizia riproducendo i benchmark segnalati per pow, hypot, exp e log con GCC e Clang sulla piattaforma descritta, quindi traccia le implementazioni pertinenti; il lavoro è completato quando il divario di prestazioni misurato è stato identificato e risolto senza introdurre regressioni nelle altre funzioni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I just ran benchmarks of openlibm (compiled by gcc and clang) and system libm (Glibc), and these were the results:
openlibm(gcc) syslibm openlibm(clang)
pow : 17.4427 MPS : 69.7010 MPS : 18.1047 MPS
hypot : 72.7657 MPS : 107.5491 MPS : 76.4914 MPS
exp : 132.5313 MPS : 197.3627 MPS : 145.4958 MPS
log : 129.2455 MPS : 216.8139 MPS : 130.2769 MPS
log10 : 103.1023 MPS : 118.6334 MPS : 96.9040 MPS
sin : 176.9966 MPS : 157.4333 MPS : 150.2365 MPS
cos : 162.1996 MPS : 166.1857 MPS : 161.8407 MPS
tan : 93.6082 MPS : 76.9096 MPS : 90.7496 MPS
asin : 124.9897 MPS : 114.8927 MPS : 128.0259 MPS
acos : 140.7629 MPS : 110.8343 MPS : 129.6873 MPS
atan : 120.1154 MPS : 79.6637 MPS : 130.1246 MPS
atan2 : 54.1519 MPS : 43.4398 MPS : 58.3252 MPS
System Libm is considerably faster than Openlibm on pow (4x) hypot, (1.5x) exp (1.5x) and log (1.7x), while Openlibm outperforms system Libm in almost all trigonometric functions (except cos).
Running on Kubuntu 21.04 (kernel 5.11.0-17-generic) in an Asus Rog Strix G531GT, CPU Intel Core i7-9750H CPU 2.60GHz.
Edit:
GNU libc version: 2.33
GNU libc release: release
- Lingua principale
- C
- Stelle
- 632
- Fork
- 163
- Merge medio
- 4m
- PR unite (30g)
- 1
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaMath/openlibm
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di JuliaMath/openlibm
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
DaveGamble/cJSON#1094 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Status: Opened
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Issue-Bug Needs-Triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno