Code Monkey home page Code Monkey logo

Comments (12)

jan-wassenberg avatar jan-wassenberg commented on August 15, 2024

Thanks for reporting. The condition for enabling runtime dispatch is:
#elif (.. HWY_ARCH_S390X ..) && \ (HWY_COMPILER_GCC_ACTUAL || HWY_COMPILER_CLANG >= 1700) && HWY_OS_LINUX && \ HWY_HAVE_AUXV
Can you help figure out which of them is not set?

from highway.

malaterre avatar malaterre commented on August 15, 2024

I think you are starring at git/HEAD which include f8f8fdd... I am using 1.1.0 for now. I'll see what I should import, otherwise I'll simply #define to 1 always

from highway.

jan-wassenberg avatar jan-wassenberg commented on August 15, 2024

FYI HEAD is very close to being released as 1.2, in case that helps?

from highway.

malaterre avatar malaterre commented on August 15, 2024

FYI HEAD is very close to being released as 1.2, in case that helps?

AFAIK, git/HEAD fails to build on multiple Debian archs: i386/arm64/armhf/riscv64/powerpc:

Not sure what you mean by "very close", but could you look into some of those build failures before tagging ?

As for s390x; this is PEBKAC, I forgot to use -march=z15 -mzvector. Closing as invalid.

from highway.

jan-wassenberg avatar jan-wassenberg commented on August 15, 2024

Thanks, yes, looking. Most are complaining about symbols added - isn't that legit?

from highway.

malaterre avatar malaterre commented on August 15, 2024

I'd appreciate comments on those three at least (will handle symbol issue on next upload)

arm64:

FAILED: CMakeFiles/math_test.dir/hwy/contrib/math/math_test.cc.o 
/usr/bin/c++ -DHWY_SHARED_DEFINE -I"/<<PKGBUILDDIR>>" -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -DHWY_BROKEN_EMU128=0 -mstrict-align -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -std=c++17 -fPIE -fvisibility=hidden -fvisibility-inlines-hidden -Wno-builtin-macro-redefined -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\" -fmerge-all-constants -Wall -Wextra -Wconversion -Wsign-conversion -Wvla -Wnon-virtual-dtor -Wcast-align -fmath-errno -fno-exceptions -Wno-psabi -Werror -DHWY_IS_TEST=1 -DGTEST_HAS_PTHREAD=1 -MD -MT CMakeFiles/math_test.dir/hwy/contrib/math/math_test.cc.o -MF CMakeFiles/math_test.dir/hwy/contrib/math/math_test.cc.o.d -o CMakeFiles/math_test.dir/hwy/contrib/math/math_test.cc.o -c '/<<PKGBUILDDIR>>/hwy/contrib/math/math_test.cc'
In file included from /<<PKGBUILDDIR>>/hwy/tests/test_util-inl.h:28,
                 from /<<PKGBUILDDIR>>/hwy/contrib/math/math_test.cc:31,
                 from /<<PKGBUILDDIR>>/hwy/foreach_target.h:163,
                 from /<<PKGBUILDDIR>>/hwy/contrib/math/math_test.cc:28:
/<<PKGBUILDDIR>>/hwy/tests/test_util.h: In function ‘hwy::TypeName<double>(double, unsigned long)std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > [clone .constprop.3]’:
/<<PKGBUILDDIR>>/hwy/tests/test_util.h:152:19: error: this operation requires the SVE ISA extension
  152 |   detail::TypeName(detail::MakeTypeInfo<T>(), N, string100);
      |   ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/hwy/tests/test_util.h:152:19: note: you can enable SVE using the command-line option ‘-march’, or by using the ‘target’ attribute or pragma

armhf:

[105/180] : && /usr/bin/c++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -DHWY_BROKEN_EMU128=0 -Wno-psabi -mno-unaligned-access -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now     -fPIE -pie CMakeFiles/hwy_list_targets.dir/hwy/tests/list_targets.cc.o -o hwy_list_targets  -Wl,-rpath,"/<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf"  libhwy.so.1.1.1 && cd "/<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf" && "/<<PKGBUILDDIR>>/obj-arm-linux-gnueabihf/hwy_list_targets" || ( exit 0 )
Config: emu128:0 scalar:0 static:0 all_attain:0 is_test:0
Compiled HWY_TARGETS:   NEON
HWY_ATTAINABLE_TARGETS: NEON NEON_WITHOUT_AES EMU128
HWY_BASELINE_TARGETS:   NEON NEON_WITHOUT_AES EMU128
HWY_STATIC_TARGET:      NEON
HWY_BROKEN_TARGETS:    
HWY_DISABLED_TARGETS:  
WARNING: CPU supports 0x6000000020000000, software requires 0x2000000030000000

riscv64:

[7/180] /usr/bin/c++ -DHWY_SHARED_DEFINE -Dhwy_EXPORTS -I"/<<PKGBUILDDIR>>" -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DHWY_BROKEN_EMU128=0 -mstrict-align -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -std=c++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wno-builtin-macro-redefined -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\" -fmerge-all-constants -Wall -Wextra -Wconversion -Wsign-conversion -Wvla -Wnon-virtual-dtor -Wcast-align -fmath-errno -fno-exceptions -Wno-psabi -Werror -MD -MT CMakeFiles/hwy.dir/hwy/per_target.cc.o -MF CMakeFiles/hwy.dir/hwy/per_target.cc.o.d -o CMakeFiles/hwy.dir/hwy/per_target.cc.o -c '/<<PKGBUILDDIR>>/hwy/per_target.cc'
FAILED: CMakeFiles/hwy.dir/hwy/per_target.cc.o 
/usr/bin/c++ -DHWY_SHARED_DEFINE -Dhwy_EXPORTS -I"/<<PKGBUILDDIR>>" -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DHWY_BROKEN_EMU128=0 -mstrict-align -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -std=c++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wno-builtin-macro-redefined -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\" -fmerge-all-constants -Wall -Wextra -Wconversion -Wsign-conversion -Wvla -Wnon-virtual-dtor -Wcast-align -fmath-errno -fno-exceptions -Wno-psabi -Werror -MD -MT CMakeFiles/hwy.dir/hwy/per_target.cc.o -MF CMakeFiles/hwy.dir/hwy/per_target.cc.o.d -o CMakeFiles/hwy.dir/hwy/per_target.cc.o -c '/<<PKGBUILDDIR>>/hwy/per_target.cc'
In file included from /<<PKGBUILDDIR>>/hwy/ops/rvv-inl.h:19,
                 from /<<PKGBUILDDIR>>/hwy/highway.h:593,
                 from /<<PKGBUILDDIR>>/hwy/per_target.cc:28,
                 from /<<PKGBUILDDIR>>/hwy/foreach_target.h:314,
                 from /<<PKGBUILDDIR>>/hwy/per_target.cc:27:
/usr/lib/gcc/riscv64-linux-gnu/13/include/riscv_vector.h:32:2: error: #error "Vector intrinsics require the vector extension."
   32 | #error "Vector intrinsics require the vector extension."
      |  ^~~~~
/<<PKGBUILDDIR>>/hwy/ops/rvv-inl.h:417:36: error: ‘vuint8mf8_t’ was not declared in this scope; did you mean ‘uint128_t’?
  417 | #define HWY_RVV_V(BASE, SEW, LMUL) v##BASE##SEW##LMUL##_t
      |                                    ^
/<<PKGBUILDDIR>>/hwy/ops/rvv-inl.h:428:19: note: in expansion of macro ‘HWY_RVV_V’
  428 |   struct DFromV_t<HWY_RVV_V(BASE, SEW, LMUL)> {                                \
      |                   ^~~~~~~~~
/<<PKGBUILDDIR>>/hwy/ops/rvv-inl.h:162:3: note: in expansion of macro ‘HWY_SPECIALIZE’

thanks !

from highway.

malaterre avatar malaterre commented on August 15, 2024

powerpc (PPC32) is somewhat bizarre but I understand this is not first class, so it is acceptable to fail for now.

[4/180] /usr/bin/c++ -DHWY_SHARED_DEFINE -DTOOLCHAIN_MISS_ASM_HWCAP_H -Dhwy_EXPORTS -I"/<<PKGBUILDDIR>>" -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DHWY_BROKEN_EMU128=0 -maltivec -mcpu=power8 -mstrict-align -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -std=c++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wno-builtin-macro-redefined -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\" -fmerge-all-constants -Wall -Wextra -Wconversion -Wsign-conversion -Wvla -Wnon-virtual-dtor -Wcast-align -fmath-errno -fno-exceptions -Wno-psabi -Werror -MD -MT CMakeFiles/hwy.dir/hwy/targets.cc.o -MF CMakeFiles/hwy.dir/hwy/targets.cc.o.d -o CMakeFiles/hwy.dir/hwy/targets.cc.o -c '/<<PKGBUILDDIR>>/hwy/targets.cc'
FAILED: CMakeFiles/hwy.dir/hwy/targets.cc.o 
/usr/bin/c++ -DHWY_SHARED_DEFINE -DTOOLCHAIN_MISS_ASM_HWCAP_H -Dhwy_EXPORTS -I"/<<PKGBUILDDIR>>" -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DHWY_BROKEN_EMU128=0 -maltivec -mcpu=power8 -mstrict-align -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -std=c++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wno-builtin-macro-redefined -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\" -fmerge-all-constants -Wall -Wextra -Wconversion -Wsign-conversion -Wvla -Wnon-virtual-dtor -Wcast-align -fmath-errno -fno-exceptions -Wno-psabi -Werror -MD -MT CMakeFiles/hwy.dir/hwy/targets.cc.o -MF CMakeFiles/hwy.dir/hwy/targets.cc.o.d -o CMakeFiles/hwy.dir/hwy/targets.cc.o -c '/<<PKGBUILDDIR>>/hwy/targets.cc'
In file included from /<<PKGBUILDDIR>>/hwy/highway.h:583,
                 from /<<PKGBUILDDIR>>/hwy/targets.cc:23:
/<<PKGBUILDDIR>>/hwy/ops/ppc_vsx-inl.h: In function ‘V hwy::N_PPC8::BitShuffle(V, VI)’:
/<<PKGBUILDDIR>>/hwy/ops/ppc_vsx-inl.h:6979:37: error: expected ‘;’ before ‘__int128’
 6979 |   using RawVU128 = __vector unsigned __int128;
      |                                     ^~~~~~~~~
      |                                     ;

@johnplatts

from highway.

jan-wassenberg avatar jan-wassenberg commented on August 15, 2024

PPC is hopefully fixed by #2215. The docs sound like unsigned __int128 and unsigned char are equivalent, but I kept the original codepath for clarity.

from highway.

jan-wassenberg avatar jan-wassenberg commented on August 15, 2024

For RISC-V, seems some clang and gcc still require -march=rv64gcv1p0. Interestingly, riscv64-linux-gnu-g++-13 does not. I'm also fixing one missing macro in #2216.

from highway.

jan-wassenberg avatar jan-wassenberg commented on August 15, 2024

For armhf, the warning is that HWY_NEON is enabled, but at runtime we detect that it is not supported due to lack of AES. That is correct on armhf. The question is why we would select HWY_NEON as a target, because we check for AES via predefined macro:

#if defined(__ARM_NEON__) || defined(__ARM_NEON)
#undef HWY_BASELINE_NEON
#if defined(__ARM_FEATURE_AES) &&                    \
    defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && \
    defined(__ARM_FEATURE_DOTPROD) &&                \
    defined(__ARM_FEATURE_BF16_VECTOR_ARITHMETIC)
#define HWY_BASELINE_NEON HWY_ALL_NEON
#elif defined(__ARM_FEATURE_AES)
#define HWY_BASELINE_NEON (HWY_NEON_WITHOUT_AES | HWY_NEON)
#else
#define HWY_BASELINE_NEON (HWY_NEON_WITHOUT_AES)
#endif  // __ARM_FEATURE*
#endif  // __ARM_NEON

Perhaps __ARM_FEATURE_AES is actually being set?

from highway.

jan-wassenberg avatar jan-wassenberg commented on August 15, 2024

Unable to repro the arm64 SVE issue on godbolt, even with the flags from the Debian builder. Any ideas?

from highway.

malaterre avatar malaterre commented on August 15, 2024

Unable to repro the arm64 SVE issue on godbolt, even with the flags from the Debian builder. Any ideas?

Here is the creduced version:

let me know if this is too aggressively reduced and you cannot recognize the original code.

from highway.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.