build: Rename –enable-experimental-asm to –enable-asm and enable by default #11176

pull laanwj wants to merge 2 commits into bitcoin:master from laanwj:2017_08_non_experimental_asm changing 3 files +13 −12
  1. laanwj commented at 9:05 am on August 28, 2017: member

    Now that 0.15 is branched off, enable assembler SHA256 optimizations by default, but still allow disabling them, for example if something goes wrong with auto-detection on a platform.

    Also add mention of the use of asm in the configure summary.

  2. laanwj added the label Build system on Aug 28, 2017
  3. build: Rename --enable-experimental-asm to --enable-asm and enable by default
    Now that 0.15 is branched off, enable assembler SHA256 optimizations by default.
    ce5381e7fe
  4. laanwj force-pushed on Aug 28, 2017
  5. build: Mention use of asm in summary 538cc0ca8b
  6. promag commented at 11:43 am on August 28, 2017: member

    Should the flag mention SHA256 like --enable-asm-sha256?

    Either way LGTM.

  7. laanwj commented at 12:20 pm on August 28, 2017: member

    Should the flag mention SHA256 like –enable-asm-sha256?

    No, I think we should have a general asm flag, build-side, as this does. This is similar to OpenSSL’s flag to use assembly or not. Something else creates too many combinations to test, and I don’t see why it would be useful. (besides testing, but run-time selection is much more useful for that)

  8. promag commented at 2:10 pm on August 28, 2017: member

    Ok, just had to ask.

    utACK 538cc0c.

  9. kallewoof commented at 2:42 pm on August 28, 2017: member

    If this is meant for 0.15, the release notes need to be updated. They currently read

    SHA256 hashing has been optimized for architectures supporting SSE 4 (See PR 10182). SHA256 is around 50% faster on supported hardware, which results in around 5% faster IBD and block validation. In version 0.15, SHA256 hardware optimization is disabled in release builds by default, but can be enabled by using –enable-experimental-asm when building.

  10. laanwj commented at 2:44 pm on August 28, 2017: member

    No, this is not meant for 0.15, certainly not for 0.15.0

    Now that 0.15 is branched off, enable assembler SHA256 optimizations by default

  11. kallewoof commented at 2:58 pm on August 28, 2017: member
    Sorry about that. I should’ve read the PR message more closely.
  12. sipa commented at 5:49 pm on August 28, 2017: member
    @laanwj There are plenty more versions of SHA256 to add (for starters, a RORX version, a SHA-NI version, but later perhaps a 4-way parallel SSE4 or 8-way parallel AVX2 version). Do we all want to include them under “–enable-asm”, or will they first go into a reinstated “–enable-experimental-asm” before being promoted?
  13. laanwj commented at 6:55 pm on August 28, 2017: member

    Do we all want to include them under “–enable-asm” or will they first go into a reinstated “–enable-experimental-asm” before being promoted?

    Both are valid options, we should probably decide on a case by case basis - depending on how much we trust the code, how long it can be in master until the release.

  14. luke-jr approved
  15. luke-jr commented at 7:07 am on September 2, 2017: member
    utACK
  16. fanquake commented at 8:38 am on September 2, 2017: member
    utACK 538cc0c
  17. laanwj merged this on Sep 5, 2017
  18. laanwj closed this on Sep 5, 2017

  19. laanwj referenced this in commit df8c72237a on Sep 5, 2017
  20. sickpig referenced this in commit ea042adf96 on Sep 13, 2017
  21. gandrewstone referenced this in commit 1f3677fd15 on Sep 13, 2017
  22. sickpig referenced this in commit 28e4da427f on Sep 17, 2017
  23. sickpig referenced this in commit f4f001b1ce on Sep 17, 2017
  24. sickpig referenced this in commit 76df55508d on Oct 13, 2017
  25. gandrewstone referenced this in commit 115f739d1d on Oct 19, 2017
  26. droark commented at 11:03 pm on December 12, 2017: contributor

    Posthumous review comment: Is USE_ASM meant to be a catch-all for any other assembly optimizations added in the future, or is it solely for the SHA256 optimizations? I ask because the language in the changes is a little ambiguous (IMO). I’d like to fix that. I just don’t want to step on toes first.

    Thanks.

  27. codablock referenced this in commit 0d4a6d2274 on Oct 1, 2019
  28. codablock referenced this in commit ad55048a68 on Oct 1, 2019
  29. barrystyle referenced this in commit 5b7cc3d303 on Jan 22, 2020
  30. DrahtBot locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-07-06 01:12 UTC

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