Использование FLACCL в foobar2000
Введение
FlaCuda, пожалуй, является первым в мире FLAC-кодером, поддерживающим технологию CUDA. Исходные коды проекты открыты и распостраняются под лицензией LGPL. Более поздние версии FlaCuda используют библиотеку OpenCL вместо CUDA, тем самым, добавляя поддержку графических процессоров AMD.
CUDA (англ. Compute Unified Device Architecture) — программно-аппаратная архитектура, позволяющая производить вычисления с использованием графических процессоров NVIDIA, поддерживающих технологию GPGPU (произвольных вычислений на видеокартах). Архитектура CUDA впервые появились на рынке с выходом чипа NVIDIA восьмого поколения — G80 и присутствует во всех последующих сериях графических чипов, которые используются в семействах ускорителей GeForce, Quadro и Tesla.
OpenCL (от англ. Open Computing Language — русск. открытый язык вычислений) — фреймворк для написания компьютерных программ, связанных с параллельными вычислениями на различных графических (англ. GPU) и центральных процессорах (англ. CPU).
На официальном сайте FlaCuda приводятся впечатляющие результаты тестов: около 10 раз прироста производительности на GTX 285 по сравнению с Core i7 940.
Настройка
Установка вручную
Необходимо скачать кодек FLACCL с нашей страницы загрузок. Извлекаем содержимое архива в папку с плеером C:\Program Files (x86)\foobar2000.
С ипользованием нашей сборки кодека
В этом случае вам необходимо скачать кодек FLACCL для foobar2000 и просто установить его.
Далее следует настройка плеера. Вам необходимо открыть опции плагина Converter:
В настройках нажимаем кнопку Output format:
Добавляем новую настройку нажатием кнопки Add New:
В настройках выбираем Encoder: Custom.
Устанавливаем путь до распакованного главного файла кодека (он должен быть наподобие C:\Program Files (x86)\foobar2000\CUETools.FLACCL.cmd.exe).
В параметрах впишите "-7 %s -o %d" без кавычек. Без %d через пайпы кодек у меня так и не захотел стабильно работать.
Указываем расширение файла Extension: flac.
Название кодека можете выбрать любым. Мне больше по нраву первоначальное название проекта FlaCuda.
Нажимаете кнопку OK и у вас появляется новый Output format с использованием FLACCL. Выбираете его и снова нажимаете кнопку OK. Теперь ваша настройка может быть сохранена нажатием кнопки Save <<. Укажите для нее любое название, чтобы использовать эту настройку в будущем.
На этом все настройки сделаны и вы можете кодировать звука с использованием мощностей вашей видеокарты.
Тюнинг
Итак, у нас все работает и мы счатливы... Почти. Все было бы прекрасно, если бы у всех нас стояли SSD диски со скоростью под 500 МБ/с, но это, к сожалению, произойдет еще не скоро. А пока нам стоит провести небольшие оптимизации. Дело в том, что кодирование многих файлов параллельно (вряд ли сейчас у вас 1 ядро в компе...) вызывает дикие проблемы со скоростью записи. А если мы не можем быстро записывать свежезакодированные файлы, зачем нам такая скорость кодирования?
Если у вас 4 ядра в процессоре, то вы можете пойти на небольшую хитрость и заставить Converter работать в 2 потока. Это не слишком замедляет запись и прирост производительности может оказаться ощутимым. Для этого необходимо открыть основные настройки foobar2000 и изменить параметр Thread count на 2:
Если у вас все равно наблюдается плавающая производительность, то вы можете попробовать указать только один поток. Поэкспериментируйте с этим параметром.
Итак, у меня удалось получить на своем компьютере (Core Quad Q6600, GeForce 9800 GT) скорость сжатия примерно в 200-250 раз быстрее по отношению к реальному времени воспроизведения. Что является довольно серьезным приростом, так как раньше я сжимал быстрыми настройками в WavPack около 80 раз быстрее по отношению к реальному времени.