Problem mit FLACCL FLAC converter mit GPU support

akl

akl

Registriert
29.03.11
Beiträge
4.009
Reaktionen
1.742
Punkte
21.480
Hallo,

kennt sich jemand mit FLACCL unter Windows 7 aus ?

http://www.cuetools.net/wiki/FLACCL

Das Programm bricht mit folgender Fehlermeldung ab:
Error : CreateDefaultContext: No OpenCL devices found that matched filter criteria.

Muss ich vorher noch einen OpenCL Treiber unter Windows installieren ?

Ich habe eine MSI GTX 980...
Lt. nVidia enthalten die Treiber OpenCL support.
https://developer.nvidia.com/opencl

Hat jemand eine Idee, woran es liegen könnte ?

Danke & Gruß
Andreas
 
Danke erstmal für den Hinweis, ich kannte den Encoder noch gar nicht.

Bei mir (Windows 8.1 Pro 64 Bit mit MSI GTX970) läuft das Tool.
Um sicherzugehen, dass dir OpenCL fehlt könntest du von GPU-Z bestätigen lassen, das deine Karte OpenCL unterstützung meldet und du könntest den Luxmark Benchmark laufen lassen. Dass ist ein OpenCL Benchmark der nebenbei auch alle OpenCL fähigen Geräte samt OpenCL Version auflistet.
 

Open Ce El

http://de.wikipedia.org/wiki/OpenCL

Und nu?
smil470517ae17d09.gif


Nein im ernst, was soll die Aussage deines Posts sein?
 
Danke erstmal für den Hinweis, ich kannte den Encoder noch gar nicht.

Bei mir (Windows 8.1 Pro 64 Bit mit MSI GTX970) läuft das Tool.
Um sicherzugehen, dass dir OpenCL fehlt könntest du von GPU-Z bestätigen lassen, das deine Karte OpenCL unterstützung meldet und du könntest den Luxmark Benchmark laufen lassen. Dass ist ein OpenCL Benchmark der nebenbei auch alle OpenCL fähigen Geräte samt OpenCL Version auflistet.

OpenCL und Cuda werden unterstützt ...

GTX980-CUDA-OPENCL-Support.jpg


Luxmark Bench läuft auch prima.

LuxMarkv3.0.jpg
 
Ich habe mir mal den etwas SourceCode angesehen und auch wenn ich nicht so ganz durchsteige, sieht es so aus, als wenn er sich die erstbeste Platform nimmt, für die dann guckt, ob Geräte drin sind, diese Geräteliste dann auf seine Anforderungen prüft (scheint nur ImageSupport zu sein), und aus der übrigbleibenden Liste das erste Gerät nimmt. Wenn die gefilterte Liste leer ist, gibts die Meldung "no OpenCL devices found that matched filter criteria". Da die Meldung nicht 100% gleich formatiert mit deinem Fehler ist, weiß ich nicht, ob der Sourcecode einfach nur neuer/älter als dein Executable ist, oder ob es eine andere Stelle im Code ist, die anschlägt. Falls es diese Stelle ist, würde mir als potentieller Fehler einfallen, dass die erste Platform auf deinem Rechner keine passenden Geräte hat.
Zur Erklärung: Platforms sind bei OpenCL die verschiedenen Implementierungen, also hast du laut LuxMark eine Platform von AMD und eine von NVidia, beide mit jeweils einem Device.
Nun weiß ich nicht, ob LuxMark Platforms ohne Devices anzeigt. Du müsstest also prüfen, ob du durch irgendwelche Installationen OpenCL Plattforms hast, ohne dazugehörige Hardware, oder evtl. die von deiner CPU einfach inkompatibel ist. Ich hab keine Ahnung wie :D

Ich geh jetzt erstmal pennen und seh mir das morgen nochmal an.
 
[...]
also hast du laut LuxMark eine Platform von AMD und eine von NVidia, beide mit jeweils einem Device. Nun weiß ich nicht, ob LuxMark Platforms ohne Devices anzeigt. Du müsstest also prüfen, ob du durch irgendwelche Installationen OpenCL Plattforms hast, ohne dazugehörige Hardware, oder evtl. die von deiner CPU einfach inkompatibel ist. Ich hab keine Ahnung wie :D
[...]

Danke für Deine Mühe, sehr nett.

Wenn Du nochmal in den Screenshot schaust, Luxmark reportet 2 devices:
- Intel Xeon CPU und
- GTX980

Welche Sources hast Du denn von wo ?
Ich habe inzwischen 2 verschiedene versionen von den cuetools ...

1) Einmal die, die den Fehler reportet
FLACCL#0.3, Copyright (C) 2010 Gregory S. Chudov.

2) dann habe ich noch dieses Archiv gefunden: CUETools_2.1.5_encoders_200914.zip
Darin befinden sich 3 Programme:
CUETools.ALACEnc.exe
CUETools.Flake.exe
CUETools.FLACCL.cmd.exe
CUETools FLACCL 2.1.5, Copyright (C) 2010-2013 Grigory Chudov.

Laut dem Wiki http://www.cuetools.net/wiki/FLACCL sei die neuste Version 0.3.
Das ist die mit der alles anfing und die nicht funktioniert.

Auf der Wikiseite wird die Entwicklung etwas weiter erklärt. Cuetools ist eine Weiterentwicklung mit der libFLAKE. Das erklärt in dem anderen Package, warum da 3 Binaries drin sind, das soll wohl einen Performance Vergleich ermöglichen.

Der Author Grigory Chudov scheint das Tool nun unter einer anderen URL weiterzuentwickeln.
http://audiophilesoft.ru/load/coders_utils/flaccl/7-1-0-68
Die neuste Version dort scheint die 2.1.6 zu sein.
Diese erlaubt folgende Commandline Optionen:
http://audiophilesoft.ru/commandline/flaccl/switches.txt

Eine 310 MB Audio Testdatei

Win7> CUETools.ALACEnc.exe audio.wav -o audio-ALACEnc.flac

CUETools.ALACEnc, Copyright (C) 2009 Grigory Chudov.
Based on ffdshow ALAC audio encoder
Copyright (c) 2008 Jaikrishnan Menon,
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. for details.
Filename : audio.wav
File Info : 44100kHz; 2 channel; 16 bit; 00:29:22.5000000
Results : 148,07x; 00:00:11.9028209

Win7> CUETools.Flake.exe audio.wav -o audio-Flake.flac

CUETools.Flake, Copyright (C) 2009-2013 Grigory Chudov.
Based on Flake encoder by Justin Ruggles, .
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. for details.
Filename : audio.wav
File Info : 44100kHz; 2 channel; 16 bit; 00:29:22.5000000
Results : 173,02x; 108110281 bytes in 00:00:10.1868179 seconds;

CUETools.FLACCL.cmd.exe --opencl-type CPU audio.wav -o audio-FLACCL-noopts.flac
CUETools FLACCL 2.1.5, Copyright (C) 2010-2013 Grigory Chudov.
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. for details.
Filename : audio.wav
File Info : 44100kHz; 2 channel; 16 bit; 00:29:22.5000000
Device : Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz, Platform: "AMD Accelerate
d Parallel Processing", Version: OpenCL 1.2 AMD-APP (1445.5), Driver: 1445.5 (ss
e2,avx)
Results : 410,84x; 107935492 bytes in 00:00:04.2900076 seconds;

Win7>CUETools.FLACCL.cmd.exe --opencl-type CPU --cpu-threads 4 audio.wav -o audio-FLACCL-noopts.flac
CUETools FLACCL 2.1.5, Copyright (C) 2010-2013 Grigory Chudov.
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. for details.
Filename : audio.wav
File Info : 44100kHz; 2 channel; 16 bit; 00:29:22.5000000
Device : Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz, Platform: "AMD Accelerate
d Parallel Processing", Version: OpenCL 1.2 AMD-APP (1445.5), Driver: 1445.5 (ss
e2,avx)
Results : 404,95x; 107935492 bytes in 00:00:04.3524077 seconds;

AAAAHHHH ich habs jetzt, eine Fehlermeldung hat die möglichen Optionen reportet:

Win7>CUETools.FLACCL.cmd.exe --opencl-type GPU --opencl-platform nvidia audio.wav -o audio-FLACCL-GPU.flac

Error: unknown platform "nvidia". Platforms available:"AMD Accelerated Parallel
Processing", "NVIDIA CUDA".

Damit geht nun richtig die Post ab .... ich komme dabei auf 21% GPU Auslastung:

Win7>CUETools.FLACCL.cmd.exe --opencl-type GPU --opencl-platform "NVIDIA CUDA" audio.wav -o audio-FLACCL-GPU.flac
CUETools FLACCL 2.1.5, Copyright (C) 2010-2013 Grigory Chudov.
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. for details.
Filename : audio.wav
File Info : 44100kHz; 2 channel; 16 bit; 00:29:22.5000000
Device : GeForce GTX 980, Platform: "NVIDIA CUDA", Version: OpenCL 1.1 CUDA 7
.0.29, Driver: 347.88
Results : 790,07x; 107929761 bytes in 00:00:02.2308039 seconds;

Hier mal die Ausgaben der verschiedenen Programme, höhere Kompressionen habe ich nur bei dem FLACCL tool ausprobiert.


06.04.2015 08:11 109.657.521 audio-ALACEnc.flac
06.04.2015 08:33 107.277.067 audio-FLACCL-GPU-10.flac
06.04.2015 08:34 107.240.029 audio-FLACCL-GPU-11.flac
06.04.2015 08:32 107.929.761 audio-FLACCL-GPU-8.flac
06.04.2015 08:33 107.359.519 audio-FLACCL-GPU-9.flac
06.04.2015 08:31 107.929.761 audio-FLACCL-GPU.flac
06.04.2015 08:21 107.935.492 audio-FLACCL-noopts.flac
06.04.2015 08:15 108.117.639 audio-Flake.flac
05.04.2015 18:48 310.905.080 audio.wav


Hier die Ausgabe mit -11 (-9 - -11 benötigen noch --lax als Parameter)

Win7>CUETools.FLACCL.cmd.exe -11 --lax --opencl-type GPU --opencl-platform "NVIDIA CUDA" audio.wav -o audio-FLACCL-GPU-11.flac
CUETools FLACCL 2.1.5, Copyright (C) 2010-2013 Grigory Chudov.
This is free software under the GNU GPLv3+ license; There is NO WARRANTY, to
the extent permitted by law. for details.
Filename : audio.wav
File Info : 44100kHz; 2 channel; 16 bit; 00:29:22.5000000
Device : GeForce GTX 980, Platform: "NVIDIA CUDA", Version: OpenCL 1.1 CUDA 7
.0.29, Driver: 347.88
Results : 614,02x; 107240029 bytes in 00:00:02.8704051 seconds;
 
Hier eine Zusammenfassung....
Insgesamt finde ich den Einsatz von FLACCL sehr interessant.

Webpage: leider nur auf russisch oder hat jemand was zum Umschalten gefunden ??
http://audiophilesoft.ru/load/coders_utils/flaccl/7-1-0-68

Das ist der Download Link für die neuste Version 2.1.6.
http://audiophilesoft.ru/commandline/flaccl/FLACCL_2.1.6.7z

Das sind die Kommandozeilen Optionen:
http://audiophilesoft.ru/commandline/flaccl/switches.txt

Hier das Beispiel, wie man das ganze in Foobar einbinden kann:
example-foobar.png


Hier ein Beispiel, wie ich das bei mir aufrufe:

a) moderate compression, weniger GPU load (20%) und geht etwas schneller
CUETools.FLACCL.cmd.exe -8 --opencl-type GPU --opencl-platform "NVIDIA CUDA" audio.wav -o audio-FLACCL-GPU-8.flac
Results : 784,59x; 107929761 bytes in 00:00:02.2464040 seconds;

b) höchste compression, doppelt so hohe GPU load (40%)

CUETools.FLACCL.cmd.exe -11 --lax --opencl-type GPU --opencl-platform "NVIDIA CUDA" audio.wav -o audio-FLACCL-GPU-11.flac
Results : 610,71x; 107240029 bytes in 00:00:02.8860051 seconds;

Quellmedium ist eine 16bit wav Datei, 29m22s Länge, Dateigröße 310MB
Die Ausgabedateien im Vergleich:

06.04.2015 08:45 107.240.029 audio-FLACCL-GPU-11.flac
06.04.2015 08:45 107.929.761 audio-FLACCL-GPU-8.flac

c) Vergleich zum normalen FLAC Programm

flac-eac.exe -f audio.wav -o audio-FLAC-5.flac (~8 Sekunden)
flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
audio.wav: wrote 109444345 bytes, ratio=0,352
05.04.2015 18:48 109.444.345 audio-FLAC-5.flac

Bei höchster Kompression wird der Unterschied sehr deutlich

Win7>flac-eac.exe -8 -f audio.wav -o audio-FLAC-8.flac (~23 Sekunden)
audio.wav: wrote 108639615 bytes, ratio=0,349

05.04.2015 18:48 109.444.345 audio-FLAC-5.flac
05.04.2015 18:48 108.639.615 audio-FLAC-8.flac

d) Höchste Kompression im Vergleich (Zeit / Dateigröße)

FLAC -8: 23,0 Sekunden, 108.639.615 Bytes
FLACCL -11: 2,8 Sekunden, 107.240.029 Bytes (mit GPU Support, GTX980)
 
Jetzt wüßte ich nur, wie man am besten ein in APE erstelltes Musikarchiv mittels FLACCL am besten und schnellsten umkonvertiert.

Dabei sollte möglichst die Platte nicht vollaufen, d.h. nach erfolgreicher Konvertierung ins FLAC file format sollte dann auch pronto die APE Datei gelöscht werden...

Hat jemand eine Idee wie bzw mit welchem Tool man das am besten erzielen kann ?

Musikbee bietet solch eine Konvertierung an, löscht aber meiner Erfahrung nach leider erst ganz am Schluss wenn die Platte schon voll ist.
 
Vielleicht noch ein Hinweis ... So ein Converter kann auch schnell Daten korrumpieren, wenn es noch einen BUG in der Implementierung gibt.

Also auf eigene Gefahr.

In dem Haupt thread zu dem Programm las ich, dass es eine Funktion --verify gibt, das sollte man bei seinen Tests verwenden.

In einem älteren Artikel ("Post 237") fand ich noch ein paar nützliche Informationen zu einigen Kommandozeilen Optionen:

http://www.hydrogenaud.io/forums/index.php?showtopic=64628&view=findpost&p=732995

[...]
New in this version: experimental option --fast-gpu forces encoder to do even more work on GPU, which can slow things up, but can be a bit faster if you are limited by PCIe transfer speeds in lower compression modes, or it can be effective if you don't want to give additional cpu threads to encoder with --cpu-threads, or if you use --verify. Which you should, if you use --fast-gpu, because it's experimental and it might corrupt your data.

This version processes 32 frames at a time (previous did 16), to better utilize high-end GPUs, but it can make slower GPU a bit unresponsive during encoding, in which case you can use option --task-size 16.
[...]
 
Ok, dass heißt das Thema hat sich also erledigt. Ich hatte übrigens den Code von hier und somit die Version 2.1.6.0.
Allerdings funktionierte bei mir auch die Version 0.3

Zu deinem Lösch Problem: Ich kenn auch kein Tool welches das könnte, aber da kannst du dir ja schnell ein Batch für schreiben.
 
Ich habe jetzt leider noch das lästige Problem, dass das Tool in MusicBee nicht zum Funktionieren zu bekommen ist...

Ich kenne mich mit Windows batches nicht gut aus. Wie könnte man denn was rekursiv über einen Baum laufen lassen, um dann das Konvertieren und Löschen zu erledigen ?

Shell scripte auf Unix wären für mich kein Problem. Aber ich bin mit den M$ Scriptsprachen - VB oder was da sonst noch in Frage kommen könnte - nicht vertraut.

Mit Python und Perl stehe ich auch auf Kriegsfuss und die Programme habe ich auch momentan nicht installiert. Irgendwelche Ideen ?
 
  • Danke
Reaktionen: akl
Jetzt wüßte ich nur, wie man am besten ein in APE erstelltes Musikarchiv mittels FLACCL am besten und schnellsten umkonvertiert.

Dabei sollte möglichst die Platte nicht vollaufen, d.h. nach erfolgreicher Konvertierung ins FLAC file format sollte dann auch pronto die APE Datei gelöscht werden...

Hat jemand eine Idee wie bzw mit welchem Tool man das am besten erzielen kann ?


Als converter kann ich folgendes kostenloses Tool sehr Empfehlen:

TAudioConverter
http://sourceforge.net/projects/taudioconverter

Es unterstützt zwar nicht die GPU, unterstützt aber nahezu alle bekannten Formate.
Sämtliche Tags und Cover werden von einem ins andere Format übertragen.
Alles was ich bisher gestestet hatte konnte das nicht 100%ig.
Bin mir aber gerade nicht sicher ob es die Quelldatei nach konvertierung löscht.
 
  • Danke
Reaktionen: akl
Also ich habs hinbekommen FLACCL ist ca 65% schneller.

Allerdings habe ich heute vom Entwickler leider gehört, dass der converter halt noch nicht die Reife von der Referenzimplementierung hat. Deshalb empfiehlt er die Verwendung von --verify. Bloss dann geht vermutlich der Geschwindigkeitsvorteil verloren, habe leider keine Zeit mehr zum weiteren Testen.

Weitere Informationen, wie ich das gelöst habe mit der freundlichen Hilfe eines Forenkollegen auf hydrogenaud.io und MusicBee forum:
http://www.hydrogenaud.io/forums/index.php?showtopic=64628&st=425&gopid=894912&#entry894912
http://getmusicbee.com/forum/index.php?topic=15469.msg92043#msg92043

Also .. wer auf Nummer sicher gehen möchte, der verwendet doch besser den normalen flac ...
So werde ich es jedenfalls halten, schade, ich hätte das Tool gerne weiterverwendet.
Vielleicht später mal, wenns die gleiche Reife wie die Referenzimplementierung erlangt hat.

War aber spannend, ich fands interessant.
 

Oft gelesene Themen

Zurück
Oben