|
|
On 6/23/21 11:20 PM, Thomas Debe wrote:
> 1.) Problem:
> Build povunix-v3.8.9-beta.668.tar.gz Compiler clang-x:
> Optimized Noise-Functions not compiled !
> Clang defines __clang__ Not __GNUC__
>
> Solution :
> File : unix/povconfig/syspovconfig.h
>
> Z 169ff: #if defined (__clang__)
> #define HAVE_ASM_AVX
> #define HAVE_ASM_AVX2
> #define HAVE_ASM_FMA3
> #define HAVE_ASM_FMA4
> #endif
>
> Z. 179: // most notably platform-specific optimized implementations.
> #if defined (__GNUC__) || defined(__clang__)
With respect to this, remember POV-Ray is, on unix/linux, a gnu tooling
targeted build. If using clang, it would be normal to use the
clang/clang++ flag '-fgnuc-version=5', say if your clang supports all
the variations. Though using my povr branch, I do get the intel hand
optimizations on my i3 doing clang compiles.
---
Aside: Long been on my list to look at some of the disable build
configurations Christoph added when enabling the noise optimizations for
unix/linux. This a new to v3.8 feature for unix/linux users!
It all works to what I can test without and AMD CPU. For example, to
turn off all the AMD/Intel hand optimizations you build with the
compiler flags:
-DDISABLE_OPTIMIZED_NOISE_AVXFMA4 -DDISABLE_OPTIMIZED_NOISE_AVX2FMA3 and
-DDISABLE_OPTIMIZED_NOISE_AVX
On my i3 which has avx I then get a portable avx instruction optimized
noise(1). If I want that gone too - so I only get whatever optimizations
the compiler would give me I add:
-DDISABLE_OPTIMIZED_NOISE_AVX_PORTABLE
Pretty cool. I've never set it up, but these configurations make it
relatively easy to create a set load modules with the differing
optimizations. We could, for example, look for more of the optimized
noise performance outliers - scenes where the hand optimized code looked
to be somewhat slower.
Bill P.
(1) - For those with avx2, wonder what OPTIMIZED_NOISE_AVX2_PORTABLE
might offer...
Post a reply to this message
|
|