@del993788

Как разархивировать rar архив с помощью cuda?

Здравствуйте. Есть файл RAR ( 13гб) сжатый до 4,5гб. Когда я пытаюсь его извлечь, меня пугают 2 часами распаковки. У меня очень древний процессор и относительно новая видеокарта. Скажите, как задействовать вычислительную мощность видеокарты? Я уже гуглил, но ничего достойного не нашел...
  • Вопрос задан
  • 2725 просмотров
Решения вопроса 1
saboteur_kiev
@saboteur_kiev
software engineer
Пока что никто такое не делает.
Для создания алгоритма архивации нужен именно CPU а не GPU. Тех задач, которые может посчитать GPU в процессе архивирования не так уж и много. То есть если алгоритм и реализовать, выхлоп будет ну 30-40%. Просто задачи не те.

Зато какие минусы:
Нестабильная работа на разных компах, поскольку видяшки все разные, частоты разные, синхронизация и вообще API для работы с GPU постоянно меняется. Для nvidia и ATI надо писать совершенно разное, и архиватор должен определять кучи моделей карт, чтобы знать чем пользоваться а чем нет.
Основной приток производительности в GPU идет от распарралеливания однотипных процессов, в то время как для архивации важно учитывать все, что было сжато до, чтобы использовать это для дальнейшего сжатия.
Грубо говоря: если для того, чтобы на экране нам нужно сделать эффект размытия, мы можем поделить экран на 100 кусочков и каждый размыть отдельно в отдельном потоке на GPU. Если же мы разделим на 100 кусочков архивируемый файл, и каждый кусочек будет архивировать отдельно, мы не сможем пользоваться наработками по первым кускам, чтобы благодаря обработанным данным сжать послеюущие. Парралелить процесс архивации получается крайне плохо, из-за этого смысл использования GPU отпадает. Нужно же понимать, что GPU это не супербыстрая железка, а железка, которая хорошо заточена под определенные задачи.

Конечно попытки реализовать отдельные алгоритмы архивации есть, но из-за вышеупомянутого, степень сжатия очень маленькая, потому что можно реализовать только простые алгоритмы на кусках данных. Полноценный алгоритм, как в winrar полностью перенести в GPU невозможно, поэтому CUDA-архиваторы пока существуют просто в виде тестовых программок разных любителей попробовать, и до полноценного архиватора они не дотягивают.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vilgeforce
Раздолбай и программист
Нужно сначала показать возможность работы алгоритма разархивации в параллельном режиме. Потом реализовать его для GPU. В первой части у меня есть очень большие сомнения...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы