Optimize secp256k1_fe_normalize_weak calls. #550

pull roconnor-blockstream wants to merge 1 commits into bitcoin-core:master from roconnor-blockstream:table changing 2 files +5 −2
  1. roconnor-blockstream commented at 4:08 AM on August 13, 2018: contributor

    Move secp256k1_fe_normalize_weak calls out of ECMULT_TABLE_GET_GE and ECMULT_TABLE_GET_GE_STORAGE and into secp256k1_ge_globalz_set_table_gej instead.

  2. Optimize secp256k1_fe_normalize_weak calls.
    Move secp256k1_fe_normalize_weak calls out of ECMULT_TABLE_GET_GE and ECMULT_TABLE_GET_GE_STORAGE and into secp256k1_ge_globalz_set_table_gej instead.
    9bd89c836b
  3. roconnor-blockstream commented at 4:09 AM on August 13, 2018: contributor

    bench_ecmult results

    $ secp256k1.old/bin/bench_ecmult
    ecmult_1g: min 55.8us / avg 56.5us / max 57.0us ecmult_2g: min 38.3us / avg 38.8us / max 39.1us ecmult_3g: min 32.0us / avg 33.7us / max 39.4us ecmult_4g: min 28.5us / avg 29.9us / max 32.9us ecmult_5g: min 26.7us / avg 28.4us / max 33.5us ecmult_6g: min 25.5us / avg 26.0us / max 26.5us ecmult_7g: min 24.3us / avg 24.7us / max 25.3us ecmult_8g: min 23.6us / avg 25.0us / max 27.9us ecmult_9g: min 23.1us / avg 24.0us / max 26.2us ecmult_10g: min 22.4us / avg 23.9us / max 27.5us ecmult_11g: min 22.3us / avg 23.3us / max 24.7us ecmult_12g: min 22.2us / avg 22.7us / max 23.3us ecmult_13g: min 21.9us / avg 22.9us / max 27.5us ecmult_14g: min 21.9us / avg 22.2us / max 22.4us ecmult_15g: min 21.6us / avg 22.0us / max 22.5us ecmult_16g: min 21.3us / avg 21.7us / max 22.0us ecmult_18g: min 21.2us / avg 22.5us / max 26.7us ecmult_20g: min 21.0us / avg 21.7us / max 25.4us ecmult_22g: min 20.9us / avg 21.2us / max 21.6us ecmult_24g: min 20.4us / avg 20.9us / max 21.6us ecmult_26g: min 20.4us / avg 21.1us / max 22.9us ecmult_28g: min 20.2us / avg 22.6us / max 25.6us ecmult_30g: min 20.1us / avg 20.9us / max 23.2us ecmult_32g: min 20.0us / avg 21.7us / max 25.5us ecmult_36g: min 19.8us / avg 20.7us / max 22.4us ecmult_40g: min 19.8us / avg 21.9us / max 24.8us ecmult_44g: min 19.9us / avg 21.3us / max 24.6us ecmult_48g: min 19.7us / avg 20.4us / max 21.9us ecmult_52g: min 19.7us / avg 19.9us / max 20.6us ecmult_56g: min 19.7us / avg 20.0us / max 20.3us ecmult_60g: min 19.6us / avg 21.3us / max 25.8us ecmult_64g: min 19.7us / avg 20.6us / max 23.3us ecmult_72g: min 19.7us / avg 20.6us / max 24.4us ecmult_80g: min 19.5us / avg 19.9us / max 21.0us ecmult_88g: min 19.5us / avg 19.9us / max 20.1us ecmult_96g: min 19.6us / avg 20.8us / max 25.3us ecmult_104g: min 19.4us / avg 19.6us / max 19.7us ecmult_112g: min 19.2us / avg 19.8us / max 21.2us ecmult_120g: min 19.2us / avg 19.9us / max 21.3us ecmult_128g: min 19.4us / avg 19.8us / max 21.2us ecmult_144g: min 19.2us / avg 19.5us / max 19.9us ecmult_160g: min 19.3us / avg 19.7us / max 20.7us ecmult_176g: min 18.7us / avg 19.0us / max 19.5us ecmult_192g: min 18.6us / avg 19.5us / max 22.7us ecmult_208g: min 18.1us / avg 19.1us / max 21.3us ecmult_224g: min 17.9us / avg 18.4us / max 19.8us ecmult_240g: min 17.5us / avg 17.8us / max 18.3us ecmult_256g: min 17.4us / avg 17.9us / max 20.0us ecmult_288g: min 17.1us / avg 17.5us / max 18.3us ecmult_320g: min 16.6us / avg 17.0us / max 17.5us ecmult_352g: min 16.2us / avg 16.8us / max 18.5us ecmult_384g: min 16.0us / avg 16.3us / max 17.2us ecmult_416g: min 15.6us / avg 15.9us / max 16.2us ecmult_448g: min 15.4us / avg 15.7us / max 16.5us ecmult_480g: min 15.1us / avg 16.1us / max 18.0us ecmult_512g: min 15.0us / avg 15.1us / max 15.3us ecmult_576g: min 14.6us / avg 14.8us / max 15.1us ecmult_640g: min 14.4us / avg 14.5us / max 14.8us ecmult_704g: min 14.0us / avg 14.2us / max 14.5us ecmult_768g: min 13.8us / avg 14.0us / max 14.3us ecmult_832g: min 13.5us / avg 13.7us / max 13.8us ecmult_896g: min 13.5us / avg 14.6us / max 16.6us ecmult_960g: min 13.3us / avg 13.8us / max 14.2us ecmult_1024g: min 13.0us / avg 13.4us / max 13.8us ecmult_1152g: min 12.9us / avg 13.9us / max 16.5us ecmult_1280g: min 12.7us / avg 12.9us / max 13.2us ecmult_1408g: min 12.5us / avg 13.3us / max 16.1us ecmult_1536g: min 12.3us / avg 12.5us / max 13.0us ecmult_1664g: min 12.2us / avg 12.7us / max 14.3us ecmult_1792g: min 12.1us / avg 12.4us / max 13.1us ecmult_1920g: min 11.9us / avg 12.3us / max 12.6us ecmult_2048g: min 11.8us / avg 13.0us / max 16.3us ecmult_2304g: min 11.6us / avg 11.8us / max 12.3us ecmult_2560g: min 11.4us / avg 12.3us / max 13.9us ecmult_2816g: min 11.4us / avg 11.6us / max 12.0us ecmult_3072g: min 11.2us / avg 11.9us / max 14.6us ecmult_3328g: min 11.2us / avg 11.4us / max 12.0us ecmult_3584g: min 11.1us / avg 11.8us / max 13.4us ecmult_3840g: min 10.8us / avg 11.0us / max 11.3us ecmult_4096g: min 10.7us / avg 10.9us / max 11.3us ecmult_4608g: min 10.5us / avg 10.7us / max 11.1us ecmult_5120g: min 10.3us / avg 10.5us / max 11.5us ecmult_5632g: min 10.2us / avg 10.4us / max 11.0us ecmult_6144g: min 10.0us / avg 10.1us / max 10.5us ecmult_6656g: min 9.92us / avg 10.0us / max 10.3us ecmult_7168g: min 9.86us / avg 10.0us / max 10.3us ecmult_7680g: min 9.84us / avg 10.1us / max 10.7us ecmult_8192g: min 9.74us / avg 9.97us / max 10.2us ecmult_9216g: min 9.69us / avg 9.83us / max 10.1us ecmult_10240g: min 9.63us / avg 9.76us / max 9.97us ecmult_11264g: min 9.47us / avg 9.60us / max 9.75us ecmult_12288g: min 9.44us / avg 9.55us / max 9.73us ecmult_13312g: min 9.33us / avg 9.49us / max 9.78us ecmult_14336g: min 9.25us / avg 9.42us / max 9.54us ecmult_15360g: min 9.27us / avg 9.44us / max 9.86us ecmult_16384g: min 9.19us / avg 9.36us / max 9.54us ecmult_18432g: min 9.06us / avg 9.21us / max 9.39us ecmult_20480g: min 8.97us / avg 9.08us / max 9.20us ecmult_22528g: min 8.86us / avg 9.06us / max 9.84us ecmult_24576g: min 8.72us / avg 8.85us / max 9.22us ecmult_26624g: min 8.67us / avg 8.83us / max 9.01us ecmult_28672g: min 8.84us / avg 9.18us / max 9.65us ecmult_30720g: min 8.73us / avg 9.26us / max 9.62us ecmult_32768g: min 8.68us / avg 9.09us / max 9.35us

    $ secp256k1.new/bin/bench_ecmult
    ecmult_1g: min 55.9us / avg 56.4us / max 57.1us ecmult_2g: min 37.7us / avg 38.1us / max 38.8us ecmult_3g: min 31.5us / avg 32.8us / max 35.3us ecmult_4g: min 28.4us / avg 28.8us / max 29.4us ecmult_5g: min 26.5us / avg 27.0us / max 27.4us ecmult_6g: min 25.4us / avg 25.8us / max 27.5us ecmult_7g: min 24.2us / avg 24.7us / max 25.0us ecmult_8g: min 23.8us / avg 24.1us / max 24.4us ecmult_9g: min 23.2us / avg 23.5us / max 24.4us ecmult_10g: min 22.7us / avg 23.3us / max 24.6us ecmult_11g: min 22.4us / avg 23.0us / max 24.0us ecmult_12g: min 22.1us / avg 22.6us / max 24.2us ecmult_13g: min 22.0us / avg 22.3us / max 22.9us ecmult_14g: min 21.7us / avg 22.0us / max 22.8us ecmult_15g: min 21.6us / avg 21.8us / max 22.7us ecmult_16g: min 21.3us / avg 21.5us / max 22.0us ecmult_18g: min 21.1us / avg 21.3us / max 21.5us ecmult_20g: min 20.6us / avg 20.9us / max 21.4us ecmult_22g: min 20.5us / avg 21.0us / max 22.2us ecmult_24g: min 20.6us / avg 21.0us / max 21.5us ecmult_26g: min 20.2us / avg 20.5us / max 21.1us ecmult_28g: min 20.1us / avg 20.7us / max 21.5us ecmult_30g: min 20.3us / avg 20.6us / max 21.0us ecmult_32g: min 20.0us / avg 20.6us / max 21.9us ecmult_36g: min 19.9us / avg 20.3us / max 20.9us ecmult_40g: min 19.7us / avg 20.3us / max 21.7us ecmult_44g: min 19.6us / avg 19.9us / max 20.3us ecmult_48g: min 19.7us / avg 19.9us / max 20.2us ecmult_52g: min 19.5us / avg 20.0us / max 20.5us ecmult_56g: min 19.4us / avg 19.9us / max 20.7us ecmult_60g: min 19.5us / avg 20.0us / max 20.5us ecmult_64g: min 19.5us / avg 19.9us / max 20.7us ecmult_72g: min 19.5us / avg 19.8us / max 20.2us ecmult_80g: min 19.6us / avg 20.0us / max 20.6us ecmult_88g: min 19.4us / avg 19.8us / max 20.2us ecmult_96g: min 19.4us / avg 19.8us / max 20.4us ecmult_104g: min 19.4us / avg 19.6us / max 19.9us ecmult_112g: min 19.3us / avg 19.7us / max 20.6us ecmult_120g: min 19.4us / avg 19.9us / max 20.7us ecmult_128g: min 19.2us / avg 19.7us / max 20.4us ecmult_144g: min 19.2us / avg 19.6us / max 20.0us ecmult_160g: min 19.3us / avg 19.7us / max 19.9us ecmult_176g: min 18.9us / avg 19.1us / max 19.6us ecmult_192g: min 18.6us / avg 19.0us / max 19.6us ecmult_208g: min 18.0us / avg 18.5us / max 19.5us ecmult_224g: min 18.1us / avg 18.3us / max 18.6us ecmult_240g: min 17.8us / avg 18.1us / max 18.6us ecmult_256g: min 17.4us / avg 17.8us / max 18.2us ecmult_288g: min 16.9us / avg 17.4us / max 18.2us ecmult_320g: min 16.5us / avg 16.8us / max 17.3us ecmult_352g: min 16.2us / avg 16.5us / max 17.5us ecmult_384g: min 15.9us / avg 16.3us / max 16.7us ecmult_416g: min 15.6us / avg 16.0us / max 16.7us ecmult_448g: min 15.4us / avg 15.8us / max 16.3us ecmult_480g: min 15.1us / avg 15.3us / max 15.7us ecmult_512g: min 15.1us / avg 15.3us / max 15.6us ecmult_576g: min 14.8us / avg 15.0us / max 15.4us ecmult_640g: min 14.5us / avg 14.7us / max 15.0us ecmult_704g: min 14.3us / avg 14.4us / max 14.5us ecmult_768g: min 14.0us / avg 14.3us / max 15.0us ecmult_832g: min 13.7us / avg 14.1us / max 15.7us ecmult_896g: min 13.5us / avg 13.7us / max 14.5us ecmult_960g: min 13.3us / avg 13.5us / max 13.7us ecmult_1024g: min 13.2us / avg 13.5us / max 14.1us ecmult_1152g: min 12.9us / avg 13.1us / max 13.5us ecmult_1280g: min 12.7us / avg 13.0us / max 13.8us ecmult_1408g: min 12.5us / avg 12.8us / max 13.4us ecmult_1536g: min 12.3us / avg 12.6us / max 12.9us ecmult_1664g: min 12.2us / avg 12.5us / max 13.5us ecmult_1792g: min 12.2us / avg 12.4us / max 12.8us ecmult_1920g: min 12.2us / avg 12.4us / max 12.5us ecmult_2048g: min 12.0us / avg 12.2us / max 12.5us ecmult_2304g: min 11.8us / avg 12.0us / max 12.7us ecmult_2560g: min 11.6us / avg 11.7us / max 11.9us ecmult_2816g: min 11.4us / avg 11.9us / max 13.8us ecmult_3072g: min 11.3us / avg 11.6us / max 12.7us ecmult_3328g: min 11.2us / avg 11.3us / max 11.7us ecmult_3584g: min 11.1us / avg 11.3us / max 11.7us ecmult_3840g: min 10.8us / avg 11.1us / max 11.8us ecmult_4096g: min 10.8us / avg 11.2us / max 13.4us ecmult_4608g: min 10.7us / avg 10.8us / max 11.0us ecmult_5120g: min 10.4us / avg 10.6us / max 10.8us ecmult_5632g: min 10.4us / avg 10.7us / max 11.5us ecmult_6144g: min 10.3us / avg 10.5us / max 10.8us ecmult_6656g: min 10.2us / avg 10.4us / max 11.0us ecmult_7168g: min 10.1us / avg 10.2us / max 10.6us ecmult_7680g: min 9.97us / avg 10.2us / max 10.4us ecmult_8192g: min 9.91us / avg 10.0us / max 10.2us ecmult_9216g: min 9.88us / avg 10.00us / max 10.3us ecmult_10240g: min 9.63us / avg 9.79us / max 10.0us ecmult_11264g: min 9.51us / avg 9.67us / max 10.2us ecmult_12288g: min 9.50us / avg 9.78us / max 10.3us ecmult_13312g: min 9.46us / avg 9.80us / max 10.4us ecmult_14336g: min 9.42us / avg 9.64us / max 10.2us ecmult_15360g: min 9.32us / avg 9.42us / max 9.59us ecmult_16384g: min 9.21us / avg 9.44us / max 9.83us ecmult_18432g: min 9.17us / avg 9.38us / max 9.72us ecmult_20480g: min 8.98us / avg 9.35us / max 9.91us ecmult_22528g: min 8.86us / avg 8.97us / max 9.22us ecmult_24576g: min 8.72us / avg 8.89us / max 9.26us ecmult_26624g: min 8.73us / avg 8.84us / max 8.96us ecmult_28672g: min 8.69us / avg 8.82us / max 9.08us ecmult_30720g: min 8.65us / avg 8.76us / max 8.85us ecmult_32768g: min 8.53us / avg 8.72us / max 8.85us

  4. roconnor-blockstream closed this on Aug 13, 2018

  5. roconnor-blockstream commented at 7:21 PM on August 13, 2018: contributor

    Restarting travis.

  6. roconnor-blockstream reopened this on Aug 13, 2018

  7. gmaxwell commented at 2:52 AM on September 4, 2018: contributor

    ACK

  8. sipa commented at 5:12 AM on October 4, 2018: contributor

    utACK 9bd89c836b1b53fc3ad77333def0ec70a86d7fae

  9. gmaxwell merged this on Feb 21, 2019
  10. gmaxwell closed this on Feb 21, 2019

  11. gmaxwell referenced this in commit 949e85b009 on Feb 21, 2019

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/secp256k1. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-14 18:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me