Как стать автором
Обновить
2

GPGPU *

Технология Nvidia для реализации алгоритмов

Сначала показывать
Порог рейтинга
Уровень сложности

Multi-pattern matching на GPU миф или реальность

Время на прочтение9 мин
Количество просмотров7.8K
image

Немного лирики


В те давние времена, когда трава была зеленее и деревья были выше, я твёрдо верил, что такие страшные слова, как дивергенция потоков, cache missing, coalescing global memory accesses и прочие не позволяют эффективно реализовать задачу множественного поиска на GPU. Годы шли, уверенность не исчезала, но в один прекрасный момент я наткнулся на библиотеку PFAC. Если интересно, на что она способна — добро пожаловать под кат.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии7

Самая быстрая и энергоэффективная реализация алгоритма BFS на различных параллельных архитектурах

Время на прочтение20 мин
Количество просмотров10K

Оффтоп


В названии статьи не поместилось — данные результаты считаются таковыми по версии рейтинга Graph500. Также хотелось бы выразить благодарность компаниям IBM и RSC за предоставленные ресурсы для проведения экспериментальных запусков во время исследования.


Введение


Поиск в ширину (BFS) является одним из основных алгоритмов обхода графа и базовым для многих алгоритмов анализа графов более высокого уровня. Поиск в ширину на графах является задачей с нерегулярным доступом к памяти и с нерегулярной зависимостью по данным, что сильно усложняет его распараллеливание на все существующие архитектуры. В статье будет рассмотрена реализация алгоритма поиска в ширину (основного теста рейтинга Graph500) для обработки больших графов на различных архитектурах: Intel х86, IBM Power8+, Intel KNL и NVidia GPU. Будут описаны особенности реализации алгоритма на общей памяти, а также преобразования графа, которые позволяют достичь рекордных показателей производительности и энергоэффективности на данном алгоритме среди всех одноузловых систем рейтинга Graph500 и GreenGraph500.

Нажми и прочитай про самый быстрый BFS в мире!
Всего голосов 13: ↑13 и ↓0+13
Комментарии4

SDAccel — проверяем передачу данных

Время на прочтение9 мин
Количество просмотров5K


В предыдущей статье «SDAccel – первое знакомство» я попытался описать основы применения OpenCL на ПЛИС Xilinx. Теперь настало время поделиться результатами экспериментов по передаче данных на модуле ADM-PCIe-KU3. Проверяется передача данных в обоих направлениях. Исходный код программ размещён на GitHub: https://github.com/dsmv/sdaccel
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии12

Курсы Computer Science клуба, весна 2017

Время на прочтение4 мин
Количество просмотров6.9K

Computer Science клуб вот уже 10 лет проводит открытые курсы по компьютерным наукам. Большинство лекций стараниями Лекториума записаны на видео и лежат в открытом доступе. В этом семестре выложены уже три новых курса, которые до этого не читались в клубе: «Программирование с зависимыми типами на языке Idris», «Вычисления на GPU. Основные подходы, архитектура, оптимизации», «Методы и системы обработки больших данных».
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии8

Истории

Руководство начинающего программиста графических шейдеров

Время на прочтение8 мин
Количество просмотров43K
Умение писать графические шейдеры открывает перед вами всю мощь современных GPU, которые сегодня уже содержат в себе тысячи ядер, способных выполнять ваш код быстро и параллельно. Программирование шейдеров требует несколько иного взгляда на некоторые вещи, но открывающийся потенциал стоит некоторых затрат времени на его изучение.

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

image
Сцена в Minecraft до и после применения нескольких шейдеров.

Цель этой инструкции


Программирование шейдеров иногда кажется загадочной черной магией. Тут и там можно встретить отдельные куски кода шейдеров, которые обещают вам невероятные эффекты и, возможно, вправду способны их обеспечить — но при этом совершенно не объясняют, что именно они делают и как добиваются столь впечатляющих результатов. Данная статья попробует закрыть этот пробел. Я сфокусируюсь на базовых вещах и терминах, касающихся написания и понимания шейдерного кода, так что впоследствии вы сами сможете менять код шейдеров, комбинировать их или писать свои собственные с нуля.
Читать дальше →
Всего голосов 94: ↑90 и ↓4+86
Комментарии40

Конкурс GraphHPC-2017 на самую быструю реализацию задачи Betweenness Centrality

Время на прочтение4 мин
Количество просмотров5.2K

Лаборатория DISLab (ОАО «НИЦЭВТ») совместно с НИВЦ МГУ проводят четвертую ежегодную научно-практическую конференцию по проблемам параллельной обработки больших графов с использованием суперкомпьютерных комплексов и кластерных систем.


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


Совсем скоро, в рамках данной научно-технической конференции GraphHPC-2017, стартует конкурс GraphHPC, посвященный проблемам параллельной обработки больших графов с использованием суперкомпьютеров. В этот раз участникам предстоит получить самую быструю реализацию задачи Betweenness Centrality (Центральность по посредничеству) в неориентированном графе.

Интересно - жми сюда!
Всего голосов 16: ↑16 и ↓0+16
Комментарии3

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

Время на прочтение6 мин
Количество просмотров14K
Хабр, МФТИ приветствует тебя! Как истинные технари, сразу переходим к делу и приглашаем всех, кому интересно, принять участие в новом хакатоне DeepHack, который пройдет на Физтехе с 6 по 12 февраля. Отборочный этап уже начался и продлится до 22 января. Это мы всё к чему… Если вы не понаслышке знаете, что такое DQN, deep RL и DeepHack сразу регистрируйтесь на очередную научную школу-хакатон — rl.deephack.me.

DeepHack

А если вы не до конца в теме и вам, например, не ясно, почему компьютерные игры, какое отношение они имеют к управлению дата-центрами и что на самом деле будет в феврале, то срочно идите под кат — там максимальное погружение в жизнь искусственного интеллекта от древности и до наших дней. Ну вы же не думаете, что всё это изобрели только в XXI веке?
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии10

Сравнение производительности GPU-расчетов на Python и C

Время на прочтение7 мин
Количество просмотров60K

Python обладает рядом привлекательных преимуществ к которым относится простота реализации программных решений, наглядность и лаконичность кода, наличие большого числа библиотек и многочисленного активного комьюнити. В то же время, известная всем медлительность питона часто ограничивает его применимость для “тяжелых” вычислений. Для ряда задач можно добиться существенного ускорения расчетов путем использования технологии CUDA для параллельных вычислений на GPU. Цель этого небольшого исследования — анализ возможностей эффективного использования python для расчетов на GPU и сравнение производительности различных python-решений с реализацией на C.
Читать дальше →
Всего голосов 42: ↑38 и ↓4+34
Комментарии42

Применение FPGA для расчета деполимеризации микротрубочки методом броуновской динамики

Время на прочтение24 мин
Количество просмотров15K

Все готово, чтобы рассказать Хабр аудитории о применении FPGA в сфере научных высокопроизводительных вычислений. И о том, как на данной задаче надо удалось значительно обскакать GPU (Nvidia K40) не только в метрике производительность на ватт, но и просто с точки зрения скорости вычисления. В качестве FPGA платформы использовался кристалл Xilinx Virtex-7 2000t, подключенный по PCIe к хост компьютеру. Для создания аппаратного вычислительного ядра использовался язык C++ (Vivado HLS).


Под катом текст нашей оригинальной статьи. Там, как обычно бывает, сначала идет долгое описание зачем это все надо и модели, если нет желания это читать, то можно переходить сразу к реализации, а модель посмотреть потом при необходимости. С другой стороны без хотя бы беглого ознакомления с моделью читатель не сможет получить впечатление о том, какие сложные вычисления можно реализовать на FPGA.

Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Комментарии65

Про интернет вещей и полупроводниковую индустрию в краю, где пьют верблюжье молоко. День первый

Время на прочтение8 мин
Количество просмотров8.4K


Несколько месяцев назад мой коллега Тимур Палташев, менеджер в графическом отделении Advanced Micro Devices (AMD) в Саннивейл, Калифорния, предложил мне съездить и устроить семинар в Казахстане. Он будет рассказывать про гетерогенный компьютинг и большие процессоры AMD для игровых приставок и виртуальной реальности, а я буду рассказывать про маленькие процессоры MIPS для встроенных процессоров и машинного видения. Кроме этого мне было обещано попробовать конину, ферментированное молоко кобылицы (кумыс) и ферментированное молоко верблюдицы (шубат). «А тянь-шанские ели там будут?», — спросил я, и получив утвердительный ответ, воскликнул «я готов».

«А под каким соусом будет делаться данное мероприятие?», — спросил я у Тимура и его казахской одноклассницы Гульфариды Тулемиссовой, которая делала всю работу по организации в Almaty Management University. Выяснилось, что казахский народ в настоящее время заинтересовала тематика интернета вещей. Сети из сенсоров с беспроводной связью уже используются чтобы присматривать за шахтерами в казахстанских шахтах, не случилось ли с ними чего. Кроме этого в стране есть качественные программисты микроконтроллеров и инженеры встроенных систем, которые делают сейсмоанализаторы и телекоммуникационные ящики (в кооперации с россиянами и китайцами).

