Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: FLAC 1.3.1 has been released (Read 102980 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

FLAC 1.3.1 has been released

Reply #25
me7, I can replicate the speed difference;  I'm admittedly rather surprised.  Usually the ICL builds eke out at least a small bump.

 

FLAC 1.3.1 has been released

Reply #26
How do you bench the encoding speed? I found no command for that..

FLAC 1.3.1 has been released

Reply #27
Really?

a) This build is able to use SSE/AVX-accelerated routines when possible.
b) Remember that -6, -7 and -8 presets were re-tuned. For example, -6 was very close to -5. Now it is noticeably slower but compresses better.
Or you can old presets by using the following settings:
Code: [Select]
old preset     equivalent settings
-6            -l 8 -b 4096 -m -r 6
-7            -l 8 -b 4096 -m -e -r 6
-8            -l 12 -b 4096 -m -e -r 6

yes, it is quite a difference. encoding speed at -6 is 82x (1.3.0) to 50x (1.3.1).

regarding the ''strict'' sse2 requirement in the official build: would it have broken optimizations to just ask for sse1 (like in your build)?

FLAC 1.3.1 has been released

Reply #28
yes, it is quite a difference. encoding speed at -6 is 82x (1.3.0) to 50x (1.3.1).


As I wrote, just use "-l 8 -b 4096 -m -r 6" instead of "-6" if you want the speed of the old preset.

FLAC 1.3.1 has been released

Reply #29
My own ICL 14 compile is doing even worse than the one from Rare..
In addition I get the warning "warning #10121: overriding '/QxCORE-AVX2' with '/archAVX'"for libFLAC_static when I compile it with "/QxCORE-AVX2".
It only goes away if I chose "/QxCORE-AVX", which doesn't make that much sense to me.

And yes, my Haswell i4600u is capable of AVX2.

Measured with a stop watch:

3.822.698.948 Bytes 16 bit Wav

Sourceforge version : 01:31.4
Own Vc120 compile : 01:35.8
Own ICL 14 compile : 01:55.6

FLAC 1.3.1 has been released

Reply #30
As I wrote, just use "-l 8 -b 4096 -m -r 6" instead of "-6" if you want the speed of the old preset.

sure, just wanted to show old/new standard switch in contrast  it is on par when using this preset, so thank you.

FLAC 1.3.1 has been released

Reply #31
C2D, nvidia GT640, testing a 13min CDDA-WAV using flac --best/-8:
1.3.0 32bit icl: 16.8sec
1.3.0 64bit icl: 16.7sec
1.3.1 32bit icl: 13.5sec
1.3.1 32bit: 13sec
1.3.1 64bit icl: 12.3sec
1.3.1 64bit: 12sec
FLACCL: 5.9sec

Nice speedbump.

FLAC 1.3.1 has been released

Reply #32
Going to post my findings, but not going to bore you with exact numbers, because I don't think this thread was meant for benchmark details.

I used the default compression level (-5) and window's powershell measure-command

Comparing rarewares 1.3.0 I had, with the rarewares for 1.3.1 and the official binaries, I can conclude the following:
* For rarewares 1.3.0, the 64 bit binary used to be slower than the 32 bit.
* For rarewares 1.3.1, the 64 bit binary is now faster. To a lesser degree than above.
* The 64 bit official binary is slightly faster than the official 32-bit, but this diff was smaller than the cases above.

Overall the official binaries are the fastest. And the rarewares 1.3.1 are an improvement over 1.3.0

Hardware: http://valid.canardpc.com/jnf5fx

FLAC 1.3.1 has been released

Reply #33
Hello,

@AiZ: Would you mind to provide "your" 1.3.1?

Unfortunately, "my" compile and the official one output the same numbers, git-7251201 remains the fastest.

To get the execution time, I use timer64 from Igor Pavlov (7-zip/7-bench).

git-7251201 (-l 12 -b 4096 -m -e -r 6)
Code: [Select]
Commit   =      3924 KB  =      4 MB
Work Set =      3324 KB  =      4 MB

