Author | Message |
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
In attempt to fix misconfigured environment I added few include places.
So, it ends up with another missing header now:
parallella@parallella:~/sah_v7_opt/AKv8$ make
make -s all-recursive
Making all in client
In file included from /usr/include/features.h:388:0,
from /usr/include/arm-linux-gnueabihf/c++/4.9/bits/os_defines.h:39,
from /usr/include/arm-linux-gnueabihf/c++/4.9/bits/c++config.h:430,
from /usr/include/c++/4.9/utility:68,
from /usr/include/c++/4.9/algorithm:60,
from /home/parallella/boinc/lib/std_fixes.h:54,
from ./../sah_config.h:672,
from <command-line>:0:
/usr/include/arm-linux-gnueabihf/gnu/stubs.h:7:29: fatal error: gnu/stubs-soft.h: No such file or directory
# include <gnu/stubs-soft.h>
^
compilation terminated.
And it seems this one really misses on parallella host.
And from name of missing file (and one that present) I could infer they related to hard and soft FP calling conventions.
Parallella allows only hardfp (fastest one) but through config run it seems opt souces configured for softfp calling conventions.
So, another misconfigured part... will try to fix that in next session. SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1931925 · |
|
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
There is some section in opt configure.ac that has no counterpart in stock one:
# Checks for header files.
AC_HEADER_STDC
SAH_LARGEFILE_BREAKS_CXX
SAH_HEADER_STDCXX
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS([fcntl.h inttypes.h limits.h memory.h alloca.h malloc.h stdlib.h string.h strings.h errno.h sys/types.h sys/ioctl.h sys/statvfs.h sys/time.h unistd.h dirent.h math.h float.h ieeefp.h floatingpoint.h complex.h fftw3.h setjmp.h signal.h mach/mach_time.h sys/param.h sys/system.h machine/cpu.h CL/cl.h OpenCL/opencl.h])
save_cxxflags="${CXXFLAGS}"
save_cppflags="${CPPFLAGS}"
CXXFLAGS="${CXXFLAGS} -msse3"
CPPFLAGS="${CPPFLAGS} -msse3"
AC_CHECK_HEADERS([intrin.h x86intrin.h pmmintrin.h xmmintrin.h emmintrin.h smmintrin.h])
CXXFLAGS="${save_cxxflags} -mavx"
CPPFLAGS="${save_cppflags} -mavx"
AC_CHECK_HEADERS([immintrin.h avxintrin.h])
CXXFLAGS="${save_cxxflags} -march=armv7 -mfloat-abi=softfp -mfpu=neon"
CPPFLAGS="${save_cppflags} -march=armv7 -mfloat-abi=softfp -mfpu=neon"
AC_CHECK_HEADERS([arm_neon.h])
CXXFLAGS="${save_cxxflags}"
CPPFLAGS="${save_cppflags}"
if test "x$enable_intrinsics" != "xno" ; then
if test "x$ac_cv_header_xmmintrin_h" != "xno" -o "x$ac_cv_header_emmintrin_h" != "xno" -o "x$ac_cv_header_pmmintrin_h" != "xno"; then
AC_DEFINE([USE_INTRINSICS],[1],[Define to 1 to use SIMD intrinsics rather than inline assembly])
fi
if test "x$ac_cv_header_arm_neon_h"!="xno"; then
AC_DEFINE([USE_INTRINSICS],[1],[Define to 1 to use ARM_NEON intrinsics])
fi
fi
AC_CACHE_SAVE
So, it says unconditionally to use softfp always.
Definitely it's WRONG. For now I'll just remove -mfloat-abi=softfp but the question is if configure needs that section at all.
There is another one that governs calling conventions (similar to stock). SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1931931 · |
|
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
After some additional hacking like including service define on app level got own code compilation attempt.
Failure again but currently even don't see errors.
Lots of warnings.
Like
"
../../src/simde/x86/sse.h:2108:50: warning: ‘__artificial__’ attribute ignored [-Wattributes]
simde_mm_ucomigt_ss (simde__m128 a, simde__m128 b) {
"
and
"
../../src/simde/x86/sse3.h:176:1: warning: ‘simde__m128d simde_mm_movedup_pd(simde__m128d)’ defined but not used [-Wunused-function]
simde_mm_movedup_pd (simde__m128d a) {
"
Will disable warnings and re-try... SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1931978 · |
|
rob smith Volunteer moderator Volunteer tester
Send message Joined: 7 Mar 03 Posts: 22220 Credit: 416,307,556 RAC: 380
|
Can you turn off classes of warnings? That might help you see the wood for the trees. Bob Smith
Member of Seti PIPPS (Pluto is a Planet Protest Society)
Somewhere in the (un)known Universe?
ID: 1931980 · |
|
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
Some errors in SIMDe layer:
../../src/simde/x86/../hedley.h:486:61: error: expected constructor, destructor, or type conversion before ‘(’ token
# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
^
../../src/simde/x86/../simde-common.h:131:1: note: in expansion of macro ‘HEDLEY_STATIC_ASSERT’
HEDLEY_STATIC_ASSERT(sizeof(simde_float32) == 4, "Unable to find 32-bit floating-point type.");
^
../../src/simde/x86/../hedley.h:486:61: error: expected constructor, destructor, or type conversion before ‘(’ token
# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
^
../../src/simde/x86/../simde-common.h:140:1: note: in expansion of macro ‘HEDLEY_STATIC_ASSERT’
HEDLEY_STATIC_ASSERT(sizeof(simde_float64) == 8, "Unable to find 64-bit floating-point type.");
^
../../src/simde/x86/../hedley.h:486:61: error: expected constructor, destructor, or type conversion before ‘(’ token
# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
^
../../src/simde/x86/mmx.h:96:1: note: in expansion of macro ‘HEDLEY_STATIC_ASSERT’
HEDLEY_STATIC_ASSERT(8 == sizeof(simde__m64), "__m64 size incorrect");
^
../../src/simde/x86/../hedley.h:486:61: error: expected constructor, destructor, or type conversion before ‘(’ token
# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
^
../../src/simde/x86/sse.h:128:1: note: in expansion of macro ‘HEDLEY_STATIC_ASSERT’
HEDLEY_STATIC_ASSERT(16 == sizeof(simde__m128), "simde__m128 size incorrect");
^
../../src/simde/x86/../hedley.h:486:61: error: expected constructor, destructor, or type conversion before ‘(’ token
# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
^
../../src/simde/x86/sse2.h:180:1: note: in expansion of macro ‘HEDLEY_STATIC_ASSERT’
HEDLEY_STATIC_ASSERT(16 == sizeof(simde__m128i), "simde__m128i size incorrect");
^
../../src/simde/x86/../hedley.h:486:61: error: expected constructor, destructor, or type conversion before ‘(’ token
# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
^
../../src/simde/x86/sse2.h:181:1: note: in expansion of macro ‘HEDLEY_STATIC_ASSERT’
HEDLEY_STATIC_ASSERT(16 == sizeof(simde__m128d), "simde__m128d size incorrect");
^
Makefile:1279: recipe for target 'seti_boinc-main.o' failed
make[2]: *** [seti_boinc-main.o] Error 1
Makefile:512: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
Makefile:437: recipe for target 'all' failed
make: *** [all] Error 2 SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1931983 · |
|
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
#if defined(HEDLEY_STATIC_ASSERT)
# undef HEDLEY_STATIC_ASSERT
#endif
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
#elif defined(__cplusplus) && __cplusplus >= 201103L
# define HEDLEY_STATIC_ASSERT(expr, message) static_assert(expr, message)
#elif HEDLEY_GCC_HAS_FEATURE(c_static_assert,4,6,0)
# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
#elif HEDLEY_MSVC_VERSION_CHECK(16,0,0)
# define HEDLEY_STATIC_ASSERT(expr, message) static_assert(expr, message)
#else
# define HEDLEY_STATIC_ASSERT(expr, message)
#endif
So fast hack will be to manually select last branch.
#if defined(HEDLEY_STATIC_ASSERT)
# undef HEDLEY_STATIC_ASSERT
#endif
//#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
//# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
//#elif defined(__cplusplus) && __cplusplus >= 201103L
//# define HEDLEY_STATIC_ASSERT(expr, message) static_assert(expr, message)
//#elif HEDLEY_GCC_HAS_FEATURE(c_static_assert,4,6,0)
//# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message)
//#elif HEDLEY_MSVC_VERSION_CHECK(16,0,0)
//# define HEDLEY_STATIC_ASSERT(expr, message) static_assert(expr, message)
//#else
# define HEDLEY_STATIC_ASSERT(expr, message)
//#endif
SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1931984 · |
|
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
Finally there is something I could really work with:
parallella@parallella:~/sah_v7_opt/AKv8$ make
make -s all-recursive
Making all in client
analyzeFuncs.cpp: In function ‘vFloat vec_recip(vFloat)’:
analyzeFuncs.cpp:9055:35: error: ‘_mm_rcp_ps’ was not declared in this scope
vFloat estimate = _mm_rcp_ps( v );
^
analyzeFuncs.cpp:177:55: error: ‘_mm_set_ps’ was not declared in this scope
#define ONE (_mm_set_ps(1.0f, 1.0f, 1.0f, 1.0f))
^
analyzeFuncs.cpp:9057:43: note: in expansion of macro ‘ONE’
return _mm_add_ps(_mm_mul_ps(_mm_sub_ps(ONE, _mm_mul_ps(estimate, v)), estimate), estimate);
^
analyzeFuncs.cpp:9057:70: error: ‘_mm_mul_ps’ was not declared in this scope
return _mm_add_ps(_mm_mul_ps(_mm_sub_ps(ONE, _mm_mul_ps(estimate, v)), estimate), estimate);
^
analyzeFuncs.cpp:9057:71: error: ‘_mm_sub_ps’ was not declared in this scope
return _mm_add_ps(_mm_mul_ps(_mm_sub_ps(ONE, _mm_mul_ps(estimate, v)), estimate), estimate);
^
analyzeFuncs.cpp:9057:82: error: ‘_mm_mul_ps’ was not declared in this scope
return _mm_add_ps(_mm_mul_ps(_mm_sub_ps(ONE, _mm_mul_ps(estimate, v)), estimate), estimate);
^
analyzeFuncs.cpp:9057:82: error: redeclaration of ‘<typeprefixerror>_mm_mul_ps’
analyzeFuncs.cpp:9057:70: note: previous declaration ‘<typeprefixerror>_mm_mul_ps’
return _mm_add_ps(_mm_mul_ps(_mm_sub_ps(ONE, _mm_mul_ps(estimate, v)), estimate), estimate);
^
analyzeFuncs.cpp:9057:93: error: ‘_mm_add_ps’ was not declared in this scope
return _mm_add_ps(_mm_mul_ps(_mm_sub_ps(ONE, _mm_mul_ps(estimate, v)), estimate), estimate);
^
analyzeFuncs.cpp: In function ‘int v_vChirpData(float (*)[2], float (*)[2], int, double, int, int, double)’:
analyzeFuncs.cpp:9097:78: error: ‘_mm_set1_pd’ was not declared in this scope
vDouble rate = _mm_set1_pd(chirp_rate * 0.5 / (sample_rate * sample_rate));
^
analyzeFuncs.cpp:9116:49: error: ‘_mm_set_pd’ was not declared in this scope
vDouble di1 = _mm_add_pd(_mm_set_pd(2.0, 0.0), di);
^
analyzeFuncs.cpp:9116:54: error: ‘_mm_add_pd’ was not declared in this scope
vDouble di1 = _mm_add_pd(_mm_set_pd(2.0, 0.0), di);
^
analyzeFuncs.cpp:9163:42: error: ‘_mm_mul_pd’ was not declared in this scope
a1 = _mm_mul_pd(_mm_mul_pd(di1, di1), rate);
^
analyzeFuncs.cpp:9163:49: error: ‘_mm_mul_pd’ was not declared in this scope
a1 = _mm_mul_pd(_mm_mul_pd(di1, di1), rate);
^
analyzeFuncs.cpp:9163:49: error: redeclaration of ‘<typeprefixerror>_mm_mul_pd’
analyzeFuncs.cpp:9163:42: note: previous declaration ‘<typeprefixerror>_mm_mul_pd’
a1 = _mm_mul_pd(_mm_mul_pd(di1, di1), rate);
^
analyzeFuncs.cpp:9170:72: error: ‘_mm_sub_pd’ was not declared in this scope
a1 = _mm_sub_pd(a1, _mm_sub_pd(_mm_add_pd(a1, roundVal), roundVal));
^
analyzeFuncs.cpp:9170:73: error: ‘_mm_sub_pd’ was not declared in this scope
a1 = _mm_sub_pd(a1, _mm_sub_pd(_mm_add_pd(a1, roundVal), roundVal));
^
analyzeFuncs.cpp:9170:73: error: redeclaration of ‘<typeprefixerror>_mm_sub_pd’
analyzeFuncs.cpp:9170:72: note: previous declaration ‘<typeprefixerror>_mm_sub_pd’
a1 = _mm_sub_pd(a1, _mm_sub_pd(_mm_add_pd(a1, roundVal), roundVal));
^
analyzeFuncs.cpp:9174:40: error: ‘_mm_cvtpd_ps’ was not declared in this scope
x = _mm_movelh_ps(_mm_cvtpd_ps(a1), _mm_cvtpd_ps(a2));
^
analyzeFuncs.cpp:9174:59: error: ‘_mm_movelh_ps’ was not declared in this scope
x = _mm_movelh_ps(_mm_cvtpd_ps(a1), _mm_cvtpd_ps(a2));
^
analyzeFuncs.cpp:9178:26: error: ‘_mm_mul_ps’ was not declared in this scope
y = _mm_mul_ps(x, x);
^
analyzeFuncs.cpp:169:84: error: ‘_mm_set_ps’ was not declared in this scope
#define SS4F (_mm_set_ps(-0.0046075748, -0.0046075748, -0.0046075748, -0.0046075748))
^
analyzeFuncs.cpp:9199:69: note: in expansion of macro ‘SS4F’
s = _mm_mul_ps(_mm_add_ps(_mm_mul_ps(_mm_add_ps(_mm_mul_ps(y, SS4F),
^
analyzeFuncs.cpp:9200:17: error: ‘_mm_add_ps’ was not declared in this scope
SS3F),
^
analyzeFuncs.cpp:9203:14: error: ‘_mm_add_ps’ was not declared in this scope
SS1F)),
^
analyzeFuncs.cpp:9203:14: error: redeclaration of ‘<typeprefixerror>_mm_add_ps’
analyzeFuncs.cpp:9200:17: note: previous declaration ‘<typeprefixerror>_mm_add_ps’
SS3F),
^
analyzeFuncs.cpp:9225:56: error: ‘_mm_sub_ps’ was not declared in this scope
x = _mm_sub_ps(_mm_mul_ps(c, c), _mm_mul_ps(s, s));
^
analyzeFuncs.cpp:9254:30: error: ‘_mm_moveldup_ps’ was not declared in this scope
cd1 = _mm_moveldup_ps(c);
^
analyzeFuncs.cpp:9255:30: error: ‘_mm_movehdup_ps’ was not declared in this scope
cd2 = _mm_movehdup_ps(c);
^
In file included from analyzeFuncs.cpp:103:0:
analyzeFuncs.h:90:46: error: no matching function for call to ‘simde__m128i::simde__m128i(vFloat&)’
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9258:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d1 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d1), 0xb1));
^
analyzeFuncs.h:90:46: note: candidates are:
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9258:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d1 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d1), 0xb1));
^
In file included from ../../src/simde/x86/sse3.h:28:0,
from ../../src/intrinsics.h:40,
from analyzeFuncs.cpp:88:
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i()
} simde__m128i;
^
../../src/simde/x86/sse2.h:126:3: note: candidate expects 0 arguments, 1 provided
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i(const simde__m128i&)
../../src/simde/x86/sse2.h:126:3: note: no known conversion for argument 1 from ‘vFloat {aka simde__m128}’ to ‘const simde__m128i&’
In file included from analyzeFuncs.cpp:103:0:
analyzeFuncs.cpp:9258:83: error: ‘_mm_shuffle_epi32’ was not declared in this scope
d1 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d1), 0xb1));
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.h:90:46: error: no matching function for call to ‘simde__m128i::simde__m128i(vFloat&)’
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9259:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d2 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d2), 0xb1));
^
analyzeFuncs.h:90:46: note: candidates are:
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9259:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d2 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d2), 0xb1));
^
In file included from ../../src/simde/x86/sse3.h:28:0,
from ../../src/intrinsics.h:40,
from analyzeFuncs.cpp:88:
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i()
} simde__m128i;
^
../../src/simde/x86/sse2.h:126:3: note: candidate expects 0 arguments, 1 provided
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i(const simde__m128i&)
../../src/simde/x86/sse2.h:126:3: note: no known conversion for argument 1 from ‘vFloat {aka simde__m128}’ to ‘const simde__m128i&’
analyzeFuncs.cpp:9264:35: error: ‘_mm_addsub_ps’ was not declared in this scope
cd1 = _mm_addsub_ps(cd1, td1);
^
analyzeFuncs.cpp:9268:27: error: ‘_mm_store_ps’ was not declared in this scope
_mm_store_ps(cd, cd1);
^
analyzeFuncs.cpp: In function ‘int v_vpChirpData(float (*)[2], float (*)[2], int, double, int, int, double)’:
analyzeFuncs.cpp:9324:78: error: ‘_mm_set1_pd’ was not declared in this scope
vDouble rate = _mm_set1_pd(chirp_rate * 0.5 / (sample_rate * sample_rate));
^
analyzeFuncs.cpp:9332:49: error: ‘_mm_set_pd’ was not declared in this scope
vDouble di1 = _mm_add_pd(_mm_set_pd(2.0, 0.0), di);
^
analyzeFuncs.cpp:9332:54: error: ‘_mm_add_pd’ was not declared in this scope
vDouble di1 = _mm_add_pd(_mm_set_pd(2.0, 0.0), di);
^
analyzeFuncs.cpp:9354:37: error: ‘_MM_HINT_NTA’ was not declared in this scope
_mm_prefetch((char *) (d+16), _MM_HINT_NTA);
^
analyzeFuncs.cpp:9354:49: error: ‘_mm_prefetch’ was not declared in this scope
_mm_prefetch((char *) (d+16), _MM_HINT_NTA);
^
analyzeFuncs.cpp:9364:42: error: ‘_mm_mul_pd’ was not declared in this scope
a1 = _mm_mul_pd(_mm_mul_pd(di1, di1), rate);
^
analyzeFuncs.cpp:9364:49: error: ‘_mm_mul_pd’ was not declared in this scope
a1 = _mm_mul_pd(_mm_mul_pd(di1, di1), rate);
^
analyzeFuncs.cpp:9364:49: error: redeclaration of ‘<typeprefixerror>_mm_mul_pd’
analyzeFuncs.cpp:9364:42: note: previous declaration ‘<typeprefixerror>_mm_mul_pd’
a1 = _mm_mul_pd(_mm_mul_pd(di1, di1), rate);
^
analyzeFuncs.cpp:9371:72: error: ‘_mm_sub_pd’ was not declared in this scope
a1 = _mm_sub_pd(a1, _mm_sub_pd(_mm_add_pd(a1, roundVal), roundVal));
^
analyzeFuncs.cpp:9371:73: error: ‘_mm_sub_pd’ was not declared in this scope
a1 = _mm_sub_pd(a1, _mm_sub_pd(_mm_add_pd(a1, roundVal), roundVal));
^
analyzeFuncs.cpp:9371:73: error: redeclaration of ‘<typeprefixerror>_mm_sub_pd’
analyzeFuncs.cpp:9371:72: note: previous declaration ‘<typeprefixerror>_mm_sub_pd’
a1 = _mm_sub_pd(a1, _mm_sub_pd(_mm_add_pd(a1, roundVal), roundVal));
^
analyzeFuncs.cpp:9375:40: error: ‘_mm_cvtpd_ps’ was not declared in this scope
x = _mm_movelh_ps(_mm_cvtpd_ps(a1), _mm_cvtpd_ps(a2));
^
analyzeFuncs.cpp:9375:59: error: ‘_mm_movelh_ps’ was not declared in this scope
x = _mm_movelh_ps(_mm_cvtpd_ps(a1), _mm_cvtpd_ps(a2));
^
analyzeFuncs.cpp:9379:26: error: ‘_mm_mul_ps’ was not declared in this scope
y = _mm_mul_ps(x, x);
^
analyzeFuncs.cpp:169:84: error: ‘_mm_set_ps’ was not declared in this scope
#define SS4F (_mm_set_ps(-0.0046075748, -0.0046075748, -0.0046075748, -0.0046075748))
^
analyzeFuncs.cpp:9385:69: note: in expansion of macro ‘SS4F’
s = _mm_mul_ps(_mm_add_ps(_mm_mul_ps(_mm_add_ps(_mm_mul_ps(y, SS4F),
^
analyzeFuncs.cpp:9386:17: error: ‘_mm_add_ps’ was not declared in this scope
SS3F),
^
analyzeFuncs.cpp:9389:14: error: ‘_mm_add_ps’ was not declared in this scope
SS1F)),
^
analyzeFuncs.cpp:9389:14: error: redeclaration of ‘<typeprefixerror>_mm_add_ps’
analyzeFuncs.cpp:9386:17: note: previous declaration ‘<typeprefixerror>_mm_add_ps’
SS3F),
^
analyzeFuncs.cpp:9398:56: error: ‘_mm_sub_ps’ was not declared in this scope
x = _mm_sub_ps(_mm_mul_ps(c, c), _mm_mul_ps(s, s));
^
analyzeFuncs.cpp:9413:30: error: ‘_mm_moveldup_ps’ was not declared in this scope
cd1 = _mm_moveldup_ps(c);
^
analyzeFuncs.cpp:9414:30: error: ‘_mm_movehdup_ps’ was not declared in this scope
cd2 = _mm_movehdup_ps(c);
^
In file included from analyzeFuncs.cpp:103:0:
analyzeFuncs.h:90:46: error: no matching function for call to ‘simde__m128i::simde__m128i(vFloat&)’
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9417:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d1 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d1), 0xb1));
^
analyzeFuncs.h:90:46: note: candidates are:
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9417:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d1 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d1), 0xb1));
^
In file included from ../../src/simde/x86/sse3.h:28:0,
from ../../src/intrinsics.h:40,
from analyzeFuncs.cpp:88:
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i()
} simde__m128i;
^
../../src/simde/x86/sse2.h:126:3: note: candidate expects 0 arguments, 1 provided
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i(const simde__m128i&)
../../src/simde/x86/sse2.h:126:3: note: no known conversion for argument 1 from ‘vFloat {aka simde__m128}’ to ‘const simde__m128i&’
In file included from analyzeFuncs.cpp:103:0:
analyzeFuncs.cpp:9417:83: error: ‘_mm_shuffle_epi32’ was not declared in this scope
d1 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d1), 0xb1));
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.h:90:46: error: no matching function for call to ‘simde__m128i::simde__m128i(vFloat&)’
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9418:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d2 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d2), 0xb1));
^
analyzeFuncs.h:90:46: note: candidates are:
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9418:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d2 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d2), 0xb1));
^
In file included from ../../src/simde/x86/sse3.h:28:0,
from ../../src/intrinsics.h:40,
from analyzeFuncs.cpp:88:
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i()
} simde__m128i;
^
../../src/simde/x86/sse2.h:126:3: note: candidate expects 0 arguments, 1 provided
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i(const simde__m128i&)
../../src/simde/x86/sse2.h:126:3: note: no known conversion for argument 1 from ‘vFloat {aka simde__m128}’ to ‘const simde__m128i&’
analyzeFuncs.cpp:9423:35: error: ‘_mm_addsub_ps’ was not declared in this scope
cd1 = _mm_addsub_ps(cd1, td1);
^
analyzeFuncs.cpp:9427:27: error: ‘_mm_store_ps’ was not declared in this scope
_mm_store_ps(cd, cd1);
^
In file included from analyzeFuncs.cpp:103:0:
analyzeFuncs.h:90:46: error: no matching function for call to ‘simde__m128i::simde__m128i(vFloat&)’
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9491:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d1 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d1), 0xb1));
^
analyzeFuncs.h:90:46: note: candidates are:
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9491:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d1 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d1), 0xb1));
^
In file included from ../../src/simde/x86/sse3.h:28:0,
from ../../src/intrinsics.h:40,
from analyzeFuncs.cpp:88:
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i()
} simde__m128i;
^
../../src/simde/x86/sse2.h:126:3: note: candidate expects 0 arguments, 1 provided
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i(const simde__m128i&)
../../src/simde/x86/sse2.h:126:3: note: no known conversion for argument 1 from ‘vFloat {aka simde__m128}’ to ‘const simde__m128i&’
In file included from analyzeFuncs.cpp:103:0:
analyzeFuncs.h:90:46: error: no matching function for call to ‘simde__m128i::simde__m128i(vFloat&)’
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9492:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d2 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d2), 0xb1));
^
analyzeFuncs.h:90:46: note: candidates are:
#define cast_vFloat_to_vInt32(X) (vSInt32)(X)
^
analyzeFuncs.h:89:44: note: in definition of macro ‘cast_vInt32_to_vFloat’
#define cast_vInt32_to_vFloat(X) (vFloat)(X)
^
analyzeFuncs.cpp:9492:52: note: in expansion of macro ‘cast_vFloat_to_vInt32’
d2 = cast_vInt32_to_vFloat(_mm_shuffle_epi32(cast_vFloat_to_vInt32(d2), 0xb1));
^
In file included from ../../src/simde/x86/sse3.h:28:0,
from ../../src/intrinsics.h:40,
from analyzeFuncs.cpp:88:
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i()
} simde__m128i;
^
../../src/simde/x86/sse2.h:126:3: note: candidate expects 0 arguments, 1 provided
../../src/simde/x86/sse2.h:126:3: note: simde__m128i::simde__m128i(const simde__m128i&)
../../src/simde/x86/sse2.h:126:3: note: no known conversion for argument 1 from ‘vFloat {aka simde__m128}’ to ‘const simde__m128i&’
analyzeFuncs.cpp: At global scope:
analyzeFuncs.cpp:9696:1: error: ISO C++ forbids declaration of ‘v_armv7_ChirpData’ with no type [-fpermissive]
) {
^
Makefile:672: recipe for target 'seti_boinc-analyzeFuncs.o' failed
make[2]: *** [seti_boinc-analyzeFuncs.o] Error 1
Makefile:512: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
Makefile:437: recipe for target 'all' failed
make: *** [all] Error 2
SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1931985 · |
|
Langweiler
Send message Joined: 24 Feb 17 Posts: 15 Credit: 293,469 RAC: 0
|
Thank you for all the great work. I have attempted to compile with revision 3750. If I should use a different revision by now, please, let me know.
Before I start I would like to ask you for the following changes in the repository: Please...
- make the file _autosetup executuable.
- fix detection of armv7 vs. armv8 by changing the following lines in configure.ac:
AM_CONDITIONAL(ARMV7, [test -n "`echo ${target} | fgrep -e arm v7 -e gnueabihf`"])
AM_CONDITIONAL(ARMV8, [test -n "`echo ${target} | fgrep -e arm v8 -e gnueabihf`"])
And here we go:
$ ./configure --disable-server --disable-graphics --disable-shared --enable-client --enable-static-client --enable-dependency-tracking --enable-static --with-boinc-platform=armv7l-unknown-linux-gnueabihf --with-ssl --enable-bitness=32 --enable-arm_neon --enable-fast-math --enable-comoptions --enable-intrinsics CXXFLAGS="-I./client -I./../src" CPPFLAGS="-DUSE_FFTW -DASYNC_SPIKE -DSETI7 -DSETI8 -DUSE_JSPF -DUSE_I386_OPTIMIZATIONS -DUSE_I386_XEON -fpermissive" LDSTATIC="/usr/lib/arm-linux-gnueabihf/libssl.a /usr/lib/arm-linux-gnueabihf/libcrypto.a" LDFLAGS=" -ldl -lm -lz -static-libgcc -static-libstdc++" BOINCDIR=" ../../boinc"
$ make -j 8
The result are numerous warnings and erros [1]. Hope that helps.
[1] http://paste.ubuntu.com/p/GrrHVqMJxy/
ID: 1932114 · |
|
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
- make the file _autosetup executuable.
That should wait another commit cause I configured write access only on Windows host so far.
- fix detection of armv7 vs. armv8 by changing the following lines in configure.ac:
AM_CONDITIONAL(ARMV7, [test -n "`echo ${target} | fgrep -e armv7 -e gnueabihf`"])
AM_CONDITIONAL(ARMV8, [test -n "`echo ${target} | fgrep -e armv8 -e gnueabihf`"])
done.
Well, I added few more defines but currently fresh rev still unbuidable. Some contention in types definitions between SIMDe and other world. Need to fix that before asking to try again... SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1932385 · |
|
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
For now I'm stuck on simde_float32 type.
For some reason typedef float simde_float32; didn't solve "missing type" error.... SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1932471 · |
|
tullio Volunteer tester
Send message Joined: 9 Apr 04 Posts: 8797 Credit: 2,930,782 RAC: 1
|
Since my old Nokia cell phone died, I had to buy a new smart phone and I bought an Ulefone Power 3 with Android 7.1.1. I then created a Google account and searched BOINC and SETi. It downloaded 5 tasks on its arm64-neon CPU with 8 cores. One is now running. It's the first time a use a RISC CPU after leaving in Trieste Research Area my Bull/MIPS R6000 minicomputer in 1995. I've read in Berkeley Online news that David Patterson and John Hennessy have been awarded the Turing prize for creating the RISC CPUs like Sparc and MIPS.
Tullio
tasks are named as aarch64-android-linux-gnu but they seem to be failing
ID: 1932491 · |
|
tullio Volunteer tester
Send message Joined: 9 Apr 04 Posts: 8797 Credit: 2,930,782 RAC: 1
|
8.00 tasks (arm64-neon) all failed. 801 are still crunching. What is the difference?
Tullio
ID: 1932509 · |
|
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
8.00 tasks (arm64-neon) all failed. 801 are still crunching. What is the difference?
Tullio
First of all it's a little offtopic for this thread. You running Android, thread about Linux ARM opt app building.
Regarding apps:
Android (ARM64 processor) 8.00 (arm64-neon) 22 Jan 2016, 0:38:52 UTC 247 GigaFLOPS
Android (ARM64 processor) 8.00 (arm64-vfpv4) 22 Jan 2016, 0:38:52 UTC 233 GigaFLOPS
Android (ARM64 processor) 8.01 4 Jan 2017, 3:33:29 UTC 620 GigaFLOPS
All work on some devices so I think it's version of Android (7+) that causes problems with your device and 8.0 app. Why plan class didn't account for that - don't know.
Eventually quota system will take care of it so that host will receive only 8.01 tasks (Android 7 compatible, perhaps). SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1932554 · |
|
tullio Volunteer tester
Send message Joined: 9 Apr 04 Posts: 8797 Credit: 2,930,782 RAC: 1
|
Sorry, I could not find any thread dedicated to Android. In Einstein they have one. One more question. SETI sees a GPU coprocessor on my Ulefone CPU. Einstein sees none. Why?
Tullio
ID: 1932598 · |
|
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
Sorry, I could not find any thread dedicated to Android. In Einstein they have one. One more question. SETI sees a GPU coprocessor on my Ulefone CPU. Einstein sees none. Why?
Tullio
1)If you can't find existing thread no one deny you to start fresh one ;)
2) Could you explain what "SETI sees GPU" means? Some log messages with GPU detected? Post them please. AFAIK CPU apps don't do GPU detection at all and there is no GPU apps for Android so far... SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1932808 · |
|
Wiggo
Send message Joined: 24 Jan 00 Posts: 34841 Credit: 261,360,520 RAC: 489
|
Sorry, I could not find any thread dedicated to Android. In Einstein they have one. One more question. SETI sees a GPU coprocessor on my Ulefone CPU. Einstein sees none. Why?
Tullio
1)If you can't find existing thread no one deny you to start fresh one ;)
2) Could you explain what "SETI sees GPU" means? Some log messages with GPU detected? Post them please. AFAIK CPU apps don't do GPU detection at all and there is no GPU apps for Android so far...
AArch64 Processor rev 4 (aarch64) (8 processors) OpenCL GPU Mali-G71 (4096MB) driver: 1.02
Cheers.
ID: 1932811 · |
|
tullio Volunteer tester
Send message Joined: 9 Apr 04 Posts: 8797 Credit: 2,930,782 RAC: 1
|
That is what I find clicking on Computer.
Tullio
ID: 1932820 · |
|
Raistmer Volunteer developer Volunteer tester
Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121
|
AFAIK host details fromed from statistics BOINC client returns to BOINC server.
Not actually SETI-scpecific per se.
Most probably, SETI project just uses newer rev of BOINC server software than Einstein does.
Good to know detection (and hence sheduling) exist it fresh BOINC builds for Android OpenCL too.
When we will have Mali support under Linux it could be easier to enable it for Android too... SETI apps news
We're not gonna fight them. We're gonna transcend them.
ID: 1932832 · |
|