This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

float behaivior on AARCH64

Hello,

forgive me if my question is a litte bit weak in content and linguistic. I'm only a Hobbyist and english is not my nativ.

I'm trying to compile an App from Einstein@Home for AARCH64 using GCC. Einstein@Home is a DC-Projekt using Boinc. The App mainly calculates FFT's in single-precision using FFTW-lib. After the calculations are finished it send's them back to the Server and validates them against the same Tasks calculated by an different Host. Host's can vary over many different CPU-Architectures.

The Problem is that Task's from my AARCH64-App-Version are mostly above the threshold of the Validator. Compiling the App with the same settings for the AARCH32-Instructions on the same Device delivers Valid results. I've tryed this with many different Compiler-options, GCC-versions, lib-versions, with and without using of NEON. The result is always the same: AARCH64-invalid, AARCH32-valid.

I've readed in the ARMv8-documentions. But can't find somethink that influences the precion of float calcluations in a way that fit's to my Problem.

Sorry for that squishy Question but I don't know where to start to debug this.

Greetings from Germany

Parents
  • Okay, time for a little Update:

    The 32bit-Version seems to be affected too. The Error occours if I specify the Arch-Type in GCC to ARMv8-A. Compiled with -march=ARMv7-A all Results get Valid. As soon as I switch to -march=ARMv8-A mostly all of my result's get not validated by the server. The output seems to be slighty different. The differens between both is very little. Any suggestions what can cause this differences?

Reply
  • Okay, time for a little Update:

    The 32bit-Version seems to be affected too. The Error occours if I specify the Arch-Type in GCC to ARMv8-A. Compiled with -march=ARMv7-A all Results get Valid. As soon as I switch to -march=ARMv8-A mostly all of my result's get not validated by the server. The output seems to be slighty different. The differens between both is very little. Any suggestions what can cause this differences?

Children