openlibm performance on ARM server is very poor
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 32/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- c
- Ambito
- performance
Direzione di ricerca
Inizia riproducendo i benchmark ARM segnalati e rivedendo il percorso di build di make ARCH=aarch64, incluse le directory aarch64 e ld128 e src/e_j0.c. Confronta l’implementazione generata e i risultati dei benchmark con system libm e musl; il lavoro è completato quando il divario di prestazioni ARM segnalato è stato identificato e risolto senza introdurre regressioni nelle altre funzioni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I see very poor results on a modern ARM server. Some openlibm implementations are up to 48.68x slower than their libm counterparts. This was a checkout of the main branch at 12f5ffc This is also related to #234, but the performance difference seems to be even more dramatic.
For interest and potential usefulness to #203, I also compared it against an optimized build of musl 1.2.4:
bench-syslibm | bench-openlibm | bench-musl
pow : 78.6387 MPS | pow : 17.3955 MPS | pow : 57.9493 MPS
hypot : 232.7852 MPS | hypot : 4.7823 MPS | hypot : 139.4793 MPS
exp : 317.8124 MPS | exp : 119.9932 MPS | exp : 215.2262 MPS
log : 228.3188 MPS | log : 97.0294 MPS | log : 181.7701 MPS
log10 : 118.6787 MPS | log10 : 73.0237 MPS | log10 : 76.8402 MPS
sin : 133.0101 MPS | sin : 135.6112 MPS | sin : 165.5926 MPS
cos : 144.4003 MPS | cos : 127.8527 MPS | cos : 150.5435 MPS
tan : 105.8875 MPS | tan : 68.8512 MPS | tan : 78.9428 MPS
asin : 178.2302 MPS | asin : 9.6621 MPS | asin : 88.3722 MPS
acos : 154.1304 MPS | acos : 9.9192 MPS | acos : 98.5818 MPS
atan : 190.8853 MPS | atan : 91.6229 MPS | atan : 97.0451 MPS
atan2 : 56.6821 MPS | atan2 : 42.4876 MPS | atan2 : 47.6644 MPS
GNU libc version: 2.35
GNU libc release: stable
The openlibm compilation line looks like:
cc -fno-gnu89-inline -fno-builtin -O3 -fPIC -std=c99 -Wall -I/home/user/openlibm -I/home/user/openlibm/include -I/home/user/openlibm/aarch64 -I/home/user/openlibm/src -DASSEMBLER -D__BSD_VISIBLE -Wno-implicit-function-declaration -I/home/user/openlibm/ld128 -c src/e_j0.c -o src/e_j0.c.o
I have tried compiling openlibm with just bare make, and also specifying the architecture directly with make ARCH=aarch64 to identical results.
Is there something we can do about this?
- Lingua principale
- C
- Stelle
- 637
- Fork
- 165
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: 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
-
nextafter and nexttoward return the finite endpoint in directed rounding modesForse già presa @vera-rubin l’ha presa 3 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
-
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
-
Non-standard behavior of tgamma()Forse già presa @ViralBShah l’ha presa 117 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
Tutte le issue di JuliaMath/openlibm
Issue simili
-
tech-debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
antoxa2584x/nfsu2-sw#44 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
codepointerapp/codepointer#231 ·