Views
3 years ago

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

pc_zone ГЛЕБ

pc_zone ГЛЕБ ПОЛИКАРПОВ CUDA КАТИТСЯ МИР? ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ С ИСПОЛЬЗОВАНИЕМ ВИДЕОКАРТЫ С тех пор, как на графических процессорах стали доступны неграфические вычисления, многое изменилось. Известен не один пример того, как кластер из нескольких машин с мощными видеокартами мог поспорить с бешено дорогими суперкомпьютерами. За счет чего получается такой прирост производительности и так ли все просто на самом деле? О возможности задействовать процессор видеокарты (GPU) для неграфических вычислений говорили давно. Впервые архитектура CUDA (Compute Unified Device Architecture) появилась в феврале 2007 года, предоставив программистам возможность использовать технологию GPGPU (General-Purpose computing on Graphics Processing Units), благодаря которой на привычных языках высокого уровня (прежде всего — Си) можно реализовывать алгоритмы, которые выполняются на графических ускорителях GeForce восьмого поколения и старше. Видеоадаптер с поддержкой CUDA становится мощной программируемой архитектурой, подобно сегодняшим центральным процессорам. CUDA НА ПАЛЬЦАХ Бонусом за использование GPU стала появившаяся у разработчиков и невиданная досели степень параллелизма: возможность запустить процесс в десятках и сотнях тысяч потоков! Справедливости ради стоит сказать, что такие потоки достаточно сильно отличаются от потоков CPU, но CUDA всеми силами пытается скрыть от разработчика сложность их использования. Но несмотря на относительную простоту внедрения, взять и увеличить производительность любого приложения в N раз не выйдет. Благодаря CUDA возможно оптимизировать лишь ту частью приложения, которую можно распараллелить, а это, увы, далеко не всегда очевидная задача. Давай разберемся, в чем отличается основной процессор системы (CPU) и процессор видеокарты? Важно понимать, что CPU изначально приспособлен для решения задач общего плана и работает с произвольно адресуемой памятью. Программы на CPU могут обращаться напрямую к любым ячейкам линейной и однородной памяти. Сравни это с GPU, где используется сразу пять видов пямяти. Но и тут CUDA делает все, чтобы помочь программисту, позволяя процессам в рамках одного блока работать с общей памятью. Извечная проблема большинства вычислительных систем заключается в том, что память работает медленнее процессора. Чтобы нивелировать это недостаток, производители CPU используют кэш-память, работающую на частоте процессора. Таким образом, удается сэкономить время при обращении к наиболее часто используемым данным. На современных графических процессорах также есть система кеша, но она не такая мощная, как на CPU. Поэтому на GPU медленные обращения к памяти скрывают, используя параллельные вычисления. Пока одни задачи ждут данных, работают другие, готовые к вычислениям. Это один из основных принципов CUDA, позволяющих сильно поднять производительность системы в целом. Вычислительная архитектура CUDA основана на концепции—одна команда на множество данных (Single Instruction Multiple Data, SIMD) и понятии мультипроцессора. Концепция SIMD подразумевает, что одна инструкция позволяет одновременно обработать множество данных. Мультипроцессор — это многоядерный SIMD-процессор, позволяющий в каждый определенный момент времени выполнять на всех своих ядрах только одну инструкцию. Важно понимать, что использовать мощности графического процессора уместно далеко не всегда. GPU предназначен для вычислений с большим параллелизмом и интенсивной арифметикой. Это объясняется тем, что у него гораздо большее число транзисторов отведено на обработку данных, а не на управление исполнением (flow control). Поэтому GPU демонстрируют хорошие результаты в параллельной обработке данных, когда с помощью одной и той же последовательности действий обрабатывается большой объем данных. Именно по этой причине всю мощь от использования CUDA можно ощутить, когда 028 XÀÊÅÐ 07 /127/ 09

pc_zone MAIN MEMORY GPU 1 COPY PROCESSING DATA INSTRUCT THE PROCESSING 2 MEMORY FOR GPU COPY THE RESULT 4 GPU (GEFORCE 8800) 3 EXECUTE PARALLEL IN EACH CORE СХЕМА ВЗАИМОДЕЙСТВИЯ МЕЖДУ CPU И GPU. (1) КОПИРУЕМ ДАННЫЕ ИЗ ОСНОВНОЙ ПАМЯТИ В ПА- МЯТЬ ВИДЕОКАРТЫ. (2) ПЕРЕДАЕМ УПРАВЛЕНИЕ GPU. (3) GPU ВЫПОЛНЯЕТ КОМАНДУ ПАРАЛЛЕЛЬНО В КАЖДОМ ЯДРЕ. (4) КОПИРУЕМ РЕЗУЛЬТАТ ИЗ ПАМЯТИ ВИДЕОКАРТЫ В ОСНОВНУЮ ПАМЯТЬ требуется выполнять одни и те же действия над огромными массивами данных (пример: локальный брутфорс чего-либо). УСТАНОВКА CUDA В СИСТЕМУ До недавнего времени GPU могли программироваться только посредством специальных графических API. Отсюда вытекали и недостатки в лице длительного времени, которое требовалось для его изучения, а также накладных расходов, возникающих за счет использования промежуточного звена. CUDA представляется для программиста в виде расширения для привычных языков программирования, а поэтому изучить его намного проще. Вообще, все что нужно, для того чтобы начать использовать CUDA — обзавестись соответствующим SDK и скачать с официального сайта NVIDIA драйвер CUDA, который связывается с DirectX, OpenGL и С-компилятором для GPU. Разработчику дополнительно потребуется установить специальную среду разработки CUDA Toolkit. Не составит труда установить CUDA и на Linux, например на самом официальном сайте есть подробные инструкции по установке CUDA на Ubuntu. В систему устанавливается все необходимое для работы с CUDA, включая runtime и компилятор nvcc. Причем сам компилятор фактически представляет собой препроцессор, обрабатывающий исходник и строящий отдельный код для GPU и CPU. XÀÊÅÐ 07 /127/ 09 Для компиляции кода для CPU (включая код, необходимый для запуска ядра) nvcc использует обычный C/C++ компилятор (на Linux’е он использует gcc). Теперь давай, наконец, посмотрим, где сейчас можно оценить эффект от внедрения вычислений на видеоадаптерах. Главное, помни два важных требования для использования CUDA: 1) Наличие видеоадаптера GeForce 8-й серии и старше (подробнее во врезке); 2) 512 Мб видеопамяти на борту. ТРИК 1: РАСПРАВЛЯЕМСЯ С MD5 Первое и самое простое из того, что можно сделать, чтобы проверить функциональность CUDA, — попробовать пробрутить какой-нибудь хеш и сравнить результаты с теми, что дают утилиты из нашего брутфорс-набора (читай статью «Лучшие инструменты пентестера»). Одна из таких утилит — BarsWF (http://3.14.by/ru/md5), разработкой которой занимается Михаил Сварчевский. На текущий момент разработчиком достигнута скорость перебора, равная 350 миллионам ключей в секунду. Синтаксис для запуска следующий: BarsWF_SSE2_x64.exe -h 21685d282d79098b89bdf5 a916b66c90 -X «030405313233» -min_len 12 Ключ «-X» добавляет дополнительные значения для перебора, «-min_len» обозначает минимальную длину пароля (она должна быть не более 15). Перед запуском не поленись скачать самый последний драйвер с поддержкой CUDA (www.nvidia.com/ object/cuda_get.html) или AMD/Brook, если используешь видюху на базе AMD (ati.amd. com/support/driver.html). Для взлома хешей с использованием CUDA есть и другие проекты: Vernoux Md5 crack (bvernoux.free.fr/md5/index.php), Lightning Hash Cracker (www.elcomsoft.com/lhc. html), cuMD5 (forums.nvidia.com/index. php?showtopic=71548), nVCuda_md5 (forum. antichat.ru/thread62728.html), InsidePro EGB (www.insidepro.com/eng/egb.shtml). ТРИК 2: БРУТИМ СЛОЖНЫЕ ХЕШИ Хорошо, с MD5 разобрались. А как быть с другими хешами? Тут тебе в помощь — специальная версия Rainbowcrack (projectrainbowcrack.com), заточенная под CUDA. Программа не только оптимизирована для работы на многопроцессорных системах, но еще и эффективно использует возможности современных GPU. Только вдумайся в цифры: для NTLM-хеша скорость перебора, используя мощности графического процессора, составляет 500 миллионов паролей в секунду. А если вместо брутфорса использовать rainbowтаблицы, получаем вообще астрономическую цифру: почти 73904 миллионов паролей в секунду! 029

Скачать - Xakep Online
ИюНь - Xakep Online
Май - Xakep Online
ЛУЧШИХ ВИРУСОВ - Xakep Online
Ноябрь - Xakep Online
JIT SPRAY АНАЛИЗ TDSS - Xakep Online
Скачать - Xakep Online
Январь - Xakep Online
ЛЕГКИЙ ХАК - Xakep Online
УЧИМ КАКОценить сбалансированность системы ... - Xakep Online
КОНКУРС - Xakep Online
Офисное западло - Xakep Online
7 ЧУДЕС KDE - Xakep Online
ВЗЛОМ ИНТЕРНЕТ-МАГАЗИНА: - Xakep Online
Скачать - Xakep Online
Взлом GSM - Xakep Online
Ноябрь - Xakep Online
WebMoney - Xakep Online
Untitled - Xakep Online
с татьи - Xakep Online
Много новогодних конкурсов Много новогодних ... - Xakep Online
2009 - Xakep Online
c-лето ;) - Xakep Online
содержание 10 (59) - Xakep Online
сишься, что левые трояны, вирусы и всякая про ... - Xakep Online
cамые лучшие материалы 1-4 номеров + вся ... - Xakep Online
шпион внутри - Xakep Online
ЗАКАДРИ КАРДИНГ НАШИ ИДУТ! - Xakep Online