-
Notifications
You must be signed in to change notification settings - Fork 349
audio: volume: optimize volume component with HIFI3 #5169
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
Conversation
lyakh
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wouldn't it be easier to create two additional files for the new optimisation options and link one of them in CMakeLists.txt?
lgirdwood
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@singalsu any comments ?
singalsu
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good work! Some comments:
|
@andrula-song if you have fixed comments please mark them as resolved |
lgirdwood
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just one minor thing in the regular C code, I'll let @singalsu and others review the intrinsics.
Btw, can you check the formatting in the commit message (the lines look very short). It could be your git config.
|
becuse there is still a failed case about check-alsabat-headset-playback.sh on ADLP_RVP_NOCODEC device, I am trying to fix it and may need many submission, so i will creat a new draft to test it. |
Please use the same PR and just force push your updates. This keeps the history and context for your changes. |
|
@lgirdwood It seems like this commit passed all sof-ci test cases except heck-suspend-resume-with-playback-5.sh(other PRs also failed this case). But there is still tgl failed cases of Internal Intel CI System/merge/build, if these are unrelated cases, maybe the latest commit is ready for review. |
|
@andrula-song there is an issues with CI that @kkarask is fixing. We should be able to retest later today. |
|
@kkarask can you provid wav file of failed cases in Internal Intel CI System/merge/build? |
|
hi @lgirdwood , |
singalsu
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks very good, minor things to change!
lgirdwood
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andrula-song looks like we are almost done, but we do need that alignment API as I would imagine other will be doing the same thing. @singalsu any comment ?
lgirdwood
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just need to remove the alignment check and we are good.
Processing continuous data. Asking a 8-byte aligned memory to store volume gain 4 times, using 2-way or 4-way pipeline operations of xtensa intrinsics. This method can reduce about 40% MCPS than the original one. Signed-off-by: Andrula Song <xiaoyuan.song@intel.com>
There are 2 methods to optimize volume component in HiFi3
1.Method 1 : Processing data per channel instead of per sample. Skipping address reading and
writing, only load volume gain once for one channel. This method can
reduce about 20% MCPS than the original one
to store volume gain 4 times, using 2-way or 4-way pipeline operations
of xtensa intrinsics. This method can reduce about 40% MCPS than the
original one.
Signed-off-by: Andurla Song xiaoyuan.song@intel.com