openlibm performance on ARM server is very poor
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 32/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- c
- 領域
- performance
調査の方向性
まず、報告された ARM ベンチマークを再現し、aarch64 および ld128 ディレクトリと src/e_j0.c を含む make ARCH=aarch64 のビルドパスを確認します。生成された実装とベンチマーク結果を system libm および musl と比較します。報告された ARM のパフォーマンス差を特定して解消し、他の関数を退行させなければ完了です。
索引モデルが issue の本文から書いたものです。
説明
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?
- 主要言語
- C
- スター
- 637
- フォーク
- 165
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaMath/openlibm のほかの issue
-
nextafter and nexttoward return the finite endpoint in directed rounding modes対応中かも @vera-rubin が 5 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
Non-standard behavior of tgamma()対応中かも @ViralBShah が 119 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
JuliaMath/openlibm の issue をすべて見る
似ている issue
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
EchoTools/nevr-runtime#698 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
FujiNetWIFI/fujinet-firmware#2079 ·
メンテナーはふだん 1 日以内に返信
-
area:ci area:runtime-vm bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
InauguralSystems/EigenScript#1859 ·
メンテナーはふだん 1 日以内に返信
-
bug Official Image release/25.12 Supported Device target/kirkwood
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
area/archive bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
DarkFlippers/qUnleashed#374 ·
メンテナーはふだん 1 日以内に返信