Skip to main content

Topic: FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda) (Read 327507 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • _m²_
  • [*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #250
Here i did a quick and dirty comparison, 414 files of mixed music, -8

FlaCuda#0.91
9.25GB (9 934 589 919 bytes), 739kbps
FlacCL#0.3 Groupsize 256
9.25GB (9 936 741 894 bytes), 739kbps
FlacCL#0.4
9.25GB (9 936 310 351 bytes), 739kbps
Flake#0.1
9.25GB (9 941 925 617 bytes), 739kbps

So ~2MB difference with 9GB of music is not really a degeneration for the OpenCL port.
Seing the GPU encoder speeds against Flake#0.1 for encoding is a funny eye opener still 

Edit: i never liked the idea flake and alike encoders can encode non-standard files, so -11 is a setting i´ll never touch. Better use a different codec then.


No, they generate files perfectly compliant with the FLAC standard. Just not with it's subset that was created for a very limited purpose.
  • Last Edit: 09 March, 2011, 08:14:27 AM by _m²_

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #251
Here i did a quick and dirty comparison, 414 files of mixed music, -8

FlaCuda#0.91
9.25GB (9 934 589 919 bytes), 739kbps
FlacCL#0.3 Groupsize 256
9.25GB (9 936 741 894 bytes), 739kbps
FlacCL#0.4
9.25GB (9 936 310 351 bytes), 739kbps
Flake#0.1
9.25GB (9 941 925 617 bytes), 739kbps

So ~2MB difference with 9GB of music is not really a degeneration for the OpenCL port.
Seing the GPU encoder speeds against Flake#0.1 for encoding is a funny eye opener still

Edit: i never liked the idea flake and alike encoders can encode non-standard files, so -11 is a setting i´ll never touch. Better use a different codec then.


Wow, that are a lot of files 
OK, your test is without a doubt more consistent.
Did you do your test with Flake or libFlake? (both available in CUETools). I always got the lowest bitrates with LibFlake... but it always took a lot of encoding time. But files are usually only encoded once, but decoded a lot of times.

I am using FLAC -11 because I want good compression and love the features of the FLAC file format (e. g. error consistence) and the compatibility (e. g. oggdropxpd or lamedrop), in addition great decoding time (for fast replay gain processing).
I was experimenting with other formats, APE and TAK, but went back to FLAC because of better decoding speed and compatibility.
The non-standard FLAC files are no problem for me. I do not have a portable player and foobar works very good with non-std FLAC files, also do the different tagging-tools.

But I can understand your concerns because of the non-standard files. I hope you understand why it is not so relevant for me, if the files do not follow 100% the reference.

  • Wombat
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #252
Wow, that are a lot of files 
OK, your test is without a doubt more consistent.
Did you do your test with Flake or libFlake? (both available in CUETools). I always got the lowest bitrates with LibFlake... but it always took a lot of encoding time. But files are usually only encoded once, but decoded a lot of times.

I am using FLAC -11 because I want good compression and love the features of the FLAC file format (e. g. error consistence) and the compatibility (e. g. oggdropxpd or lamedrop), in addition great decoding time (for fast replay gain processing).
I was experimenting with other formats, APE and TAK, but went back to FLAC because of better decoding speed and compatibility.
The non-standard FLAC files are no problem for me. I do not have a portable player and foobar works very good with non-std FLAC files, also do the different tagging-tools.

But I can understand your concerns because of the non-standard files. I hope you understand why it is not so relevant for me, if the files do not follow 100% the reference.


I used libflake#0.1 from cuetools, there is no flake#0.1 version afaik. I tested it back a while already against the CL version. The GPU encoders always compressed better at -8 on average. You may do your own tests with -11
For better decoding speed i think even wavpack can compete with flake -11, i used wavpack before i switched to flac cause of my hardware-player a while back.

I dropped flac 1.21 in yesterday if anyone wants to know...
Flac 1.21 -8
9.27GB (9 955 977 141 bytes), 740kbps

Not much bigger you see but much to slow if you got used to handle your files with the GPU encoders.

Edit: You may want to check if the current GPU encoder uses variable blocksize at all. Afaik libflake does and since this kicks in at compression -9 and higher this may be the resaon for the size increase.
  • Last Edit: 09 March, 2011, 03:38:42 PM by Wombat
Is troll-adiposity coming from feederism?
With 24bit music you can listen to silence much louder!

  • Maurits
  • [*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #253
Just curious. Did anyone get the Cuda version somehow running on a Fermi GPU?

Can't you just use the OpenCL version on a Fermi GPU?
There is a hidden message in the song at approximately 4:32. If played at half speed, Waters can be heard to say, "That was pretty avant-garde, wasn't it?"

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #254
I used libflake#0.1 from cuetools, there is no flake#0.1 version afaik. I tested it back a while already against the CL version. The GPU encoders always compressed better at -8 on average. You may do your own tests with -11
For better decoding speed i think even wavpack can compete with flake -11, i used wavpack before i switched to flac cause of my hardware-player a while back.

I dropped flac 1.21 in yesterday if anyone wants to know...
Flac 1.21 -8
9.27GB (9 955 977 141 bytes), 740kbps

Not much bigger you see but much to slow if you got used to handle your files with the GPU encoders.

Edit: You may want to check if the current GPU encoder uses variable blocksize at all. Afaik libflake does and since this kicks in at compression -9 and higher this may be the resaon for the size increase.


I did not know that. Yes you are right.

FLAC Headers say:
FLACCL#0.3 -11 MinBlocksize 4096, MaxBlocksize 4096
FLACCL#0.4 -11 MinBlocksize 4096, MaxBlocksize 4096
libFlake#0.1 -11 MinBlocksize 0, MaxBlocksize 4096
libFlake#0.1 - 8  MinBlocksize 4608, MaxBlocksize 4608

I hope variable blocksize will be implemented in FLACCL somewhere in the future, would be great

  • Maggi
  • [*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #255
Just curious. Did anyone get the Cuda version somehow running on a Fermi GPU?

Can't you just use the OpenCL version on a Fermi GPU?


yep, that works with my GTX460 (GF104) even on WinXP, but I also would like to be able to compare the CUDA version to the OpenCL version in terms of compression and speed

  • schauw
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #256
I'll try to find a HD4xxx GPU to test it on...


I have an 4850, if you want a benchmark done i'm willing to help
But i'm not sure how to do is, so if someone could point me to somewhere where this is explained..


CUETools.FLACCL.cmd.exe --group-size 64 --cpu-threads 3 -8 1.wav -o 1.flac

FLACCL#0.3, Copyright © 2010 Gregory S. Chudov.
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. <http://www.gnu.org/licenses/> for details.
Filename  : 1.wav
File Info : 44100kHz; 2 channel; 16 bit; 00:05:29.9730000
Results  : 27.88x; 32571641 bytes in 00:00:11.8366770 seconds;


CPU = Amd Phenom II X3 720
  • Last Edit: 24 April, 2011, 06:50:00 AM by schauw

  • s_PLASH
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #257
win7 x64
Gigabyte 470 gtx + Gigybyte OC GURU
i7 920
6 GB RAM
-------------------

i get damaged FLAC files with CUETools/FLACCL converting from image-files to FLAC tracks,
wich does not happen with all other codecs (libFLAC, libFlake, flake) included in CUETools

the demaged music files are playable and i didn't notice anything wrong untill i listened to them..
there are "gaps" wich appear randomly and sound as if someone lower loudness to mute and turn up again immediately. i wished i could show you what "gaps" i mean. does anyone of you folks has an idea why CUETools/FLACCL does that unlike other with codecs? maybe you have the same problem or at least you wont use FLACCL till its fixed..


EDIT: gaps appear randomly
  • Last Edit: 25 June, 2011, 12:17:33 PM by s_PLASH

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #258
What player do you use? Some players do not support non-subset flac (compression levels 9-11).
CUETools 2.1.4

  • s_PLASH
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #259
What player do you use? Some players do not support non-subset flac (compression levels 9-11).

foobar2000 and compression level for CUETools/FLACCL was 8

EDIT: with softwareupdates (CUETools_2.1.2a, foobar2000 v1.1.7) - same problem.
  • Last Edit: 25 June, 2011, 12:06:27 PM by s_PLASH

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #260
Strange, this never happened before.
Please upload sample files (if possible, both source and converted) to the ftp server i mentioned in PM.
CUETools 2.1.4

  • Wombat
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #261
I encode with FlacCL from day one and never had one single corrupt file. You may want to enable "-verify" under FlacCL options and try to split the files that don´t work atm, also let create logs if the files are accurately ripped. When there is any error we should be able to spot it that way. Did you overclock anything in your system, if so disable all overclocking for testing.
Is troll-adiposity coming from feederism?
With 24bit music you can listen to silence much louder!

  • s_PLASH
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #262
I encode with FlacCL from day one and never had one single corrupt file. You may want to enable "-verify" under FlacCL options and try to split the files that don´t work atm, also let create logs if the files are accurately ripped. When there is any error we should be able to spot it that way. Did you overclock anything in your system, if so disable all overclocking for testing.

i'll convert some albums without oc, verify enabled, listen them (i'll need two or three days for it..) and post here again

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #263
This speed is almost scary, instant reaction was "HAX!!1"

Crash on decoding a 24b/96KHz input from Foobar though

EDIT: Was using 0.3 from the wiki. Pulled 0.4 from cuetools and it works fine.

Jolly good sir, I salute you!

EDIT 2: I can't make my joy clear enough. It is a happy happy day when the 100mbps router between me and my NAS serves as more of a bottleneck than the flac encoder on max quality.
  • Last Edit: 26 June, 2011, 11:11:56 PM by Akdor 1154

  • s_PLASH
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #264
i tried to encode again and again without OC but it seems to be impossible to get good tracks on my system. worst case -all tracks  very demaged. when i enable "verify" in encoder settings, it sometimes doesn't work at all (see error picture). if it does, damaged tracks are produced also. with verified libFLAC, libFlake and flake -no errors, no damaged tracks.
http://imageshack.us/photo/my-images/687/capturegzh.jpg/

@ Gregory S. Chudov
i'm sending the original wavpack audio + .cue + .log-files to you. hope it helps somehow.
  • Last Edit: 05 July, 2011, 01:03:38 PM by s_PLASH

  • Wombat
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #265
very weird, there must be a problem with your system. Does your system stand different stresstests? Is your nvidia GTX Gigabyte a "pre- overclocked" model? Since i read about different pre-overclocked cards fail in games you may try to underclock it for testing.
Is troll-adiposity coming from feederism?
With 24bit music you can listen to silence much louder!

  • eleria
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #266
Hello, I'm using currently the latest version of Flaccl and I'm having problems encoding a wave file :

When using the command-line encoder only :
Code: [Select]
Unhandled Exception: System.Exception: ChannelCount must be 2.
   at CUETools.Codecs.FLACCL.FLACCLWriter..ctor(String path, Stream IO, AudioPCM
Config pcm)
   at CUETools.FLACCL.cmd.Program.Main(String[] args)


Can't FLACCL process mono files ?

In hope of having a bug-free GPU FLAC encoder, here is the specific track.
http://bit.ly/qJOozq
  • Last Edit: 12 July, 2011, 05:43:11 AM by eleria

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #267
flaccl does not work with 24-Bit files
but flac 1.2.1 does

anyway... here are my results-
W7 x64

my HD6950 its 236.41x faster than my i7 920 slbej @ 2.8ghz.
cd.wav 658MB
cd.rar 506MB (Best setting, similar speed as Flac1.2.1 cpu version)
cd.flac 433MB -8 (similar speed as WinRar cpu version)
cd.flac 413MB -11 (OpenCL version) default is -7
cd.ape 396MB insane 260seconds or 4.3minutes,
cd.wv 425MB -h -x 48seconds.
cd.wv 429MB -h 28sec.
cd.wv 435MB -x 35sec.

http://www.cuetools.net/wiki/FLACCL
http://www.wavpack.com/
http://www.monkeysaudio.com/

c:\FLAC\flaccl03>flaccl -11 cd1.wav
FLACCL#0.3, Copyright © 2010 Gregory S. Chudov.
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. <Licenses - GNU Project - Free Software Foundation> for details.
Filename : cd1.wav
File Info : 44100kHz; 2 channel; 16 bit; 01:05:14.1880000
Results : 236.41x; 433786700 bytes in 00:00:16.5565043 seconds;
------------------------------------------------------
c:\FLAC>flac -8 cd1.wav
flac 1.2.1, Copyright © 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
cd1.wav: WARNING: skipping unknown sub-chunk 'fact' (use --keep-foreign-metadata
to keep)
cd1.wav: wrote 454187072 bytes, ratio=0.658
------------------------------------------------------
Gateway P-7811FX
Intel P8400 @ 2.26GHZ
4GB RAM
Nvidia 9800M GTS (G94M)

d:\FLAC\flaccl03>flaccl -11 cd1.wav
FLACCL#0.3, Copyright © 2010 Gregory S. Chudov.
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. <Licenses - GNU Project - Free Software Foundation> for details.
Filename : cd1.wav
File Info : 44100kHz; 2 channel; 16 bit; 01:05:14.1880000
Results : 93.67x; 433869020 bytes in 00:00:41.7887280 seconds;

Result: 413MB.
********************************************

d:\FLAC\FlaCuda091>flacuda -11 cd1.wav
FlaCuda#.91, Copyright © 2009 Gregory S. Chudov.
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. <Licenses - GNU Project - Free Software Foundation> for details.
Filename : cd1.wav
File Info : 44100kHz; 2 channel; 16 bit; 01:05:14.1880000
Results : 70.25x; 433236904 bytes in 00:00:55.7181090 seconds;

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #268
Quote from: David Bryant link=msg=0 date=
Hello!

Thanks for the info...I did not realize that the OpenCL version of FLAC actually compressed that much better than FLAC itself, that's interesting! (I knew it was faster, obviously).

I would love to have time to try to get WavPack working on OpenCL, but I have too many other projects.
It would be great if someone else had a go at it (I would be happy to help).

Cheers!
David Bryant
<david @ wavpack.com>
  • Last Edit: 15 July, 2011, 02:28:23 PM by db1989

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #269
with Ramdrive & gpu overclocking...

r:\flaccl03>flaccl -11 cd1.wav
FLACCL#0.3, Copyright © 2010 Gregory S. Chudov.
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. <http://www.gnu.org/licenses/> for details.
Filename  : cd1.wav
File Info : 44100kHz; 2 channel; 16 bit; 01:05:14.1880000
Results  : 250.91x; 433786700 bytes in 00:00:15.6000274 seconds
  • Last Edit: 15 July, 2011, 02:27:26 PM by db1989

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #270
flaccl does not work with 24-Bit files

flaccl 0.4 (from CUETools 2.1.2) does. But it's a bit experimental, and there's at least one known (if rare) bug in it, so i would wait for the next release.

Results  : 250.91x; 433786700 bytes in 00:00:15.6000274 seconds

Thanks for the stats, i only have NVIDIA cards myself, so it was really useful.

Quote from: David Bryant link=msg=0 date=
I would love to have time to try to get WavPack working on OpenCL, but I have too many other projects.

Unfortunately me too at the moment.
Also i doubt that WavPack can really benefit from GPU acceleration.
  • Last Edit: 15 July, 2011, 03:03:48 PM by Gregory S. Chudov
CUETools 2.1.4

  • Wombat
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #271
flaccl does not work with 24-Bit files

flaccl 0.4 (from CUETools 2.1.2) does. But it's a bit experimental, and there's at least one known (if rare) bug in it, so i would wait for the next release.


I pretty much think Juan talks about 24bit files with higher sampling frequency like 96kHz. Afaik FlacCL can only do 44.1kHz like with deoded HDCD files.
Is troll-adiposity coming from feederism?
With 24bit music you can listen to silence much louder!

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #272
switched to Linux!
installed Ubuntu x64... 

have downloaded the tar ball, cuetoolsnet-CUETools.Codecs.FLACCL.tar.gz
what to do next?

no .sh, .bin or .py

thanks.

P.S. Yes, i mean 192khz 24-Bit or 32-bit files.


  • lvqcl
  • [*][*][*][*][*]
  • Developer
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #273
have downloaded the tar ball, cuetoolsnet-CUETools.Codecs.FLACCL.tar.gz
what to do next?


AFAIK: download the whole package, learn C#, learn OpenCL, port it to Linux, compile, use.

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #274
have downloaded the tar ball, cuetoolsnet-CUETools.Codecs.FLACCL.tar.gz
what to do next?


AFAIK: download the whole package, learn C#, learn OpenCL, port it to Linux, compile, use.


install fglrx
install sdk
$sudo tar xvfz amd-app-sdk-v2.4-lnx64.tgz -C /opt
$sudo tar xvfz icd-registration.tgz -C /
$sudo apt-get install <necessary software>
$sudo make all
$sudo make install

isn't enough?
  • Last Edit: 31 July, 2011, 02:44:56 PM by JuanPabloCuervo