Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed up VSX convolution code #25

Open
9 tasks
luctrudeau opened this issue Jun 28, 2018 · 1 comment
Open
9 tasks

Speed up VSX convolution code #25

luctrudeau opened this issue Jun 28, 2018 · 1 comment

Comments

@luctrudeau
Copy link
Collaborator

The vpx_convolve8_vsx function is the most time consuming function of libVPX on POWER. For POWER8, 24% of the runtime is spent in vpx_convolve8_vpx, while in POWER9 that value increases to 30%. Taking the time to optimize even more this function will have considerable impact on the libVPX encoding speed on POWER.

This is the optimal place to optimize libVPX on POWER in order to maximize results. Doubling the speed of vpx_convolve8_vsx will reduce encoding time by 10 to 15%.

This includes the following functions:

  • convolve
  • convolve_horiz
  • convolve_line_h
  • convolve_vert
  • convolve_line_v

Testing:

  • Must pass the ConvolveTestSuite suite
  • Refactor ConvolveTestSuite to use the AbstractBench
  • Report performance in commit msg (compared to C version)
  • Show significant speedup over C version
@lu-zero
Copy link
Owner

lu-zero commented Jun 28, 2018

The current code is vectorized, but it is making no assumption on the data dimension.

Specialized paths for just8x8, 16x16 and such should give the additional speedup we'd like to have since the code won't have to use vec_ste then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants