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 раз быстрее по отношению к реальному времени.