[flac-dev] slow on apple silicon?

Scott Brown scottcbrown at gmail.com
Wed Jul 6 19:21:30 UTC 2022


Ok, so the latest being slower on both builds at level 8 than the Released
1.3.4 makes sense with recent compression improvements. Thanks. I was using
level 8 for all tests.

As for the Neon optimizations, it seems that if I configure for Universal
binary ( -arch arm64 -arch x86_64),the neon optimizations are not on. If I
configure for just arm64, they are on:

  Configuration summary :

    FLAC version : ............................ 1.3.4

    Host CPU : ................................ aarch64
    Host Vendor : ............................. apple
    Host OS : ................................. darwin21.5.0

    Version string : reference libFLAC git-7e0a0e57 20220701

    Compiler is GCC : ......................... no
    Compiler is Clang : ....................... yes
    SSE optimizations : ....................... yes
    Neon optimizations : ...................... yes
    Asm optimizations : ....................... yes
    Ogg/FLAC support : ........................ no
    Stack protector  : ........................ no
    Fuzzing support (Clang only) : ............ no

However, make fails after this. If i configure for both architectures,
"make" succeeds, but no neon optimization.

Configure for just arm64 gives neon optimizations, but "make" gives a bunch
of cputype errors:

/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(bitmath.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(bitreader.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(bitwriter.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(cpu.o) cputype (16777228) does not match previous
archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(crc.o) cputype (16777228) does not match previous
archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(fixed.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(fixed_intrin_sse2.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(fixed_intrin_ssse3.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(float.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(format.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc.o) cputype (16777228) does not match previous
archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc_intrin_avx2.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc_intrin_neon.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc_intrin_sse2.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc_intrin_sse41.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc_intrin_vsx.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(md5.o) cputype (16777228) does not match previous
archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(memory.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(metadata_iterators.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(metadata_object.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lt1-stream_decoder.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lt2-stream_encoder.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(stream_encoder_framing.o) cputype (16777228) does
not match previous archive members cputype (16777223) (all members must
match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(stream_encoder_intrin_avx2.o) cputype (16777228)
does not match previous archive members cputype (16777223) (all members
must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(stream_encoder_intrin_sse2.o) cputype (16777228)
does not match previous archive members cputype (16777223) (all members
must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(stream_encoder_intrin_ssse3.o) cputype (16777228)
does not match previous archive members cputype (16777223) (all members
must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(window.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(bitmath.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(bitreader.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(bitwriter.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(cpu.o) cputype (16777228) does not match previous
archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(crc.o) cputype (16777228) does not match previous
archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(fixed.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(fixed_intrin_sse2.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(fixed_intrin_ssse3.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(float.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(format.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc.o) cputype (16777228) does not match previous
archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc_intrin_avx2.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc_intrin_neon.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc_intrin_sse2.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc_intrin_sse41.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lpc_intrin_vsx.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(md5.o) cputype (16777228) does not match previous
archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(memory.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(metadata_iterators.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(metadata_object.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lt1-stream_decoder.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(lt2-stream_encoder.o) cputype (16777228) does not
match previous archive members cputype (16777223) (all members must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(stream_encoder_framing.o) cputype (16777228) does
not match previous archive members cputype (16777223) (all members must
match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(stream_encoder_intrin_avx2.o) cputype (16777228)
does not match previous archive members cputype (16777223) (all members
must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(stream_encoder_intrin_sse2.o) cputype (16777228)
does not match previous archive members cputype (16777223) (all members
must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(stream_encoder_intrin_ssse3.o) cputype (16777228)
does not match previous archive members cputype (16777223) (all members
must match)
/Library/Developer/CommandLineTools/usr/bin/ranlib: archive member:
.libs/libFLAC++-static.a(window.o) cputype (16777228) does not match
previous archive members cputype (16777223) (all members must match)
make[3]: *** [Makefile:521: libFLAC++-static.la] Error 1
make[3]: Leaving directory '/Documents/GitHub/flac/src/libFLAC++'
make[2]: *** [Makefile:438: all-recursive] Error 1
make[2]: Leaving directory '/Documents/GitHub/flac/src'
make[1]: *** [Makefile:508: all-recursive] Error 1
make[1]: Leaving directory '/Documents/GitHub/flac'
make: *** [Makefile:440: all] Error 2




On Wed, Jul 6, 2022 at 2:59 PM Martijn van Beurden <mvanb1 at gmail.com> wrote:

> Op wo 6 jul. 2022 om 20:45 schreef Scott Brown <scottcbrown at gmail.com>:
> >     Neon optimizations : ...................... no
>
> It seems for some reason NEON is not enabled by configure. Can you
> provide the config.log file so I can check what goes wrong?
>
> > But this version is even *slower* than the released 1.3.4. Running the
> native arm build from the latest code took 3:54 (3 minutes, 54 seconds)
> (3:10 on the released 1.3.4 code).
> > Compiling for intel from the latest code, the intel build through
> emulation took 3:02 (1:50 on the released 1.3.4 intel build)
>
> If you did the timing with the highest presets (-6, -7 or -8) most of
> this slowdown is caused by recent improvement in compression at the
> cost of encoding speed. See https://github.com/xiph/flac/pull/245
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/flac-dev/attachments/20220706/01843d9d/attachment-0001.htm>


More information about the flac-dev mailing list