Привет! Закончилось лето, деревья роняют свои листья на холодную землю, в Новосибирске идет первый снег, а я в это время хочу рассказать небольшую историю о настройке платформы для перебора паролей WPA/WPA2 на базе устаревшей на сегодняшний день видеокарты RADEON HD4890.
Читать полностью »
Рубрика «gpgpu» - 7
Что делать с пыльным GPU, если ты — пентестер. Часть 1: Legacy ATI-AMD RADEON
2014-09-23 в 6:07, admin, рубрики: amd, ati, gpgpu, PSK, radeon, Ubuntu, Беспроводные технологии, информационная безопасностьПараллелим непараллельное или поиск простых чисел на GPU
2014-07-18 в 17:46, admin, рубрики: gpgpu, gpgpu (nvidia cuda), Алгоритмы, параллельное программированиеОдним замечательным летним вечером, я в пылу спора имел глупость заметить, что можно написать быстро работающее решето Эратосфена на CUDA. N = 1000000000 (девять нулей) как цель. And the legend has begun…
Не буду опускаться в подробности алгоритма, о нем можно почитать, например, тут и сразу покажу код, которым я располагал на тот момент:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double number = 1000000000;
bool* a = new bool[int(number/2)];
int i,j,result;
for (i=0; i<number/2; i++)
a[i] = true;
for (i=3; i<=floor(sqrt(number)); i+=2)
if (a[i/2])
for (j=i*i; j<=number; j+=i*2)
a[j/2]=false;
result = 0;
for (i=0; i<number/2; i++)
if (a[i]) result++;
cout << result << endl;
delete[] a;
return 0;
}
Однопоточный немного оптимизированный код, который работает на 14-15 секунд на Core i3 330M и затрачивает большое количество памяти. С него и начнем.
Читать полностью »
Нет времени объяснять, придумайте реально сложный пароль к Скайпу
2014-07-12 в 17:58, admin, рубрики: bcrypt, bruteforce, gpgpu, hashcat, md5, microsoft, oclhashcat, scrypt, skype, информационная безопасность Потому что он хранится в виде хеша типа MD5(user,"nskypern",pass).
В следующей версии утилиты для взлома хешей с использованием GPGPU oclHashcat появится возможность взламывать такие хеши(впрочем это можно делать уже сейчас), скорость перебора таких хешей, а следовательно и ваших паролей, составляет сейчас около 4 GHash/s(млрд.паролей в сек) одной AMD R9 290X.
Читать полностью »
Intel собирается выпустить серверные процессоры Xeon со встроенной FPGA
2014-06-21 в 8:11, admin, рубрики: fpga, gpgpu, intel xeon, высокая производительность, Железо, Процессоры, метки: fpga, gpgpu, intel xeon
Восьмиядерный процессор Xeon
Корпорация Intel планирует включить в состав своих чипов Xeon программируемую пользователем вентильную матрицу (FPGA). FPGA позволяет пользователю переконфигурировать логику работы интегральной схемы, оптимизировав её под решение конкретной задачи. Это позволяет ускорить некоторые вычисления на порядок, или намного снизить энергопотребление. Другими словами, это позволит каждому пользователю создавать на кристалле Xeon собственный сопроцессор, заточенный под конкретные задачи.
Читать полностью »
Особенности выделения памяти в OpenCL
2014-03-11 в 17:23, admin, рубрики: gpgpu, opencl, метки: gpgpu, openclВведение
Здравствуйте, дорогие читатели.
В данном посте я постараюсь рассмотреть особенности выделения памяти для объектов OpenCL.
OpenCL является кросс-платформенным стандартом гетерогенных вычислений. Не секрет, что на нём пишут программы тогда, когда от них требуется скорость выполнения. Как правило, подобный код нуждается во всесторонней оптимизации. Всякий GPGPU-разработчик знает, что операции с памятью зачастую являются самым слабым звеном в скорости работы программы. Так как в природе существует великое множество аппаратных платформ, поддерживающих OpenCL, то вопрос организации объектов памяти зачастую становится головной болью. То, что хорошо работает на Nvidia Tesla, оснащённых локальной памятью и соединённых широкой шиной с глобальной, отказывается показывать приемлемую производительность на SoC, имеющих совершенно иную архитектуру.
Об особенностях выделения памяти для систем с общей памятью CPU и GPU и пойдёт речь в данном посте. Использование типов памяти Image оставим в стороне и сосредоточимся на наиболее общеупотребительном типе Buffer. В качестве стандарта будем рассматривать версию 1.1, как наиболее распространённую. В начале проведём краткий теоретический курс, а затем рассмотрим несколько примеров.
Реализация алгоритма BFS на GPU
2014-03-07 в 9:01, admin, рубрики: bfs, CUDA, gpgpu, gpu, Kepler, Nvidia, параллельное программирование, метки: bfs, CUDA, gpgpu, gpu, Kepler, NvidiaАннотация
В данной статье хочу рассказать как можно эффективно распараллелить алгоритм BFS — поиск в ширину в графе с использованием графических ускорителей. В статье будет приведен подробный анализ полученного алгоритма. Вычисления выполнялись на одном GPU GTX Titan архитектуры Kepler.
Введение
В последнее время все большую роль играют графические ускорители (GPU) в не графических вычислениях. Потребность их использования обусловлена их относительно высокой производительностью и более низкой стоимостью. Как известно, на GPU хорошо решаются задачи на структурных сетках, где параллелизм так или иначе легко выделяется. Но есть задачи, которые требуют больших мощностей и используют неструктурные сетки. Примером такой задачи является Single Shortest Source Path problem (SSSP) – задача поиска кратчайших путей от заданной вершины до всех остальных во взвешенном графе. Решение данной задачи рассмотрено мной в этой статье. Вторым примером задачи на неструктурных сетках является задача Breadth First Search (BFS) — поиска в ширину в неориентированном графе. Данная задача является основной в ряде алгоритмов на графах. Также она немного проще, чем поиск кратчайшего пути. На данный момент алгоритм BFS используется как основной тест для рейтинга Graph500. Далее рассмотрим, как можно использовать идеи решения задачи SSSP в задаче BFS. Про архитектуру GPU компании Nvidia и об упомянутых алгоритмах уже много написано, поэтому в этой статье я не стану дополнительно писать про это. Так же, надеюсь, что понятия warp, cuda блок, SMX, и прочие базовые вещи, связанные с CUDA читателю знакомы.
Читать полностью »
Реализация алгоритма SSSP на GPU
2014-03-03 в 16:00, admin, рубрики: CUDA, gpgpu, intel, Kepler, Nvidia, метки: CUDA, gpgpu, intel, Kepler, NvidiaАннотация
В данной статье хочу рассказать как можно эффективно распараллелить алгоритм SSSP — поиска кратчайшего пути в графе с использованием графических ускорителей. В качестве графического ускорителя будет рассмотрена карта GTX Titan архитектуры Kepler.
Введение
В последнее время все большую роль играют графические ускорители (GPU) в не графических вычислениях. Потребность их использования обусловлена их относительно высокой производительностью и более низкой стоимостью. Как известно, на GPU хорошо решаются задачи на структурных сетках, где параллелизм так или иначе легко выделяется. Но есть задачи, которые требуют больших мощностей и используют неструктурные сетки. Примером такой задачи является Single Shortest Source Path problem (SSSP) – задача поиска кратчайших путей от заданной вершины до всех остальных во взвешенном графе. Для решения данной задачи на CPU существует, по крайней мере, два известных алгоритма: алгоритм Дейсктры и алгоритм Форда-Беллмана. Так же существуют параллельные реализации алгоритма Дейстры и Форда-Беллмана на GPU. Вот основные статьи, в которых описаны решения данной задачи:
Читать полностью »
Массивно-параллельная стабилизация изображения
2014-02-27 в 7:50, admin, рубрики: CUDA, gpgpu, Алгоритмы, обработка изображений, метки: CUDA, gpgpu
Предисловие
Доброго времени суток! Сегодня решил поделиться с Вами сокровенным — одним из своих любимых велосипедов.
Начну издалека — довольно долго я работал на одном радиозаводе в Челябинске, и был у нас (вообще и сейчас есть, просто я уже не там) один мега-проект: оптико-электронный модуль для охраны физических объектов. Это такая здоровая штука на поворотной установке, с тремя камерами на все случаи жизни (цветная — дневная, ЧБ светочувствительная — для сумерек, и тепловизор — для ночного наблюдения). Берётся такой модуль, ставится на вышку высотой метров 50 — и можно днём и ночью держать под наблюдением территорию в радиусе 4-5 километров. Подробности писать не стану, не о том пост. Кому интересно — сами найдут.
Разумеется, интересных задачек по обработке изображений было много. Об одной из таких я и хочу рассказать. А именно — как использовать массивно-парралельные вычисления для компенсации дрожания камеры в реальном времени, или почему SURF подходит не всегда. Добро пожаловать под кат.
Читать полностью »
Пример оптимизации вычислений на CUDA
2014-02-03 в 10:42, admin, рубрики: CUDA, gpgpu, оптимизация, метки: CUDA, gpgpu, оптимизацияВведение
Я описываю результаты применения способов оптимизации вычислений на CUDA при моделировании плазмы. Вычисления производятся с использованием Java-привязки к CUDA (JCUDA) [1] на GT630 (Kepler). Моделирование происходит как решение задачи Коши — задание значений параметров в начальный момент времени, затем приращение времени и перерасчет всех уравнений, и т.д. многократно. Вычисления происходят в двойной точности (double). Правильность полученных результатов подтверждена вычислениями на CPU без JCUDA.Читать полностью »
Пространственно-временная обработка изображений на GPU
2014-01-25 в 17:39, admin, рубрики: gpgpu, gpu, обработка изображений, метки: CUDA, gpu, обработка изображений Не так уж и давно стало популярным использовать видеокарты для вычислений. В один прекрасный день, несколько лет назад и я взглянул на новую, тогда, технологию CUDA. В руках была хорошая карточка по тем временам GTX8800, да и задачки для распараллеливания тоже были.
Кто работал с GPU, знает про объединение запросов, конфликт банков и как с этим бороться, а если не работал, то можно найти несколько полезных статей по основам программирования на CUDA[1]. Карта GTX8800, в некотором смысле, была хороша тем, что была одной из первых и поддерживала только первые версии CUDA, поэтому на ней было четко заметно, когда есть конфликты банков или запросы в глобальную память не объединяются, потому что время в этом случае увеличивалось в разы. Все это помогало лучше понять все правила работы с картой и писать нормальный код.
В новые модели добавляют все больше и больше функциональности, что облегчает и ускорят разработку. Появились атомарные операции, кеш, динамический параллелизм и т.д.
В посте я расскажу про пространственно-временную фильтрацию изображений и реализацию для compute capability = 1.0, и как можно ускорить получившийся результат за счет новых возможностей.
Временная фильтрация может пригодиться при наблюдении за спутниками или в прочих ситуациях фильтрации, когда требуется точное подавление фона.
Читать полностью »