POV-Ray : Newsgroups : povray.beta-test : Technical verification build "v3.8.0-beta.668" - Unix package! : Re: Technical verification build "v3.8.0-beta.668" - Unix package! Server Time
27 Feb 2024 17:21:05 EST (-0500)
  Re: Technical verification build "v3.8.0-beta.668" - Unix package!  
From: Thomas Debe
Date: 27 Jun 2021 08:33:04
Message: <60d87000$1@news.povray.org>
Hello !
Sorry for the delay !

Am 24.06.21 um 13:19 schrieb clipka:
> Can you please double-check whether these problems are specific to the 
> Unix source package (povunix-v3.8.0-beta.668.tar.gz), or whether they 
> also occur when building form the "raw" repository source 
> (https://github.com/c-lipka/povray/archive/refs/tags/v3.8.0-pre-beta.668.tar.gz)? 
Yes I can confirm the behavior for clang-10,clang-11 and clang-12.
> Yes - and that is very much deliberate. When AMD provided us with the 
> AVX/FMA4 optimized code back in mid-2017, they also did some thorough 
> performance testing on a very diverse farm of ~20 AMD and ~25 Intel 
> machines, and ended up strongly recommending to specifically *NOT* use 
> the AVX2/FMA3 optimized code (which had been provided by Intel years 
> earlier) on AMD processors, but rather give preference to the portable 
> code, in a variant compiler-optimized for AVX.

The real background was probably a bug in the FMA3 implementation of the 
first Ryzen [1].
The Ryzen was the first processor from AMD to support FMA3. And FMA4 is 
not officially supported via the CPU flags.
In german:

>> Solution:
>> bool CPUInfo::IsIntel()
>> {
>>   return gpData->cpuidInfo.vendorId == kCPUVendor_Intel|| kCPUVendor_AMD;
>> }
> Um... no, that would be broken on multiple levels. For starters, it 
> fails to do what you probably intend it to do (it actually makes the 
> function always return `true`, even if the vendor is neither Intel nor 
> AMD).

Like :
bool CPUInfo::IsIntel()
    return true;

Thomas Debe

Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.