[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