You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the package is built it should be built for the lowest common SIMD level supported everywhere, even though the build server might support a higher level. Individual users might want to build individually for their own hardware.
The project should have configuration options to choose the level of SIMD.
Ideally, there should be boolean options:
SIMD_NONE
SIMD_NATIVE
SIMD_SSE2
SIMD_SSE41
SIMD_SSE42
etc, etc.
Otherwise the package built on a server with high SIMD level would crash on an older CPU with lower SIMD support.
The text was updated successfully, but these errors were encountered:
I think it would also be good to have a dispatcher so that a higher simd level does not get called on systems without it, so it would be okay to copy a binary between two different machines
The decoder detects the highest available SIMD extension it can use during runtime. So differences between build and runtime machines should not be a problem.
Did you have a specific problem with that? Could you specify more detail about the exact used build/runtime computers?
For testing purposes, it is still possible to restrict SIMD in the code by setting cVVDecParameter.m_eSIMD_Extension in vvdecapp.cpp (there is not cmd parameter because this is not your everyday usecase).
Build on powerpc64 failed because of unconditional SSE options. Normally SIMD options should be used only on architectures where they are supported, and generic code should be used elsewhere.
As it says in the README.md, VVdeC is a x86 VVC decoder. So if you are compiling on a powerpc64, you should use a cross-compiler with x86 target architecture, in which case the compiler should support the options.
But I guess, since the codebase actually supports it, we might adapt the build process appropriately. This will never be non-experimental and properly tested, though, and low-priority for now.
When the package is built it should be built for the lowest common SIMD level supported everywhere, even though the build server might support a higher level. Individual users might want to build individually for their own hardware.
The project should have configuration options to choose the level of SIMD.
Ideally, there should be boolean options:
etc, etc.
Otherwise the package built on a server with high SIMD level would crash on an older CPU with lower SIMD support.
The text was updated successfully, but these errors were encountered: