Announcement

Collapse
No announcement yet.

LibreOffice On Windows Will Now Hard Require Clang For Performance Reasons

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Originally posted by phoronix View Post
    Phoronix: LibreOffice On Windows Will Now Hard Require Clang For Performance Reasons

    When falling back to CPU-based software rasterization, the Clang-generated code performs much better than alternative compilers given Google's own emphasis with Skia on being Clang-focused.

    http://www.phoronix.com/scan.php?pag...-Windows-Clang
    Google now trying to destroy competition on the compiler level. They're the fucking worst!

    Comment


    • #32
      Originally posted by bluescarni View Post
      This has nothing to do with assembler syntax or autovectorization. Skia uses clang-specific language extensions to implement certain CPU codepaths, and the end result is that with clang you get the benefits of AVX, with GCC and MSVC you are stuck with SSE2.
      Actually, right above the part you quoted, it says:

      I have downloaded upstream Skia sources and realized that few weeks ago the MSVC and GCC path was dropped completely and Skia now defaults to scalar implementation on those compilers.
      So, we're seeing scalar vs. AVX2 performance. If it really were SSE2, it wouldn't be so bad.

      Originally posted by bluescarni View Post
      So this is basically Google's version of embrace, extend, extinguish.
      I think you need more evidence to support such accusations.

      My suspicion is that developers, ever facing time pressures, optimized for the compiler of primary interest. As noted in the blog, the clang-specific stuff isn't trivial to reconcile with the constructs supported by GCC, and that would still probably leave MSVC out in the cold. They might've even tried to write it in a portable way, but abandoned that approach upon encountering some problems.

      It'd be fair to say that Google harbors a deleterious indifference towards non-Clang compilers. In this regard, I doubt they're any worse than Apple or MS.

      Comment


      • #33
        Originally posted by r08z View Post
        Google now trying to destroy competition on the compiler level.
        Competition? It's not like Google makes any money off of Clang. I'm sure having GCC out of the picture would make their lives simpler, but that's different than trying to destroy business-level competitors.

        Comment


        • #34
          Originally posted by coder View Post
          I think you need more evidence to support such accusations.

          My suspicion is that developers, ever facing time pressures, optimized for the compiler of primary interest. As noted in the blog, the clang-specific stuff isn't trivial to reconcile with the constructs supported by GCC, and that would still probably leave MSVC out in the cold. They might've even tried to write it in a portable way, but abandoned that approach upon encountering some problems.
          There's a plethora of high-quality, liberally-licensed and easy to use C++ SIMD wrappers to choose from. I personally use:

          C++ wrappers for SIMD intrinsics and parallelized, optimized mathematical functions (SSE, AVX, AVX512, NEON, SVE)) - xtensor-stack/xsimd


          Another good option is std::simd, which is on its way to be standardized in C++



          For basic functionality, these kinds of wrappers are not difficult to write on one's own, if there's an issue relying on third-party code. These wrappers abstract away most of the unpleasantness of dealing with intrinsics and they support a variety of ISAs (including SSE, AVX, AVX2, AVX-512, Neon, Altivec, etc.) with a uniform syntax. My view and my experience is that there's no technical reason to choose a compiler-specific SIMD vector extension over an intrinsics wrapper based on standard C++.

          Originally posted by coder View Post
          It'd be fair to say that Google harbors a deleterious indifference towards non-Clang compilers. In this regard, I doubt they're any worse than Apple or MS.
          But that's precisely the danger of the compiler monoculture, isn't it?

          At the height of its influence, MS was infamous for pushing a bastardized version of C++ through their highly nonstandard Visual C++ compiler, which made it extremely difficult to write code portable to other platforms. After they finally started losing market share and mind share among developers, it took them years to steer that boat around.

          So now it seems like we risk ending up in a similar situation, only with Google/Apple in place of Microsoft. That seems hardly an improvement.

          Comment


          • #35
            Originally posted by bluescarni View Post
            So this is basically Google's version of embrace, extend, extinguish.
            GCC has only been doing this for 30 years now. Clang caught up with GCC extensions to be able to build the Linux kernel. GCC can catch up here if they want to.

            Comment


            • #36
              Originally posted by bluescarni View Post
              But that's precisely the danger of the compiler monoculture, isn't it?
              GCC has been the monoculture for so long. Now there is competition and it has allowed end users and developers to do things they were not able to with GCC both from a licensing perspective and a modularity / architectural perspective.

              Comment


              • #37
                Originally posted by brad0 View Post
                GCC has been the monoculture for so long. Now there is competition and it has allowed end users and developers to do things they were not able to with GCC both from a licensing perspective and a modularity / architectural perspective.

                GCC has only been doing this for 30 years now. Clang caught up with GCC extensions to be able to build the Linux kernel. GCC can catch up here if they want to.
                Did you misread my posts or are you just trying to steer the discussion into the usual pointless GCC vs Clang fanboy pissing contest?

                There's nothing special that Clang has "enabled developers to do" with respect to enabling SIMD acceleration in Skia, and if you ever spent a bit of time writing SIMD code you would know that. GCC has its own version of the vector extensions (which I would not advise anyone to use, because you can achieve portable SIMD acceleration without ever messing around with compiler-specific extensions, from GCC, Clang or whoever).

                The discussion was about the dangers of a compiler monoculture, especially if backed by powerful corporate interests with opaque motivations.

                For instance, this specific case could lead to a situation in which, on Linux distributions, binary packages of Skia and, by extension, its dependees would offer much lower performance than possible because they were compiled with GCC. Or perhaps you are using something like conda (or some other multiplatform package manager), and you get subpar performance on Windows because the standard C++ compiler used by package managers there is MSVC.

                Do you think any of this is healthy or desirable for the open-source ecosystem?

                Comment


                • #38
                  Originally posted by coder View Post
                  No, but it wasn't sufficiently qualified.

                  Of course layers can hurt, but it really depends on how they're designed and used.
                  <Bla bla bla, irrelevant drivel>
                  It was a moronic statement, because he spoke in absolutes and didn't qualify it at all. He then mentioned "O(1)", which is completely irrelevant and like something you'd find on r/iamverysmart.

                  Comment


                  • #39
                    Originally posted by JustinTurdeau View Post
                    like something you'd find on r/iamverysmart.
                    Who's more pompous -- the ones who make such statements or those mocking them?

                    I'll admit that I've never visited r/iamverysmart (is that a reddit thing?), but it sounds rather meta.

                    There are better things to do with big brains than having pissing matches about them. People who are too dumb to realize just how dumb or ignorant they are, aren't worth your time.

                    Comment


                    • #40
                      Originally posted by coder View Post
                      Competition? It's not like Google makes any money off of Clang. I'm sure having GCC out of the picture would make their lives simpler, but that's different than trying to destroy business-level competitors.
                      They don't make money off of Clang, but the integration of Google-affiliated tools at all levels and moments of the use of a computer is a marketing tool in itself. All products that encounter these Google tools will have to adapt to it to offer the best performances and stability, and many users will then use Google tools that do bring money to the company so that they get better performances out of everything.

                      Comment

                      Working...
                      X