-
Notifications
You must be signed in to change notification settings - Fork 8
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
[NEON] Unknown type name neon
in tslCPUrt.hpp
#96
Comments
Can you provide me the output of the following bash command: As far as I can tell, the neon extension is inside the tarball. |
Could this be a naming issue with the analogy to asimd? The neon extension comes with a synonym for asimd, depending on the platform. |
I'm running this on Mac, so I don't have But I think this is beside the point. It looks like a regular C++ problem. The symbol |
This is strange. From https://github.com/db-tu-dresden/TSL/releases/tag/v0.1.9-rc5, within the NEON sub-directory, the tsl.hpp includes:
include/tslintr.hpp includes:
and generated/tsl_generated.hpp includes:
|
Hi Lawrence, thanks for testing our library! I threw together a quick toy example using the latest tarball:
I moved the contents of generate_tsl_neon-asimd to /usr/include/tsl to avoid unnecessary editing of any include paths. Here is my example main:
I built it with g++ -o tsltest main.cpp -flax-vector-conversions and got the output: $ ./tsltest
Neon? tsl::simd<unsigned int, tsl::neon, 128ul>
4 I tested this on an ODROID N2+:
When I try to build with clang, I only see the errors you reported in #95. Could you please provide an MWE of what you tried/how you setup the TSL on your machine? I am currently unable to reproduce the issue. |
Well, this was a stupid issue 😅 The main issues was that I included files in the wrong order... #include "tslCPUrt.hpp"
#include "tslintrin.hpp" You might want to guard against this or tell users to include I didn't use |
Glad its not a generator issue :) We will address the documentation oversight asap. |
I'd really suggest to also try to fix this programmatically, as, e.g., clang format reorders the includes. This puts quite a bit of burden on the user, as they need to know about the order and then ensure that it does not get reordered. |
Given that only tsl/tsl.hpp is required or, if you clone the repository or include it via cmake, you only need to use tslintrin.hpp ... I think this might be not necessary. However we will definitly consider your suggestion. Highly appreciated! |
@lawben has a point, though. We really should change the docu to be more specific and unify the includes. It should be irrelevant how you use the TSL (install vs. cmake) - the necessary headers to include should be the same. Regarding clang-format, I am completely unaware about the extent of include-reordering. Can this be an issue for the library internals as well? |
At least in my setup, clang format sorts includes alphabetically. In that case, tslC comes before tsli. This does not affect your library internals. But if you external interface relies on implcit ordering, that's probably not ideal from a user perspective. |
When using
tsl::runtime::cpu::max_width_extension_t
on AArch64, I get the following error message:These types are not included, so they cannot be known.
Side note: same holds for
VectorProcessingStyle
andTSLArithmetic
further down in the code. I'm not using them, but my IDE shows me that they are undefined. Probably just a few includes missing.The text was updated successfully, but these errors were encountered: