Skip to main content

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

0 Members and 1 Guest are viewing this topic.
  • yesgrey
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #375
In  the latest version from 11.06.2013 flacCL is running fine with samplerates up to 96kHz, others i didnĀ“t try.

And again a BIG thanks to Grigory! The speed it crunches these big files is simply stunning!

Unfortunately, I am getting the following message:
File Info : 48000kHz; 6 channel; 24 bit; 00:00:00
Error    : Build failed with error code BUILD_PROGRAM_FAILURE
:34:2: error: #error OpenCL 1.1+ required!
#error OpenCL 1.1+ required!

I never got this with the previous versions, so can I assume Gregory is now using a higher version of OpenCL?

If it is so, it seems that what started as an only NVidia tool is now a non-Nvidia (I have a GT240) working tool...

Any chance of going back to the previous OpenCL version?...
  • Last Edit: 23 June, 2013, 05:24:11 PM by yesgrey

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #376
I was under impression that OpenCL 1.1 is supported for GT240. Did you try updating the driver?

According to http://www.khronos.org/conformance/adopter...ormant-products, OpenCL 1.1 is supported on:

Code: [Select]
NVIDIA   2010-07-14   OpenCL_1_1
Microsoft Windows Vista or Microsoft Windows 7 with NVIDIA OpenCL Driver on the following devices
Tesla C870
Tesla D870
Tesla S870
GeForce GTS 250
GeForce GTS 150
GeForce GT 130
GeForce GT 120
GeForce G100
GeForce 9800 GX2
GeForce 9800 GTX+
GeForce 9800 GTX
GeForce 9800 GT
GeForce 9600 GSO
GeForce 9600 GT
GeForce 9500 GT
GeForce 9400GT
GeForce 8800 Ultra
GeForce 8800 GTX
GeForce 8800 GTS
GeForce 8800 GT
GeForce 8800 GS
GeForce 8600 GTS
GeForce 8600 GT
GeForce 8500 GT
GeForce 8400 GS
GeForce 9400 mGPU
GeForce 9300 mGPU
GeForce 8300 mGPU
GeForce 8200 mGPU
GeForce 8100 mGPU
GeForce GTS 160M
GeForce GTS 150M
GeForce GT 130M
GeForce G110M
GeForce G105M
GeForce G102M
GeForce 9800M GTX
GeForce 9800M GT
GeForce 9800M GTS
GeForce 9800M GS
GeForce 9700M GTS
GeForce 9700M GT
GeForce 9650M GS
GeForce 9600M GT
GeForce 9600M GS
GeForce 9500M GS
GeForce 9500M G
GeForce 9300M GS
GeForce 9300M G
GeForce 9200M GS
GeForce 9100M G
GeForce 8800M GTS
GeForce 8700M GT
GeForce 8600M GT
GeForce 8600M GS
GeForce 8400M GT
GeForce 8400M GS
..

I don't see GT240 in this list, but i'd be surprised if it's not supported - even more ancient NVIDIA GPUs are.
  • Last Edit: 23 June, 2013, 05:47:26 PM by Gregory S. Chudov
