-
Notifications
You must be signed in to change notification settings - Fork 23
Introduce possibility of CPU-specific optimization #129
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
9b1fb08 to
c150f47
Compare
c150f47 to
3760e23
Compare
hkchung72
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.
It's good suggestion.
|
Hi Agosdahu, |
|
Hi @yilun-zhangs , I am unsure which of the following options would you have me do:
The current solution was mindful about e.g.: the existence of the VS2022 project file as well and aimed to provide a universal, build system agnostic and portable solution. |
|
Hi @agosdahu Thanks for clarifying it to me detailly. In my opinion, solution 1 is necessary. Thanks for your understanding. |
|
Thank you for clarifying! Enabling them by default may be more beneficial given the current configuration of CI builds and especially if users generally prefer performant code. |
|
Hi @agosdahu Of course, in the future, if all architecture specific code are complete, we could consider to open it by default. |
|
With IAMF supporting so many channels, any optimizations are beneficial. Performance gains can be particularly significant on certain devices. It's not uncommon for this type of thing. Other "reference implementation" libraries, like libopus have platform specific optimizations. This PR simply adds a slot for platform specific code, but when there is no platform-specific code it will use the original implementation for those functions. So it seems OK to default it to on. It seems to work fine even if optimizations are added one at a time. Missing functions will fallback to the original implementation. Also, the GitHub actions CI still proves it builds on several platforms. @agosdahu, can you sync to the latest upstream. I think the MacOS CI is failing because you are missing 4826ee2. |
Added Arch structure, containing function pointers to optimizable functions. Original C implementations can be overridden at runtime with faster, CPU-specific implementations.
1351acc to
53d42bc
Compare
|
Hi @agosdahu |
|
@yilun-zhangs |
Introduce possibility of CPU-specific optimization
Introduce possibility of CPU-specific optimization
Introduce possibility of CPU-specific optimization
Added Arch structure, containing function pointers to optimizable functions.
Original C implementations can be overridden at runtime with faster, CPU-specific implementations.