Welcome, Guest. Please login or register.

Author Topic: Gold 2.7 release for the Vampire accelerators  (Read 48323 times)

Description:

0 Members and 2 Guests are viewing this topic.

Offline wawrzon

Re: Gold 2.7 release for the Vampire accelerators
« on: March 07, 2018, 08:21:18 PM »
Quote from: Chucky;837056
BUT..


but why do you come to every thread about apollo/vampire and raise completely insignificant issues, be it even insistance on your personally preferred naming convention, right or wrong?

the discussion about fpu precision, prior to your interruption is something essential and might actually have positive outcome for vampire customers, apparently it even already has. the question if fpga is implementation, emulation, simulation or whatever you fancy to call it, is completely hollow.
 

Offline wawrzon

Re: Gold 2.7 release for the Vampire accelerators
« Reply #1 on: March 07, 2018, 09:20:30 PM »
@thor and fpu experts

by the way allow me a quick question ot, as accidentaly a piece of code im working on touches the subject of precision. what do you think should i define or undefine DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS for m68k (with fpu assumably) in this respect?

Code: [Select]

// Double operations detection based on target architecture.
// Linux uses a 80bit wide floating point stack on x86. This induces double
// rounding, which in turn leads to wrong results.
// An easy way to test if the floating-point operations are correct is to
// evaluate: 89255.0/1e22. If the floating-point stack is 64 bits wide then
// the result is equal to 89255e-22.
// The best way to test this, is to create a division-function and to compare
// the output of the division with the expected result. (Inlining must be
// disabled.)
// On Linux,x86 89255e-22 != Div_double(89255.0/1e22)
#if defined(_M_X64) || defined(__x86_64__) || \
defined(__ARMEL__) || \
defined(_MIPS_ARCH_MIPS32R2)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__)
#if defined(_WIN32)
// Windows uses a 64bit wide floating point stack.
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#else
#undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS
#endif  // _WIN32
#else
#error Target architecture was not detected as supported by Double-Conversion.
#endif
 

Offline wawrzon

Re: Gold 2.7 release for the Vampire accelerators
« Reply #2 on: March 07, 2018, 09:43:19 PM »
Quote from: ALB42;837067
because 68881/68882 68040/68060 will also do so (use 80 bit like x86/x87) I would say for m68k this define should not be set,

i suspected so.
Quote
did you check what kind of code is switched with that define?

its a huge project and i fear it uses a lot of fpu. just want to get it compile for 68k first;)
 

Offline wawrzon

Re: Gold 2.7 release for the Vampire accelerators
« Reply #3 on: March 07, 2018, 10:16:05 PM »
@alb42&thor
thx for the input. ill have to keep it in mind as potential source of trouble and leave for further investigation later. im past this point for now so lets return to the topic.