CUETools 2.1.4

  • bilbo
  • [*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #377
Any chance of going back to the previous OpenCL version?...


You can run a program called GLView that will tell you all the versions of OpenGL that your card will support.

http://www.realtech-vr.com/glview/download.php

Also, the latest drivers can make all the difference. Sometimes the card will support it but the drivers don't.
Glass half full!

  • yesgrey
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #378
I was under impression that OpenCL 1.1 is supported for GT240. Did you try updating the driver?

I did, to the latest WHQL ones, and maybe that was the problem...

I was so disappointed with the new build of flaccl not being working that I thought that you would have changed OpenCL to 1.2 to fix any problems, but now I realize that 1.1+ means 1.1 and higher.

One more question. Have you introduced 1.1 with this latest build, or were you already using it before this one? I'm asking this because with the previous builds flaccl always worked, only now it's not working... Thinking more about it, I think I have not tried the previous version since I updated to the latest drivers, so maybe something got broken in the latest ones... I will test with the previous version, and, if it still does not work, I will roll back to the previous drivers...

I don't see GT240 in this list, but i'd be surprised if it's not supported - even more ancient NVIDIA GPUs are.

Yes, I think so too.

You can run a program called GLView that will tell you all the versions of OpenGL that your card will support.

My problems are with OpenCL, but thanks anyway...

Testing with GPU-Z tells that my card only supports OpenCL 1.0, so I think I will try with the previous drivers...
  • Last Edit: 24 June, 2013, 03:57:57 AM by yesgrey

  • yesgrey
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #379
I will test with the previous version, and, if it still does not work, I will roll back to the previous drivers...

OK, I have tested with previous 2.1.5 release (CUETools.FLACCL.cmd.exe file date 2013-05-09) and it worked fine, so it seems the drivers are not the problem...

  • yesgrey
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #380
According to http://www.khronos.org/conformance/adopter...ormant-products, OpenCL 1.1 is supported on...

I did a little research about this and it seems that GT240 and all the older models do not support OpenCL 1.1, and even some newer ones.

Read the 2nd post here.

So, it seems the drivers are labeled as supporting 1.1 but the device only supports 1.0.

However, despite all this, I was so frustrated that your latest version did not work when it seemed that it was finally working right with multiple channels files that I decided to take a look and compare the flac.cl files from the previous and the latest versions. It seemed that no new functions were being used, and I found the if testing the supported OpenCL version. I decided to comment the test of the OpenCL version and... it started working. I then checked the created files and yes, it's correct, the problem with encoding multiple channels files of 48kHz was fixed on this latest version.

I don't know if it would be safe for you to disable the OpenCL 1.1 test at the beginning, but for me it worked fine.

Thanks for this wonderful tool. 

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #381
Good to know. I was going to suggest the same thing
It looks like the features of OpenCL 1.1 that FLACCL is using are actually present in GT240, but it has been classified as supporting only OpenCL 1.0 due to the lack of some other features that FLACCL doesn't need. I guess i can safely disable this check for the list of known NVIDIA devices of that generation.
CUETools 2.1.4

  • yesgrey
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #382
I guess i can safely disable this check for the list of known NVIDIA devices of that generation.

Yes, it would be good for other people in a situation like mine... Thanks

  • Eli
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #383
Will FLACCL be updated to 1.3 soon?

Also, I see support has been added for Intel HD. Curious, can you use the GPU part of the CPU even if you have a separate graphics card?

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #384
Yes, i should update or remove the separate FLACCL download to avoid confusion - right now it's out of date compared to the one that comes with CUETools 2.1.5.

Yes, you can use the integrated GPU for OpenCL while using discrete GPU for games, but it's tricky.

I had to do 3 things to make it work on my machine, probably not all of them are required.

1) Enabled integrated graphics in the BIOS
2) Installed Virtu MVP that came with the motherboard
3) Connected both GPUs with my receiver using HDMI

So now i use integrated GPU most of the time, Virtu MVP activates discrete GPU for some games. Some games are not supported by Virtu MVP and don't run well in this setup, but i don't play much.

http://download.gigabyte.asia/FileList/Man...virtu-mvp_e.pdf
CUETools 2.1.4

  • Maurits
  • [*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #385
Isn't it time this thread is renamed?

First of all it doesn't use CUDA anymore so should rather be called "OpenCL enabled FLAC encoder". Should do wonders for people searching for FLAC and OpenCL.
Secondly, it has probably been called FLACCL longer than FlaCuda now so the "prev. FlaCuda" could go...
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?"

  • lamedude
  • [*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #386
Win8 allows you to use QuickSync and presumably OpenCL with a discrete card without MVP.

  • ktf
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #387
Hi guys,

Because of this post I am planning to incorporate a few other FLAC encoders (including FLACCL) into the next revision of my lossless audio codec comparison. However, the first results are disappointing and confusing. I think I'm doing something wrong. Please see this PDF of the first results in CPU-time and realtime.

These tests were done with a AMD A4-3400 APU, AFAIK with OpenCL 1.2. I ran it with --slow-gpu because I suspect this GPU is fairly slow and it seemed to be (based on very limited testing) a bit faster. The decoding results for FLACCL were obtained by letting stock FLAC 1.3.0 decode the FLACCL-encoded output.

Why these results? Is it a problem with AMD/ATI? Is the GPU not fast enough? Am I doing something wrong?
  • Last Edit: 02 August, 2013, 03:15:03 PM by ktf
Music: sounds arranged such that they construct feelings.

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #388
FLACCL was never as good on AMD as it was on NVIDIA - mostly because i don't even have an AMD GPU myself.

Also don't expect any miracles from the integrated graphics. Descrete GPU should do beter.

And, as you can see, FLACCL also aims for higher compression, so it's higher presets are more competitive than lower presets.

Edit: i couldn't see the pdfs at first, but now i can
  • Last Edit: 02 August, 2013, 03:17:26 PM by Gregory S. Chudov
CUETools 2.1.4

  • ktf
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #389
Edit: i couldn't see the pdfs at first, but now i can

You're fast  I made a mistake in the URLs, now fixed.
Music: sounds arranged such that they construct feelings.

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #390
One more thing: the first run for each compression level and set of settings takes longer than subsequent ones, because the FLACCL kernels are compiled for your GPU. Later runs use cached binary. So a fair test should 'warm up' the encoder.
CUETools 2.1.4

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #391
And also, try adding --cpu-threads 1
CUETools 2.1.4

FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #392
While we're on this topic... what could be a reason (adding) --cpu-threads 1 is faster than any other count of CPU threads with a 260GTX and an AMD quadcore?

  • jensend
  • [*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #393
The A4-3400's GPU is really quite anemic. I wouldn't expect a lot of help from it. I have an A6-5400K, which has a GPU that's at least 50% faster than that one, and I only get a 1/6 speedup doing FLACCL with the GPU rather than CPU only. I bet the A4-3400 is slow enough that it actually slows FLACCL down to try to use the GPU.

  • ktf
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #394
Also don't expect any miracles from the integrated graphics. Descrete GPU should do beter.

The A4-3400's GPU is really quite anemic.

It's not that bad. I have run OpenCL applications on it running BOINC, and when I compare it's results with for example a Geforce GTX 560, it's only about 5 times as slow. If I compare that to the results here, that would mean I would still have to see speeds of about 300x, not the ~100x I'm seeing now. (for that specific application, the GPU outperforms the CPU by a factor of 30... it's really not a bad GPU)

One more thing: the first run for each compression level and set of settings takes longer than subsequent ones, because the FLACCL kernels are compiled for your GPU. Later runs use cached binary. So a fair test should 'warm up' the encoder.

How does that work exactly? I've noticed it takes about 1 second for the progress bar to start showing up, regardless of whether I have just run FLACCL with the same settings or not. Could it be caching is not working properly?
  • Last Edit: 03 August, 2013, 03:57:03 AM by ktf
Music: sounds arranged such that they construct feelings.

  • jensend
  • [*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #395
It's not that bad. I have run OpenCL applications on it running BOINC, and when I compare it's results with for example a Geforce GTX 560, it's only about 5 times as slow. If I compare that to the results here, that would mean I would still have to see speeds of about 300x, not the ~100x I'm seeing now. (for that specific application, the GPU outperforms the CPU by a factor of 30... it's really not a bad GPU)
First, your 1/5 is for a 560 while the graph only shows results for the 580 which is twice as fast at compute. Also, being 1/5 as fast in some particular BOINC app does not translate to being 1/5 as fast in all OpenCL apps, especially because many apps either can't (because of parallel programming problems or because they rely heavily on the special function unit) or don't (because they were written with nV or AMD's newer 7xxx GCN architecture in mind) take advantage of AMD's old VLIW architecture. To an app that can't take advantage of VLIW well, Llano's VLIW5 units could be no faster than a scalar unit. So between these factors- 560 is 1/2 as fast as 580, A4 is 1/5 as fast as 560 for stuff that can saturate VLIW5, stuff that doesn't work well with VLIW can be 1/5 as fast- you're looking at a potential of up to 50x difference between your GPU and the GTX 580.

  • ktf
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #396
Hmm.. okay. I was just wondering whether I could have done something wrong with my setup, but it seems I haven't. In that case, I won't include FLACCL in the comparison, because it is at least very confusing to add to the results and it really doesn't live up to "[the] FLAC format is capable of so much more". At least, not with my gear.
Music: sounds arranged such that they construct feelings.

  • Mangix
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #397
for me, --slow-gpu provides higher compression than --fast-gpu.

  • Propheticus
  • [*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #398
When running from a normal HDD as source and output to another HDD it doesn't improve speed over the normal Flac for me. I think the spinning disks read/write might be the bottleneck. Only when I use an SSD as the source disk the speed does increase with FlacCl over regular Flac.
Using --slow-gpu yields better results here too. Even though my GPU is actually a fairly fast AMD HD 6870. In my case using all the cores on my quadcore Intel Q6600 CPU (--cpu-threads 4) works best.
  • Last Edit: 03 August, 2013, 06:36:44 PM by Propheticus

  • Wombat
  • [*][*][*][*][*]
FLACCL: CUDA-enabled FLAC encoder by Gregory S. Chudov (prev. FlaCuda)
Reply #399
For --slow-gpu with a i5 anf GTX660ti some albums come out smaller and some bigger here. The difference is not significant. I should run a bigger test corpus when bored some day.
Is troll-adiposity coming from feederism?
With 24bit music you can listen to silence much louder!