«Хорошо», — сказал я, у Imagination Technologies и ее отделения MIPS Business Unit, в котором я работаю, есть продукты в области интернета вещей, в частности ядра MIPS microAptiv, которые Samsung использует в платформе для интернета вещей Samsung Artik 1. Кроме этого, у нас есть и материалы по микроконтроллерам, а также то, чего в Казахстане пока не хватает — знание ПЛИС-ов и проектирования микросхем, чем казахстанцы могли бы заняться в кооперации с россиянами, которые сейчас хорошо прогрессируют в данном направлении.

После этой беселы я поймал в коридоре нашего компанейского аналитика в области интернета вещей и спросил у него, что собственно такое интернет вещей.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии13

Быстрее быстрого или глубокая оптимизация Медианной фильтрации для GPU Nvidia

Время на прочтение7 мин
Количество просмотров11K

Введение


В предыдущем посте я постарался описать, как легко можно воспользоваться преимуществом GPU для обработки изображений. Судьба сложилась так, что мне подвернулась возможность попробовать улучшить медианную фильтрацию для GPU. В данном посте я постараюсь рассказать каким образом можно получить еще больше производительности от GPU в обработке изображений, в частности, на примере медианной фильтрации. Сравнивать будем GPU GTX 780 ti с оптимизированным кодом, запущенном на современном процессоре Intel Core i7 Skylake 4.0 GHz с набором векторных регистров AVX2. Достигнутая скорость фильтрации квадратом 3х3 в 51 GPixels/sec для GPU GTX 780Ti и удельная скорость фильтрации квадратом 3х3 в 10.2 GPixels/sec на 1 TFlops для одинарной точности на данное время являются самыми высокими из всех известных в мире.

Интересуешься оптимизациями для GPU Nvidia? - читать далее
Всего голосов 33: ↑33 и ↓0+33
Комментарии2

Как мы сделали конвертер и плеер для CinemaDNG на CUDA

Время на прочтение8 мин
Количество просмотров9.8K
На Хабре у меня уже было две статьи (1 и 2), обе они касались реализации быстрого сжатия изображений по алгоритму JPEG на CUDA. Теперь я бы хотел рассказать о другой, гораздо более масштабной задаче — как мы сделали конвертер и видео плеер для серий DNG изображений на CUDA. При этом мы получили очень высокую скорость работы, потому что вся обработка исходных данных в формате DNG теперь выполняется на видеокарте NVIDIA.


Исходное изображение в формате DNG взято с сайта blackmagicdesign.com

Несмотря на то, что в мире уже есть очень большое количество конвертеров RAW, которые работают с форматом DNG, мы решили сделать ещё один, но очень быстрый, который можно было бы использовать в том числе для отбраковки и сортировки. Видео плееры DNG тоже есть, но обычно они работают с уменьшенным разрешением, поэтому просмотреть только что отснятый в формате DNG материал на полном разрешении — это проблема. С помощью нашего конвертера мы сделали попытку обработать картинки настолько быстро, чтобы уметь просматривать серии DNG изображений в реальном времени и при полном разрешении. Естественно, что кроме скорости необходимо было получить приемлемое качество обработки и шумоподавления, и мне кажется, что нам это удалось.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии11

Оптимизация обработки изображений с использованием GPU на примере Медианной фильтрации

Время на прочтение10 мин
Количество просмотров10K

Введение


Издавна графические ускорители (ГПУ) были созданы для обработки изображения и видео. В какой то момент ГПУ стали использоваться для вычислений общего назначения. Но развитие центральных процессоров тоже не стояло на месте: компания Intel ведет активные разработки в сторону развития векторных расширений (AVX256, AVX512, AVX1024). В итоге, появляются разные процессоры — Core, Xeon, Xeon Phi. Обработку изображений можно отнести к такому классу алгоритмов, которые легко векторизуются.
Но как показывает практика, несмотря на довольно высокий уровень компиляторов и технологичность центральных процессоров и сопроцессоров Xeon Phi, сделать обработку изображения с использованием векторных инструкций не так просто, так как современные компиляторы плохо справляются с автоматической векторизацией, а использовать векторные intrinsic функции достаточно трудоемко. Также возникает вопрос о совмещении векторизованного вручную кода и скалярных участков.

Стоит ли использовать GPU, вместо AVX? ответ далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии17

Ближайшие события

Ещё раз про быстрый JPEG на CUDA

Время на прочтение3 мин
Количество просмотров15K
В 2012 году на Хабре уже была моя статья про быстрое сжатие в JPEG на видеокарте. С тех пор прошло уже довольно много времени и мне хотелось бы в общих чертах рассказать про результаты, которые были получены по этой теме. Надеюсь, многим будет интересно узнать, какой уровень производительности можно получить на современных видеокартах NVIDIA при решении практических задач на CUDA.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии27

Марсоход Opportunity более чем в 40 раз превысил запланированный срок службы

Время на прочтение2 мин
Количество просмотров8.8K
В этом году марсоход Opportunity отмечает свое 12-летие на красной планете. Марсоход был высажен 24 января 2004 года и до сих пор продолжает функционировать.

Марсоход «Оппортьюнити» совершил посадку в кратере Игл, на плато Меридиана. В настоящее время Opportunity находится в районе кратера Индевор, тем самым пройдя более 40 км от своего первоначального положения:

image
NASA/JPL/Cornell University, Maas Digital LLC — photojournal.jpl.nasa.gov/catalog/PIA04413

Марсоход управляется двумя компьютерами на базе стандарта CompactPCI, спроектированными и построенными инженерами компании BAE Systems.
Когда Opportunity приземлился, команда НАСА думала, что суровый марсианский климат сделает его неработоспособным в течение нескольких месяцев. Запланированный срок работы марсохода был равен примерно 90 суток. Но марсоход, получающий энергию только от солнечных батарей, все еще собирает данные.
Читать дальше →
Всего голосов 44: ↑14 и ↓30-16
Комментарии26

Быстрое кодирование видео в Linux c Nvidia NVENC с SDK 7.5 и ffmpeg 3.0.2 на Nvidia GTX 960/970/980

Время на прочтение11 мин
Количество просмотров38K
image

Данная статья была написана по мотивам статьи Эффективное кодирование видео в Linux c Nvidia NVENC: часть 1, общая, однако имеет свои особенности и в отличие от оригинальной статьи, на момент написания которой не было выпущено патча, о котором пойдет речь дальше, я применил переработанный патч Nvidia Acceleration к FFmpeg 3.0.2, получив помимо энкодера nvenc еще и быстрый фильтр ресайза — nvresize.

В итого я получил возможность аппаратно кодировать видео в H.264 и HEVC при помощи видеокарты Nvidia GTX 960 на достаточно слабом компьютере (Xeon L5420) со скоростью (для H.264), превышающей возможности данного процессора до 10 раз (и в 3 раза относительно Core i7)! Причем на моем любимом Debian 8 Jessie.

Итак, начнем!
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии57

Конкурс GraphHPC-2016 на самую быструю реализацию параллельного алгоритма Community Detection: Итоги

Время на прочтение2 мин
Количество просмотров6.5K

В рамках конференции GraphHPC-2016, прошедшей 3 марта 2016 года в МГУ им. М.В. Ломоносова на факультете ВМК, проводился конкурс на самую быструю реализацию задачи Community Detection — поиска сообществ в неориентированном графе с весами.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

Глубокое обучение в гараже — Братство данных

Время на прочтение10 мин
Количество просмотров26K
Пример работы системы
Вы тоже находите смайлы презабавнейшим феноменом?
В доисторические времена, когда я еще был школьником и только начинал постигать прелести интернета, с первых же добавленных в ICQ контактов смайлы ежедневно меня веселили: ну действительно, представьте, что ваш собеседник корчит рожу, которую шлет вам смайлом!

С тех пор утекло много воды, а я так и не повзрослел: все продолжаю иногда улыбаться присланным мне смайлам, представляя отправителя с глазами разного размера или дурацкой улыбкой на все лицо. Но не все так плохо, ведь с другой стороны я стал разработчиком и специалистом в анализе данных и машинном обучении! И вот, в прошлом году, мое внимание привлекла относительно новая, но интересная и будоражащая воображение технология глубокого обучения. Сотни умнейших ученых и крутейших инженеров планеты годами работали над его проблемами, и вот, наконец, обучать глубокие нейронные сети стало не сложнее "классических" методов, вроде обычных регрессий и деревянных ансамблей. И тут я вспомнил про смайлы!

Представьте, что чтобы отправить смайл, вы и вправду могли бы скорчить рожу, как бы было круто? Это отличное упражнение по глубокому обучению, решил я, и взялся за работу.

Глубокое обучение в гараже — Братство данных
Глубокое обучение в гараже — Две сети
Глубокое обучение в гараже — Возвращение смайлов
Хочу картинок!
Всего голосов 40: ↑32 и ↓8+24
Комментарии12

Microsoft выложила на Github инструментарий CNTK для глубинного обучения

Время на прочтение2 мин
Количество просмотров16K


Microsoft выложила в открытый доступ исходный код инструментов, которые используются в компании для ускорения разработок в области искусственного интеллекта: набор Computational Network Toolkit опубликован на Github.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии8

Конкурс GraphHPC-2016 на самую быструю реализацию параллельного алгоритма Community Detection

Время на прочтение1 мин
Количество просмотров5.8K


Совсем скоро, в рамках третьей научно-технической конференции GraphHPC-2016, стартует конкурс GraphHPC, посвященный проблемам параллельной обработки больших графов с использованием суперкомьютеров. В этот раз участникам предстоит найти самую быструю реализацию задачи Community Detection (поиск сообществ) в неориентированном графе с весами.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии4