Данная статья написана с целью продемонстрировать как с помощью технологии CUDA можно смоделировать простое взаимодействие заряженых частиц (см. Закон Кулона). Для вывода статической картинки я использовал библиотеку freeglut.
Как пишут частенько на Хабре: Читать полностью »
Рубрика «CUDA» - 7
Моделирование электрического поля средствами CUDA
2012-12-31 в 17:26, admin, рубрики: CUDA, freeglut, gpgpu, симуляция, физика, школа, метки: CUDA, freeglut, симуляция, физика, школаКосмики: моделирование эволюции многоклеточных организмов
2012-10-02 в 12:38, admin, рубрики: CUDA, gpgpu, биоинформатика, искусственный интеллект, моделирование, роевой интеллект, эволюция, метки: CUDA, моделирование, роевой интеллект, эволюцияЗдравствуй!
Несколько лет назад в прикладных целях я реализовал обычный Force-based визуализатор графов.
На меня произвело впечатление, как простые итеративные преобразования могут производить субъективно сложные и интересные вычисления, формируя нетривиальные визуально-кинетические модели.
Со временем возникло несколько идей, что интересного можно смоделировать.
Вот что получилось с одной из них:
Unbiased DirectX Рендеринг на GPU, CPU и в облаке
2012-10-02 в 6:24, admin, рубрики: cloud computing, CUDA, direct3d, DirectX, gpgpu, gpu, HLSL, intel, opencl, path tracing, ray tracing, shaders, unbiased rendering, windows azure, x64, x86, Анимация и 3D графика, Облачные вычисления, рендеринг, рендеринг без допущений, трассировка лучей, трассировка пути, шейдеры, метки: 3d графика, cloud computing, CUDA, direct3d, DirectX, gpgpu, gpu, HLSL, intel, Nvidia, opencl, path tracing, ray tracing, shaders, unbiased rendering, windows azure, x64, x86, АРМ, облачные вычисления, рендеринг, рендеринг без допущений, трассировка лучей, трассировка пути, шейдеры Как создать рендерер, который бы работал даже на компьютере вашей бабушки? Изначально перед нами стояла немного другая задача — создать unbiased рендер для всех моделей GPU: NVidia, ATI, Intel.
Хотя идея такого рендера для всех видеокарт витала в воздухе давно, до качественной реализации, тем более на Direct3D, дело не доходило. В своей работе мы пришли к весьма дикой связке и дальше расскажем, что нас к ней привело и как она работает.
CUDA: синхронизация блоков
2012-09-20 в 20:00, admin, рубрики: CUDA, gpgpu, Nvidia, метки: CUDA, gpgpu, NvidiaПри использовании средств параллельных вычислений весьма вероятно может сложиться ситуация, когда алгоритм содержит два таких последовательных этапа: i) каждый j-ый поток сохраняет некоторый промежуточный результат вычисления в j-ой ячейке памяти, а, затем, ii) этот поток должен использовать результаты одного или более «соседних» потоков. Очевидно, что необходимо организовать в коде программы некий барьер по времени, который каждым потоком преодолевается уже после того, как все сохранят свои промежуточные результаты в соответствующих ячейках памяти (этап (i)). В противном случае, какой-то поток может перейти к этапу (ii), пока какие-то другие потоки еще не завершили этап (i). Как это ни прискорбно, но создатели CUDA посчитали, что такой специальный встроенный механизм синхронизации любого числа потоков на одном GPU не нужен. Так как же можно бороться с этой напастью? Хотя Google, судя по подсказкам, и знаком с данным вопросом, но готового удовлетворительного рецепта под свою задачу найти не удалось, а на пути к достижению желаемого результата для новичка (которым я и являюсь) имеются некоторые подводные камни.
Пример реализации Stencil буфера с помощью CUDA
2012-09-17 в 15:38, admin, рубрики: CUDA, stencil, Анимация и 3D графика, метки: CUDA, stencil
Stencil buffer используется для маскировки отражений в тех местах где их на самом деле нет. Техника Stencil используется в OpenGL и DirectX. Перед применением алгоритма производится Stencil тест и в тех местах где нет изображения пиксельный шейдер не будет рендерится. Таким образом мы пресекаем лишнюю работу.
Читать полностью »
Ускоряем node.js: нативные модули и CUDA
2012-09-10 в 5:55, admin, рубрики: CUDA, high performance, node.js, nodejs, Веб-разработка, высокая производительность, метки: CUDA, high performance, nodejsИногда разработчики различных веб-проектов сталкиваются с необходимостью обработки больших объемов данных или использованием ресурсозатратного алгоритма. Старые инструменты уже не дают необходимой производительности, приходится арендовать/покупать дополнительные вычислительные мощности, что подталкивает к мысли переписать медленные участки кода на C++ или других быстрых языках.
В этой статье я расскажу о том, как можно попробовать ускорить работу Node.JS (который сам по себе считается довольно быстрым). Речь пойдет о нативных расширениях, написанных с помощью C++.
Читать полностью »
Два гиганта в одной программе — Nvidia CUDA и MPI
2012-09-02 в 14:38, admin, рубрики: CUDA, linux, mpi, ubuntu 12.04, Программирование, метки: CUDA, linux, mpi, ubuntu 12.04 Здравствуйтее, в этой статье я хочу рассказать о взаимодействии двух технологий MPI(mpich2) и NVIDIA CUDA. Упор я хочу сделать именно на саму структуру программы и настройку вышеописанных технологий для работы в одной программе. И так поехали…
Читать полностью »
Запускаем Java-программы на GPU
2012-08-14 в 11:17, admin, рубрики: CUDA, gpgpu, gpu, java, Компиляторы, Параллелизм, метки: CUDA, gpu, java, ПараллелизмНа Github выложен исходный код компилятора Rootbeer, с помощью которого можно почти любой Java-код запустить на графическом процессоре, а также легко разделить Java-программу на фрагменты для CPU/GPU.
Компилятор опубликован под свободной лицензией GNU GPLv3, он прошёл тщательное тестирование и вполне пригоден для использования. По словам автора, это самый продвинутый транслятор байткода Java на платформу CUDA. Судя по всему, OpenCL тоже поддерживается.
Автор программы — преподаватель Сиракузского университета Фил Пратт-Желига (Phil Pratt-Szeliga).
Читать полностью »
Анализ возможностей массового аудита на основе утечки хешей из LinkedIn
2012-06-14 в 18:31, admin, рубрики: CUDA, sha1, Алгоритмы, брутфорс, информационная безопасность, перебор, радужные таблицы, релевантность, Соль, частотный анализ, метки: CUDA, sha1, брутфорс, перебор, радужные таблицы, релевантность, Соль, частотный анализ Неделю назад утекла база хешей с LinkedIn, для других это событие может быть примечательным само по себе, но для меня, в первую очередь, это означает возможность провести анализ современных возможностей взлома паролей. И я не собираюсь рассказывать о том сколько раз слово «password» было встречено среди паролей и о том, сколько времени занимает перебор шестисимвольных комбинаций. Скорее буду пугать пользователей тем, насколько сложные пароли можно «взломать» за несколько часов. А программистам расскажу как это возможно эффективно реализовать, и в качестве небольшого подарка приложу программу, которую я написал для массового аудита. Присутствует и некоторый ликбез по использованию радужных таблиц с простыми выводами.
И так, за час удалось «восстановить» около 2.5 миллионов паролей на средней рабочей конфигурации, без специальных словарей и радужных таблиц. Среди найденных паролей присутствуют 16-символьные алфавитно-цифровые комбинации, и далеко не в единственном экземпляре.
Читать полностью »
Новый виток архитектуры CUDA
2012-05-26 в 20:44, admin, рубрики: CUDA, gpgpu, Kepler, высокая производительность, метки: CUDA, Kepler Всем привет!
В начале апреля я увидел анонс новой видеокарты от nVidia, с новым мажорным индексом compute capability – 3.0. Внимательно изучив спеки был удивлён – по всему выходило, что теперь ветвления будут приводить к самым худшим последствиям: большим потерям производительности. Мне нравилось, что от версии к версии ветвления играют всё меньшую роль, а Kepler показался в этом плане шагом назад. Мозгом я понимал, что такое вряд ли возможно и решил немного выждать.
И вот на этой неделе мне пришёл whitepaper по новой числодробилке на архитектуре Kepler и многое прояснил.
Читать полностью »