Kernel Time  =     1.996 =    3%
User Time    =    46.035 =   92%
Process Time =    48.032 =   96%
Global Time  =    49.955 =  100%

official/my compile 1.3.1 (-l 12 -b 4096 -m -e -r 6)
Code: [Select]
Commit   =     14152 KB  =     14 MB
Work Set =     13624 KB  =     14 MB

Kernel Time  =     0.904 =    1%
User Time    =    49.561 =   96%
Process Time =    50.466 =   98%
Global Time  =    51.375 =  100%

On my now ageing architecture (C2D e7200, like yours), I don't know if the small performance drop and the bigger working set could be related...

    AiZ

FLAC 1.3.1 has been released

Reply #34
Curious speed results you see there. On my Core i7 the official 64-bit binary is 57% faster than your old git build (235.9596x realtime speed vs 150.1619x).
The increase you see in the working set size comes from output buffering. It writes less often to the disk so it should only help with speed.

FLAC 1.3.1 has been released

Reply #35
@AiZ: Would you mind to provide "your" 1.3.1?

Unfortunately, "my" compile and the official one output the same numbers, git-7251201 remains the fastest.

That probably has to do with this patch: http://lists.xiph.org/pipermail/flac-dev/2...ust/004987.html

Sorry guys, this was the trade-off. I myself am stuck with a C2D as well.
Music: sounds arranged such that they construct feelings.

FLAC 1.3.1 has been released

Reply #36
One can open lpc_intrin_sse.c, find "#if 1" line and replace it with "#if 0", then compile flac.exe.

P.S. I suspect that old Intel CPUs (older than Core i 'Nehalem') suffer from slow unaligned loads. But I'm not an expert.


FLAC 1.3.1 has been released

Reply #38
One can open lpc_intrin_sse.c, find "#if 1" line and replace it with "#if 0", then compile flac.exe.

So I did it myself and tested on Intel Core2. For -5 preset, the difference is 8% (encodig time is 16.4 seconds vs 15.2 sec). For the old -8 preset, the difference is 4% (48.2 sec vs 46.4 sec). But for the new -8 preset, the difference is 24% (54.8 sec vs 44.2 sec)!  Oops. This is not funny.

Maybe FLAC should have both old and new versions and choose the appropriate ones.

I built both the original FLAC 1.3.1 and the modified code with the same compiler (MinGW-w64/GCC 4.9.2) and attached them to this post, so you can test their encoding speed.

FLAC 1.3.1 has been released

Reply #39
Hi,

With modified lpc_intrin_sse.c, 1.3.1 performance is on par with git-7251201 one (C2D architecture).

Thanks,

    AiZ

FLAC 1.3.1 has been released

Reply #40
It would be interesting to see what version is faster on other AMD and Intel processors.

FLAC 1.3.1 has been released

Reply #41
I built both the original FLAC 1.3.1 and the modified code with the same compiler (MinGW-w64/GCC 4.9.2) and attached them to this post, so you can test their encoding speed.

   
system: athlon64 3200+, 896mb ram, XP SP3

image.wav, 73 mins, 16/44.1.
timer32 flac -8 image.wav
image.wav: wrote 440373786 bytes, ratio=0.569 (indentical for both builds)

flac-1.3.1-win-for_older_intel_CPUs.zip
Code: [Select]
Kernel  Time =     1.812 =    1%
User    Time =   132.328 =   93%
Process Time =   134.140 =   95%    Virtual  Memory =     14 MB
Global  Time =   140.906 =  100%    Physical Memory =     12 MB


flac-1.3.1-win.zip
Code: [Select]
Kernel  Time =     2.140 =    1%
User    Time =   107.250 =   89%
Process Time =   109.390 =   91%    Virtual  Memory =     14 MB
Global  Time =   119.859 =  100%    Physical Memory =     12 MB


that build for older intel cpus is around 17.5% slower for me.

FLAC 1.3.1 has been released

Reply #42
Thanks. But I think that it makes more sense to compare process times, in this case the difference is 22.6%.

FLAC 1.3.1 has been released

Reply #43
oops, it's lucky i posted the numbers in full.

FLAC 1.3.1 has been released

Reply #44
some tests on my AMD FX-6300 Win7 x64 SP1 using Measure-Command on 750MB wav.
tested with -8 setting

1.3.1 x32 from http://www.hydrogenaud.io/forums/index.php...st&p=882856
Seconds          : 40
Milliseconds      : 56

1.3.1 x32 no-sse2 from http://www.hydrogenaud.io/forums/index.php...st&p=882856
Seconds          : 41
Milliseconds      : 983

1.3.1 x64 from http://www.hydrogenaud.io/forums/index.php...st&p=882856
Seconds          : 31
Milliseconds      : 518

1.3.1 x32 for older intel from http://www.hydrogenaud.io/forums/index.php...st&p=882856
Seconds          : 42
Milliseconds      : 898

1.3.1 x32 for older intel from http://www.hydrogenaud.io/forums/index.php...st&p=882856
Seconds          : 45
Milliseconds      : 301

1.3.1 x64 for older intel from http://www.hydrogenaud.io/forums/index.php...st&p=882856
Seconds          : 37
Milliseconds      : 88

1.3.1 x32 official
Seconds          : 40
Milliseconds      : 451

1.3.1 x64 official
Seconds          : 31
Milliseconds      : 535

1.3.1 x32 rarewares
Seconds          : 37
Milliseconds      : 70

1.3.1 x64 rarewares
Seconds          : 33
Milliseconds      : 70

1.3.1 x32 my own VS2012 build (full optim)
Seconds          : 33
Milliseconds      : 691

1.3.1 x64 my own VS2012 build (full optim)
Seconds          : 32
Milliseconds      : 400


my own vs2012 is still the best for x32 no my PC. it's suspiciously faster.

FLAC 1.3.1 has been released

Reply #45
flac --best, 13min CDDA-WAV, Process Time in seconds, three runs, percentage calculated with the second values

Code: [Select]
Core 2 Duo E6850:
flac_older_64:        10.623 10.670 10.857 ( -8.5% to flac_64)
flac_older_32:        11.247 11.341 11.388 (-10.5% to flac_32)
flac_older_32_nosse:  11.466 11.559 11.559 (-10.1% to flac_32_nosse)
flac_64:              11.590 11.653 11.684
flac_32:              12.636 12.667 12.698
flac_32_nosse:        12.729 12.854 12.916

Core i5 1st-gen ULV:
flac_64:              13.416 13.572 13.587
flac_32:              14.055 14.289 14.414
flac_32_nosse:        14.994 15.319 15.662
flac_older_64:        15.475 15.553 15.631 (+14.6% to flac_64)
flac_older_32:        16.177 16.224 16.754 (+13.5% to flac_32)
flac_older_32_nosse:  17.035 17.300 17.300 (+12.9% to flac_32_nosse)

FLAC 1.3.1 has been released

Reply #46
Intel C2Q Q9400 @3200

16bit 44100hz sample level -8

flac 1.3.1 official 64bit : 71.83x
flac 1.3.1 lvqcl 64 bit : 73.13x
flac 1.3.1 lvqcl 64 bit (old intel) : 90.00x

i'm stick with old intel

FLAC 1.3.1 has been released

Reply #47
Thx for the timer64, any ideas why I can't compile libFLAC_static.lib with QxAVX2 ?

FLAC 1.3.1 has been released

Reply #48
Foobar has been updated to version 1.3.6, the only change is that it now uses FLAC 1.3.1.
XLD has been updated to version 20141129 and now uses FLAC 1.3.1.
Every night with my star friends / We eat caviar and drink champagne
Sniffing in the VIP area / We talk about Frank Sinatra
Do you know Frank Sinatra? / He's dead

FLAC 1.3.1 has been released

Reply #49
just for the record (addition to my previous post)

1.3.0 x32 rarewares
Minutes          : 1
Seconds          : 15
Milliseconds      : 118


and the result file is bigger.
huge improvement i'd say. thanks to all who was involved!