Thread overview | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
October 22, 2017 LDC 1.5.0-beta1 | ||||
---|---|---|---|---|
| ||||
Hi everyone, on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. The highlights of version 1.5 in a nutshell: * Based on D 2.075.1. * Polished LLVM 5.0 support (now also used for the prebuilt release packages). * ~25 new advanced command-line options for codegen fine-tuning. * Bugfixes, as always. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1 Thanks to everybody contributing! |
October 22, 2017 Re: LDC 1.5.0-beta1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote:
> Hi everyone,
>
> on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. The highlights of version 1.5 in a nutshell:
>
> * Based on D 2.075.1.
> * Polished LLVM 5.0 support (now also used for the prebuilt release packages).
> * ~25 new advanced command-line options for codegen fine-tuning.
> * Bugfixes, as always.
>
> Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1
>
> Thanks to everybody contributing!
Thanks!
|
October 22, 2017 Re: LDC 1.5.0-beta1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote:
> Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1
>
> Thanks to everybody contributing!
Thanks!
|
October 22, 2017 Re: LDC 1.5.0-beta1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote:
> Hi everyone,
>
> on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. The highlights of version 1.5 in a nutshell:
>
> * Based on D 2.075.1.
> * Polished LLVM 5.0 support (now also used for the prebuilt release packages).
> * ~25 new advanced command-line options for codegen fine-tuning.
> * Bugfixes, as always.
>
> Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1
>
> Thanks to everybody contributing!
Wow, sounds interesting!
|
October 23, 2017 Re: LDC 1.5.0-beta1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote: > Hi everyone, > > on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. Jon Degenhardt did some nice LTO testing, see: https://github.com/ldc-developers/ldc/issues/2380 -Johan |
October 23, 2017 Re: LDC 1.5.0-beta1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | Some measurements for some audio processing. Output are identical across compilers (30 measures). ### LDC 1.2.0 Results: * minimum time: 440 ms => 48.024 x real-time * median time: 443 ms => 47.6987 x real-time * average time: 444.233 ms => 47.5663 x real-time ### LDC 1.3.0 Results: * minimum time: 439 ms => 48.1334 x real-time * median time: 442 ms => 47.8067 x real-time * average time: 442.6 ms => 47.7419 x real-time ### LDC 1.4.0 Results: * minimum time: 436 ms => 48.4646 x real-time * median time: 439 ms => 48.1334 x real-time * average time: 439.767 ms => 48.0494 x real-time ### LDC 1.5.0-b1 Results: * minimum time: 429 ms => 49.2553 x real-time * median time: 432 ms => 48.9133 x real-time * average time: 433.3 ms => 48.7665 x real-time Results are only precise up to the ~0.5% range. So approx. +2.5% relative improvement in LDC 1.5.0-b1 vs LDC 1.2, free lunch is always good. The number of flags in -help-hidden seems very large, I haven't tried any yet (apart from -enable-unsafe-fp-math which seems to lose speed like -ffast-math, for this benchmark). |
October 23, 2017 Re: LDC 1.5.0-beta1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Guillaume Piolat | On Monday, 23 October 2017 at 21:26:46 UTC, Guillaume Piolat wrote: > Some measurements for some audio processing. Output are identical across compilers (30 measures). Guillaume, can you try with building your own LTO version of the standard library and do new measurements? Something like this should work: ``` ldc-build-runtime --reset --dFlags="-flto=full" BUILD_SHARED_LIBS=OFF ldc2 -your-normal-compile-flags -flto=full -L-L./ldc-build-runtime.tmp/lib ``` Use `--dFlags="-flto=full;-ar="` for now if you are using macOS (will not be needed with the next beta). (you can try with `-flto=thin` too for much faster link times) Cheers, Johan |
October 23, 2017 Re: LDC 1.5.0-beta1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johan Engelen | On Monday, 23 October 2017 at 22:06:43 UTC, Johan Engelen wrote:
> Guillaume, can you try with building your own LTO version of the standard library and do new measurements?
>
> Something like this should work:
> ```
> ldc-build-runtime --reset --dFlags="-flto=full" BUILD_SHARED_LIBS=OFF
>
> ldc2 -your-normal-compile-flags -flto=full -L-L./ldc-build-runtime.tmp/lib
> ```
>
> Use `--dFlags="-flto=full;-ar="` for now if you are using macOS (will not be needed with the next beta).
>
> (you can try with `-flto=thin` too for much faster link times)
>
> Cheers,
> Johan
So far my benchmark scripts are Windows-only so no LTO is available AFAIK. I can work on providing such measures (or any flags you want) on OSX in the future.
|
October 23, 2017 Re: LDC 1.5.0-beta1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Guillaume Piolat | On Monday, 23 October 2017 at 21:26:46 UTC, Guillaume Piolat wrote:
> Some measurements for some audio processing. Output are identical across compilers (30 measures).
>
>
> ### LDC 1.2.0
>
> Results:
> * minimum time: 440 ms => 48.024 x real-time
> * median time: 443 ms => 47.6987 x real-time
> * average time: 444.233 ms => 47.5663 x real-time
>
> ### LDC 1.3.0
>
> Results:
> * minimum time: 439 ms => 48.1334 x real-time
> * median time: 442 ms => 47.8067 x real-time
> * average time: 442.6 ms => 47.7419 x real-time
>
> ### LDC 1.4.0
>
> Results:
> * minimum time: 436 ms => 48.4646 x real-time
> * median time: 439 ms => 48.1334 x real-time
> * average time: 439.767 ms => 48.0494 x real-time
>
>
> ### LDC 1.5.0-b1
>
> Results:
> * minimum time: 429 ms => 49.2553 x real-time
> * median time: 432 ms => 48.9133 x real-time
> * average time: 433.3 ms => 48.7665 x real-time
>
>
> Results are only precise up to the ~0.5% range.
>
> So approx. +2.5% relative improvement in LDC 1.5.0-b1 vs LDC 1.2, free lunch is always good.
>
> The number of flags in -help-hidden seems very large, I haven't tried any yet (apart from -enable-unsafe-fp-math which seems to lose speed like -ffast-math, for this benchmark).
would it help to have them grouped/filterable by category?
e.g.
$ldc2 -help-hidden=category
common
sanitiser
asan
tsan
cache
disable
enable
debug
optimisation
compiler-diaganostics
...
$ldc2 -help-hidden=asan
-asan-always-slow-path
...
|
October 24, 2017 Re: LDC 1.5.0-beta1 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nicholas Wilson | On Monday, 23 October 2017 at 22:57:00 UTC, Nicholas Wilson wrote:
>
> would it help to have them grouped/filterable by category?
> e.g.
> $ldc2 -help-hidden=category
Perhaps, but the sheer amount of customizability makes you wish for a superoptimizer for compiler flags (hard to do this generically though).
|
Copyright © 1999-2021 by the D Language Foundation