-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
srsLTE 18.09 fails to build when SIMD is unavailable (18.06 worked just fine) #265
Comments
looks like a duplicate of #262 more or less. |
Is this also on ARM? If so, please use 18.03, we'll fix that for the next release. |
No, it is for Debian official package build. (https://buildd.debian.org/status/package.php?p=srslte) Many of the architectures do not have SIMD (mips, s390x, powerpc, riscv64 etc.) Btw. Does srsLTE do runtime detection of the availabilitiy of AVX2 and SSE4 etc? Just thinking that also for the amd64 build of srsLTE, we cannot build for anything which is not supported by ALL CPUs of that architecture. Currently, SIMD is disabled completely on all architectures until I have the full overview here. (Using something like "volk" would probably make packaging binaries easier, since it already handles runtime detection) :) |
If you have dedicated builds for all architectures, it should be detected ok. If not we may have an issue detecting the SIMD extensions. We've never tested on mips, powerpc, etc. |
I have implemented this now for the Debian package. [1] Thanks for the idea. A simple shell script checks what extensions are available before selecting one of the executables: srsenb-avx2, srsenb-avx, srsenb-sse4, srsenb-generic (and same for srsue).
For version 18.09, srsenb-generic does not build at all - not on amd64 either. But 18.06 works fine. [1] https://salsa.debian.org/debian-mobcom-team/srslte/blob/stable/debian/rules |
Thanks for the heads up. This looks good. I see how we can adopt something similar for Ubuntu and maybe include in mainline. In general, I observed that there are quite a few patches with bug-fixes and typos, etc. that you apply only to the Debian build. May I ask why those have not been pushed upstream? |
I think probably only the spelling-fix patch is also relevant for upstream. The others are more specific to the need for the package build. The answer to your question is that I simply haven't gotten there yet.. But now that you already have seen the patches, you are of course free to cherry-pick whatever you want. :)
You are probably also aware of that the package in Debian also goes into the official Ubuntu archive (https://launchpad.net/ubuntu/+source/srslte) and all other Debian derivatives. Feel free to pick from the packaging files. It is all AGPL-3+.. |
18.06 was the last release with a generic Turbo-decoder. All newer releases need at least SSE4.2 for x86 or NEON on ARM for the Turbo-decoder. As a consequence, only the EPC is really working on those systems. |
When building without any of the SSE, AVX, and "-march=native" options, the latest release of srsLTE fails to build. This worked fine with release 18.06.
Below is the console output where it fails:
Best regards
Ruben
The text was updated successfully, but these errors were encountered: