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: FlaCuda under Linux with Mono (Read 4912 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

FlaCuda under Linux with Mono

I tried to run FlaCuda 0.8 under Arch Linux with Mono 2.6.1, but it doesn't seem to work:

Code: [Select]
$ mono ./CUETools.FlaCuda.exe -o /tmp/test.flac /tmp/test.wav
CUETools.FlaCuda v0.8, Copyright (C) 2009 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  : /tmp/test.wav
File Info : 44100kHz; 2 channel; 16 bit; 00:10:09.3730000
Error     : nvcuda


That's on a ION netbook (Intel Atom N270 CPU, NVIDIA ION GPU with 256 MiB of dedicated RAM).

FlaCuda under Linux with Mono

Reply #1
Thanks.

Please try replacing CUDA.NET.dll with this one: [attachment=5606:cuda.net.linux.rar]
CUETools 2.1.6

FlaCuda under Linux with Mono

Reply #2
Thanks a bunch, it works!

Code: [Select]
$ time flac -P 4096 -8 -o flac8.flac test.wav 

flac 1.2.1, Copyright (C) 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.

test.wav: wrote 67556817 bytes, ratio=0.628
Time: 63.68 seconds

$ time FlaCuda -7 -p 4096 -o cuda7.flac test.wav
CUETools.FlaCuda v0.8, Copyright (C) 2009 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  : test.wav
File Info : 44100kHz; 2 channel; 16 bit; 00:10:09.3730000
Results   : 55.23x; 67543253 bytes in 00:00:11.0338050 seconds;          
Time: 11.18 seconds


That's… nearly 6 times faster, really nice! I'm going to play with the encoder's parameters to determine which settings suit me best.

FlaCuda under Linux with Mono

Reply #3
A couple more datapoints, encoding Pink Floyd's Dark Side of the Moon (whole album as a single WAV file):

Code: [Select]
FLAC -5:    56 seconds, 238 MiB  523 KiB  955 B
FLAC -8:   266 seconds, 237 MiB  142 KiB  223 B
FlaCuda -5: 28 seconds, 236 MiB  712 KiB  703 B
FlaCuda -7: 45 seconds, 236 MiB  654 KiB  500 B


FlaCuda -0 and -1 failed for some reason ("internal error"). Also, there's no --gpu-only option, is that normal?

Edit: would increasing the amount of dedicated RAM from 256 MiB to 512 MiB improve encoding time further? (The ION doesn't have on-chip video memory)

FlaCuda under Linux with Mono

Reply #4
--gpu-only is on by default now. It can be turned off with --slow-gpu, but there's usually no point.

Memory shouldn't be an issue. I didn't exactly measure it, but my estimate is that FlaCuda uses less than 10 MiB.
CUETools 2.1.6

FlaCuda under Linux with Mono

Reply #5
Another observation: starting FlaCuda seems to take a little bit of time, even though I precompiled all the .NET binaries (Mono's and FlaCuda's) with mono --aot -O=all,-shared. Encoding (another pressing of) Dark Side of the Moon as a single file (with -5) takes 26.76 seconds, while encoding each track sequentially (9 WAV files) takes 29.38 seconds. That's roughly 10% overhead. Not too significant on a single album, but it'll add up when encoding an entire CD collection.

Adding support for multiple input files to CUETools.FlaCuda.exe would probably alleviate that overhead, unless I'm mistaken regarding the source of that overhead.

 

FlaCuda under Linux with Mono

Reply #6
Thank you, i will investigate this.
CUETools 2.1.6