Giter VIP home page Giter VIP logo

Comments (21)

significant-bit avatar significant-bit commented on September 26, 2024 1

The issue is still open, but I'm pretty far along on local hardware. Will publish early next week & start the review process.

from libpng.

significant-bit avatar significant-bit commented on September 26, 2024

I'm taking a whack at this. @glennrp what is the recommended path to get external contributions into libpng?

from libpng.

glennrp avatar glennrp commented on September 26, 2024

You may submit a GIT pull request or just email me a patch.

from libpng.

dmiller423 avatar dmiller423 commented on September 26, 2024

Is code in process of being accepted?
Or still open?

from libpng.

barkovv avatar barkovv commented on September 26, 2024

@edelsohn
Should I implement runtime detection of supporting VSX by cpu? If yes please tell me platforms which must be supported (currently linux is the only supported one).

from libpng.

edelsohn avatar edelsohn commented on September 26, 2024

Does libpng support runtime detection of SSE4 vs AVX vs AVX2 vs AVX512?

The intended target for the issue and bounty is PPC64 Linux support, not other OSes.

from libpng.

barkovv avatar barkovv commented on September 26, 2024

@edelsohn There is no runtime detection support for Intel but there is ones for mips and ARM. Now linux support for ppc64 has been made, so I guess it is okay for this issue.

from libpng.

edelsohn avatar edelsohn commented on September 26, 2024

Does runtime support work for PPC64 on Linux? I'm unsure how to interpret your comment about "linux support for ppc64 has been made"

from libpng.

barkovv avatar barkovv commented on September 26, 2024

@edelsohn I mean runtime detection of "if current CPU is able to run Altivec && VSX code" . Yes, it is done for PPC64 Linux

from libpng.

edelsohn avatar edelsohn commented on September 26, 2024

@barkovv @glennrp What is the final speed up and how does this compare with other SIMD architectures of similar width, such as ARM Neon and Intel SSE?

from libpng.

barkovv avatar barkovv commented on September 26, 2024

@edelsohn According to John Bowler's words:

  • Analysis of the results suggests a 1/74% speed up from using the Altivec code; this is suspiciously large.
  • Final results: about 8% improvement in (just) decode time of typical PNGs

from libpng.

edelsohn avatar edelsohn commented on September 26, 2024

I saw that in the pull request.

What is the speedup for other SIMD architectures for the same measurements? Is the POWER VSX code achieving equivalent or better speedup?

8% improvement for decode seems small, but I don't know what to compare it against.

from libpng.

barkovv avatar barkovv commented on September 26, 2024

@edelsohn
I've just made tests for Intel. There are some quick results:

libpng-noopt $ ./timepng ../Earth10k.png 
1.519951620
libpng-opt $ ./timepng ../Earth10k.png 
1.192934654

Calculations:

>>> 1.192934654/1.509859932
0.79009623920532

So, according to timepng benchmarking, PowerPC VSX optimisation is on pair with Intel SSE (74% and 79%).

from libpng.

barkovv avatar barkovv commented on September 26, 2024

I can measure this results deeper and with more accuracy if @jbowler will provide some more information about his measure methods and scripts.

from libpng.

glennrp avatar glennrp commented on September 26, 2024

I'm running Earth10k.png through pngcrush for timing. It's not surprising that optimization will make a significant improvement because the image has mostly AVG and PAETH filtering.

from libpng.

edelsohn avatar edelsohn commented on September 26, 2024

I'm not questioning the result. I greatly appreciate the excellent work on the patch to implement POWER8 VSX optimizations. The milestone for this issue is not some perfect, unrealistic, magical improvement in performance nor some super-human effort to achieve an order of magnitude advantage. The goal for the issue is the implementation of architecture-specific SIMD optimizations for POWER8 VSX that are equivalent in form to Intel SSE, with the hope of achieving equivalent speedup.

I want to reach out to the experts for this important library to get their assessment of the benefit produced by the patch. Is the improvement produced by this patch about right?

from libpng.

jbowler avatar jbowler commented on September 26, 2024

from libpng.

barkovv avatar barkovv commented on September 26, 2024

@edelsohn
I don't understand you. My point is that PowerPC VSX optimization are equivalent to Intel SSE one.
Do I need to approve it by profiling? Maybe you want to @glennrp and @jbowler to approve it?
What kind of actions must be perfomed to approve this work?

from libpng.

edelsohn avatar edelsohn commented on September 26, 2024

@barkovv I want to know if @glennrp agrees with the test methodology. Again, I am not trying to create new hurdles. I simply want to be able to point at an objective test recommended by the libpng community that says, "yes, this is good enough."

from libpng.

jbowler avatar jbowler commented on September 26, 2024

from libpng.

glennrp avatar glennrp commented on September 26, 2024

from libpng.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.