[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-kimageshop
Subject:    Re: Report about compilers available for Krita
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2021-08-20 10:11:40
Message-ID: CAEkBSfXnTwX2QGZwKBTzNnFYQMX5fHab=3a8E514ej-OSDrHXw () mail ! gmail ! com
[Download RAW message or body]

Just a small update:

On Windows we can also use Clang from MSYS. And it gives 30-40% better
performance in the benchmarks. See the attached spreadsheet for the details.

On Thu, Aug 19, 2021 at 10:11 AM Dmitry Kazakov <dimula73@gmail.com> wrote:

> Hi, all!
>
> I spent last week testing different compilers on Linux and Windows. I
> decided to gather all the information I found in a nice report so we could
> reuse it later :)
>
> Report about compilers available for Krita
> ==========================================
>
> Linux
> -----
>
> 1) Ubuntu 16.04
>
>    * uses GCC 5.5.0 by default
>    * has GCC 9.4.0 available via `ppa:ubuntu-toolchain-r/test` repository
>
>      - GCC 9.4.0 gives 10-30% better performance on Linux (I have tested
> on both, Intel and Ryzen7)
>      - I have already switched our AppImage builds to use GCC 9.4.0
>
> 2) Ubuntu 20.04
>
>    * uses GCC 9.3.0 by default
>    * has GCC 11.1.0 available via `ppa:ubuntu-toolchain-r/test` repository
>
>      - GCC 11.1.0 gives almost the same performance as 9.4.0 (about 2%
> better though)
>      - GCC 11.1.0 needs our deps patched a bit, because of changes in
> include header dependencies. In practice, you just need to add `#include
> <limits>` here and there.
>      - The patches that fix deps compilation on GCC 11.1.0 have already
> been pushed to master
>
> Windows
> -------
>
> 1) MinGW64-builds (the ones we use atm)
>
>    * uses GCC 7.3.0
>    * works somewhat fine
>
> 2) TDM-GCC (https://jmeubank.github.io/tdm-gcc/)
>
>    * uses GCC 10.3.0
>    * compiles Krita and its deps fine
>    * (!) causes speed regressions in the brush benchmarks
>    * (!) the compiler itself is 32-bit, so it might be not very efficient
> on 64-bit devices
>
> 3) MSYS (msys2.org)
>
>    * uses GCC 10.3.0
>    * the compiler is 64-bit, which is good
>    * when installing MSYS-MINGW64 one must skip installing GDB, because it
> requires Python, which conflicts with Krita's python
>    * (!) has three libraries dynamically linked to GCC, which conflict
> with Krita's deps:
>
>       - expat
>       - iconv
>       - zlib
>
>       Compiling of these deps should be manually patched out from Krita's
> deps (they are listed as deps to other deps)
>
>    * (!) drmingw fails to build (though I guess it is solvable)
>    * (!) compilation script of SIP and PyQt should be patched to use
> `--install-base` instead of `--prefix`. I don't know why.
>    * (!) still causes the same regressions in the brush benchmarks
>    * (!) when packaging, Krita package fails to run on another system
> because of the absent zlib, libintl and expat. Perhaps they should be added
> to teh package manually. I didn't try it though.
>
> Raw data of the benchmarks can be found here:
>
>
> https://docs.google.com/spreadsheets/d/1mvTC3Ny73_0F35MscUZBHyYCXRfoX06so5zI5LL2DqU
>
> --
> Dmitry Kazakov
>


-- 
Dmitry Kazakov

[Attachment #3 (text/html)]

<div dir="ltr">Just a small update:<div><br></div><div>On Windows we can also use \
Clang from MSYS. And it gives 30-40% better performance in the benchmarks. See the \
attached spreadsheet for the details.</div></div><br><div class="gmail_quote"><div \
dir="ltr" class="gmail_attr">On Thu, Aug 19, 2021 at 10:11 AM Dmitry Kazakov &lt;<a \
href="mailto:dimula73@gmail.com">dimula73@gmail.com</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi, \
all!<div><br></div><div>I spent last week testing different compilers on Linux and \
Windows. I decided to gather all the  information I found in a nice report so we \
could reuse it later :)</div><div><br></div><div>Report about compilers available for \
Krita<br>==========================================<br><br>Linux<br>-----<br><br>1) \
Ubuntu 16.04<br>     <br>     * uses GCC 5.5.0 by default<br>     * has GCC 9.4.0 \
available via `ppa:ubuntu-toolchain-r/test` repository<br><br>        - GCC 9.4.0 \
gives 10-30% better performance on Linux (I have tested on both, Intel and \
Ryzen7)<br>        - I have already switched our AppImage builds to use GCC \
9.4.0<br><br>2) Ubuntu 20.04<br>     <br>     * uses GCC 9.3.0 by default<br>     * \
has GCC 11.1.0 available via `ppa:ubuntu-toolchain-r/test` repository <br>     <br>   \
- GCC 11.1.0 gives almost the same performance as 9.4.0 (about 2% better though)<br>  \
- GCC 11.1.0 needs our deps patched a bit, because of changes in include header \
dependencies. In practice, you just need to add `#include &lt;limits&gt;` here and \
there.<br>        - The patches that fix deps compilation on GCC 11.1.0 have already \
been pushed to master<br>	 <br>Windows<br>-------<br><br>1) MinGW64-builds (the ones \
we use atm)<br>     <br>     * uses GCC 7.3.0<br>     * works somewhat fine<br>     \
<br>2) TDM-GCC (<a href="https://jmeubank.github.io/tdm-gcc/" \
target="_blank">https://jmeubank.github.io/tdm-gcc/</a>)<br><br>     * uses GCC \
10.3.0<br>     * compiles Krita and its deps fine <br>     * (!) causes speed \
regressions in the brush benchmarks<br>     * (!) the compiler itself is 32-bit, so \
it might be not very efficient on 64-bit devices<br>     <br>3) MSYS (<a \
href="http://msys2.org" target="_blank">msys2.org</a>)<br>   <br>     * uses GCC \
10.3.0<br>     * the compiler is 64-bit, which is good<br>     * when installing \
MSYS-MINGW64 one must skip installing GDB, because it requires Python, which \
conflicts with Krita&#39;s python<br>     * (!) has three libraries dynamically \
linked to GCC, which conflict with Krita&#39;s deps:<br>        <br>         - \
expat<br>         - iconv<br>         - zlib<br>	 <br>         Compiling of these \
deps should be manually patched out from Krita&#39;s deps (they are listed as deps to \
other deps)<br>	 <br>     * (!) drmingw fails to build (though I guess it is \
solvable)<br>     * (!) compilation script of SIP and PyQt should be patched to use \
`--install-base` instead of `--prefix`. I don&#39;t know why.<br>     * (!) still \
causes the same regressions in the brush benchmarks<br>     * (!) when packaging, \
Krita package fails to run on another system because of the absent zlib, libintl and \
expat. Perhaps they should be added to teh package manually. I didn&#39;t try it \
though.<br><div><br></div><div>Raw data of the benchmarks can be found \
here:</div><div><br></div><div><a \
href="https://docs.google.com/spreadsheets/d/1mvTC3Ny73_0F35MscUZBHyYCXRfoX06so5zI5LL2DqU" \
target="_blank">https://docs.google.com/spreadsheets/d/1mvTC3Ny73_0F35MscUZBHyYCXRfoX06so5zI5LL2DqU</a><br></div><div><br></div>-- \
<br><div dir="ltr">Dmitry Kazakov</div></div></div> </blockquote></div><br \
clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Dmitry \
Kazakov</div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic