CUDA Nvidia использования библиотеки Compression [закрывается]

51
задан einpoklum - reinstate Monica 26 January 2017 в 10:42
поделиться

3 ответа

Не знающий о любом сделавшем это и обнародовал его. Просто, по моему скромному мнению, это не звучит очень перспективным.

, Поскольку Martinus указывает, некоторые алгоритмы сжатия очень последовательны. Алгоритмы сжатия блока как LZW могут быть параллелизированы путем кодирования каждого блока независимо. Архивирование большого дерева файлов может быть параллелизировано на уровне файла.

Однако ни один из них не действительно параллелизм SIMD-стиля (Единственная Инструкция Несколько Данных), и они не с массовым параллелизмом.

GPU являются в основном векторными процессорами, где можно делать сотни или тысячи инструкций по ADD все на шаге блокировки, и выполнять программы, где существует очень немного информационно-зависимых ответвлений.

Алгоритмы сжатия в общем звуке больше как SPMD (Единственная Программа Несколько Данных) или MIMD (Многоадресная команда Несколько Данных) модель программирования, которая лучше подходит для многоядерных CPU.

Алгоритмы сжатия видео могут быть ускорены GPGPU, обрабатывающим как CUDA только до такой степени, что существует очень большое количество пиксельных блоков, которые преобразовываются в косинус или скручиваются (для обнаружения движения) параллельно, и IDCT или подпрограммы свертки могут быть выражены кодом без веток.

GPU также как алгоритмы, которые имеют высокую числовую интенсивность (отношение математических операций к доступам памяти.) Алгоритмы с низкой числовой интенсивностью (как добавление двух векторов) могут быть с массовым параллелизмом и SIMD, но все еще работать медленнее на gpu, чем CPU, потому что они - связанная память.

43
ответ дан Die in Sente 7 November 2019 в 10:05
поделиться

Обычно алгоритмы сжатия не могут использовать параллельные задачи, не легко сделать алгоритмы очень parallelizeable. В Ваших примерах TAR не является алгоритмом сжатия, и единственный алгоритм, который мог бы быть очень parallelizeable, является BZIP, потому что это - алгоритм сжатия блока. Каждый блок может быть сжат отдельно, но это потребовало бы партий и большой памяти. LZMA не работает параллельно также, когда Вы видите 7zip использующий несколько потоков, это вызвано тем, что 7zip разделяет поток данных на 2 различных потока, что каждый сжат с LZMA в отдельном потоке, таким образом, сам алгоритм сжатия не параллелен. Этот разделяющий только работает, когда данные разрешают это.

7
ответ дан martinus 7 November 2019 в 10:05
поделиться

Алгоритмы шифрования были довольно успешны в этой области, таким образом, Вы могли бы хотеть изучить это. Вот статья, связанная с CUDA и Шифрованием AES: http://www.manavski.com/downloads/PID505889.pdf

2
ответ дан Robert Gould 7 November 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: