Привет!
Сегодня мы затрагиваем актуальнейшую тему — Python для работы с GPU. Автор рассматривает пример, тривиальный в своей монструозности, и демонстрирует решение, сопровождая его обширными листингами. Приятного чтения!
Привет!
Сегодня мы затрагиваем актуальнейшую тему — Python для работы с GPU. Автор рассматривает пример, тривиальный в своей монструозности, и демонстрирует решение, сопровождая его обширными листингами. Приятного чтения!
Всем давно известно, что на видеокартах можно не только в игрушки играть, но и выполнять вещи, никак не связанные с играми, например, нейронную сеть обучить, криптовалюту помайнить или же научные расчеты выполнить. Как так получилось, можно прочитать тут, а я хотел затронуть тему того, почему GPU может быть вообще интересен рядовому программисту (не связанному с GameDev), как подступиться к разработке на GPU, не тратя на это много времени, принять решение, нужно ли вообще в эту сторону смотреть, и «прикинуть на пальцах», какой профит можно получить.


Я выложил на Github новый проект A Simple GPU Hash Table.
Это простая хэш-таблица для GPU, способная обрабатывать в секунду сотни миллионов вставок. На моём ноутбуке с NVIDIA GTX 1060 код вставляет 64 миллиона случайно сгенерированных пар ключ-значение примерно за 210 мс и удаляет 32 миллиона пар примерно за 64 мс.
То есть скорость на ноутбуке составляет примерно 300 млн вставок/сек и 500 млн удалений/сек.
Таблица написана на CUDA, хотя ту же методику можно применить к HLSL или GLSL. У реализации есть несколько ограничений, обеспечивающих высокую производительность на видеокарте:
Для ключей и значений нужно зарезервировать простой разграничивающий маркер (в приведённом коде это 0xffffffff).
Читать полностью »
Всем доброго времени суток. На хабре (да и вообще в интернете) уже не мало статей о работе с OpenCV на Go.
Готовый код — это конечно интересно, а более подробную информацию об установке драйверов приходится собирать по кусочкам — постараюсь объединить все нужные телодвижения в одну статью.

У меня имеется ноутбук с Ubuntu 18.04 на борту,
Nvidia и Intel пытаются превзойти друг друга, а я постараюсь одновременно использовать все преимущества OpenVino и Cuda.
Сразу предупреждаю, для использования Cuda нужно минимально Compute capability (version) 5.3, посмотреть для своей видеокарты можно тут

Перед тобой снова задача детектирования объектов. Приоритет — скорость работы при приемлемой точности. Берешь архитектуру YOLOv3 и дообучаешь. Точность(mAp75) больше 0.95. Но скорость прогона всё еще низкая. Черт.
Сегодня обойдём стороной квантизацию. А под катом рассмотрим Model Pruning — обрезание избыточных частей сети для ускорения Inference без потери точности. Наглядно — откуда, сколько и как можно вырезать. Разберем, как сделать это вручную и где можно автоматизировать. В конце — репозиторий на keras.

По прогнозам аналитиков, рынок дата-центров в ближайшие годы будет расти на 38% в год и за пять лет вырастет до $35 млрд, а самая ресурсоёмкая ниша (по интенсивности вычислений) — глубокое обучение, нейросети и задачи AI.
Конечно, Intel не собирается равнодушно смотреть, как Nvidia (и AMD, в меньшей степени) со своими GPU захватывают этот рынок, включая самый быстрорастущий сектор. На прошлой неделе гигант микроэлектронной промышленности сделал сразу несколько громких анонсов:
Скачать файл с кодом и данные можно в оригинале поста в моем блоге
Картинка к вебинару и посту взята не просто так: в определенном смысле символьное ядро Wolfram Language можно сравнить с Таносом — если бы его мощь была бы направлена в правильное русло, он мог бы стать самым мощным и полезным «добряком». Так же и с символьным ядром Wolfram — его чудовищную мощь нужно правильно использовать, а если это делать не так, оно может стать настоящим «злом», замедляющим все очень сильно. Начинающие разработчики не знают многих важнейших парадигм, идей и принципов языка Wolfram Language, пишут код, который на самом деле дико неэффективен и после этого разочаровываются, хотя тут нет вины Wolfram Language. Эту ситуацию призвана исправить эта статья.
Мне довелось работать с Wolfram Language начиная с (уже довольно далекого) 2005 года (тогда еще была версия Mathematica 5.2, сейчас уже 12-я). За эти почти 15 лет произошло очень много: добавились тысячи новых встроенных функций и областей, в которых они работают (машинное обучение, точная геометрия, работа с аудио, работа в вебе, облачные возможности, глубокая поддержка единиц измерения, интеграция с базами данных Wolfram|Alpha, географические вычисления, поддержка работы с CUDA, Python, распараллеливание операций и многое многое другое), появились новые сервисы — облако Wolfram Cloud, широко известная система вычислительных значeний Wolfram|Alpha, репозиторий функций, репозиторий нейросетей и пр.
Читать полностью »
Привет!
У нас в предзаказе появилась долгожданная книга о библиотеке PyTorch.

Поскольку весь необходимый базовый материал о PyTorch вы узнаете из этой книги, мы напоминаем о пользе процесса под названием «grokking» или «углубленное постижение» той темы, которую вы хотите усвоить. В сегодняшней публикации мы расскажем, как Кай Арулкумаран (Kai Arulkumaran) грокнул PyTorch (без картинок). Добро пожаловать под кат.
Читать полностью »
Здравствуй!
В 2012 году я написал пост о своем увлечении — Космики: моделирование эволюции многоклеточных организмов
С того момента прошло без малого 7 лет, в течение которых я работал над развитием этого проекта. Сегодня я хочу рассказать немного о том, что научился делать, и как планирую развивать проект дальше.
Читать полностью »
В данной статье речь пойдет о сборке и установке OpenCV 4 из исходных файлов с дополнительными модулями CUDA 10 на ОС Windows.
Я постарался включить сюда все тонкости и нюансы, с которыми можно столкнуться в ходе установки, и про которые не написано в официальном мануале.

Читать полностью »