Всем давно известно, что на видеокартах можно не только в игрушки играть, но и выполнять вещи, никак не связанные с играми, например, нейронную сеть обучить, криптовалюту помайнить или же научные расчеты выполнить. Как так получилось, можно прочитать тут, а я хотел затронуть тему того, почему GPU может быть вообще интересен рядовому программисту (не связанному с GameDev), как подступиться к разработке на GPU, не тратя на это много времени, принять решение, нужно ли вообще в эту сторону смотреть, и «прикинуть на пальцах», какой профит можно получить.
Рубрика «CUDA» - 2
Вычисления на GPU – зачем, когда и как. Плюс немного тестов
2020-04-23 в 12:00, admin, рубрики: cpu, CUDA, gpgpu, GPU вычисления, Nvidia, opencl, Алгоритмы, Блог компании Технологический Центр Дойче Банка, Видеокарты, высокая производительность, производительность, сортировкаПростая хэш-таблица для GPU
2020-03-17 в 10:44, admin, рубрики: CUDA, gpu, hash table, Алгоритмы, Блог компании Mail.Ru Group, Видеокарты, высокая производительность, никто не читает теги, хранение данныхЯ выложил на Github новый проект A Simple GPU Hash Table.
Это простая хэш-таблица для GPU, способная обрабатывать в секунду сотни миллионов вставок. На моём ноутбуке с NVIDIA GTX 1060 код вставляет 64 миллиона случайно сгенерированных пар ключ-значение примерно за 210 мс и удаляет 32 миллиона пар примерно за 64 мс.
То есть скорость на ноутбуке составляет примерно 300 млн вставок/сек и 500 млн удалений/сек.
Таблица написана на CUDA, хотя ту же методику можно применить к HLSL или GLSL. У реализации есть несколько ограничений, обеспечивающих высокую производительность на видеокарте:
- Обрабатываются только 32-битные ключи и такие же значения.
- Хэш-таблица имеет фиксированный размер.
- И этот размер должен быть равен двум в степени.
Для ключей и значений нужно зарезервировать простой разграничивающий маркер (в приведённом коде это 0xffffffff).
Читать полностью »
GoLang и OpenCV (OpenVino && Cuda)
2020-02-07 в 12:18, admin, рубрики: CUDA, Go, gocv, golang, intel, Nvidia, OpenVINO, Работа с видеоВсем доброго времени суток. На хабре (да и вообще в интернете) уже не мало статей о работе с OpenCV на Go.
Готовый код — это конечно интересно, а более подробную информацию об установке драйверов приходится собирать по кусочкам — постараюсь объединить все нужные телодвижения в одну статью.
У меня имеется ноутбук с Ubuntu 18.04 на борту,
- CPU: intel
- GPU: Intel/Nvidia
Nvidia и Intel пытаются превзойти друг друга, а я постараюсь одновременно использовать все преимущества OpenVino и Cuda.
Сразу предупреждаю, для использования Cuda нужно минимально Compute capability (version) 5.3, посмотреть для своей видеокарты можно тут
Джедайская техника уменьшения сверточных сетей — pruning
2019-12-27 в 7:10, admin, рубрики: cnn, convolutional neural network, CUDA, deep learning, eco, gpu, keras, machine learning, neural networks, Nvidia, optimization, pruning, python, speedup, TensorFlow, tensorrt, yolo, высокая производительность, искусственный интеллект, Исследования и прогнозы в IT, машинное обучение
Перед тобой снова задача детектирования объектов. Приоритет — скорость работы при приемлемой точности. Берешь архитектуру YOLOv3 и дообучаешь. Точность(mAp75) больше 0.95. Но скорость прогона всё еще низкая. Черт.
Сегодня обойдём стороной квантизацию. А под катом рассмотрим Model Pruning — обрезание избыточных частей сети для ускорения Inference без потери точности. Наглядно — откуда, сколько и как можно вырезать. Разберем, как сделать это вручную и где можно автоматизировать. В конце — репозиторий на keras.
Посторонись, CUDA — Intel анонсировала 7-нанометровый GPU для дата-центров
2019-11-18 в 15:43, admin, рубрики: amd, api, CUDA, DevCloud, DPC++, gpgpu, intel, miran, Nvidia, oneapi, Ponte Vecchio, Sapphire Rapids, Xe, Xeon Scalable, Блог компании Дата-центр «Миран», высокая производительность, дата-центр "Миран", Производство и разработка электроники
По прогнозам аналитиков, рынок дата-центров в ближайшие годы будет расти на 38% в год и за пять лет вырастет до $35 млрд, а самая ресурсоёмкая ниша (по интенсивности вычислений) — глубокое обучение, нейросети и задачи AI.
Конечно, Intel не собирается равнодушно смотреть, как Nvidia (и AMD, в меньшей степени) со своими GPU захватывают этот рынок, включая самый быстрорастущий сектор. На прошлой неделе гигант микроэлектронной промышленности сделал сразу несколько громких анонсов:
- процессоры для нейросетей Nervana NNP-T1000 и NNP-I1000 (NNP: neural network processors), а также чип Movidius VPU;
- 10-нанометровые процессоры Xeon Scalable (кодовое название Sapphire Rapids);
- унифицированные программные интерфейсы oneAPI (для CPU, GPU, FPGA) — конкурента Nvidia CUDA;
- 7-нанометровый GPU для дата-центров с кодовым названием Ponte Vecchio на новой архитектуре Xe.
Краеугольные камни уничтожения медленного кода в Wolfram Language: ускоряем код в десятки, сотни и тысячи раз
2019-11-08 в 15:01, admin, рубрики: CUDA, opencl, Wolfram, wolfram language, wolfram mathematica, абсолютная точность, Алгоритмы, ассоциативные массивы, Блог компании Wolfram Research, векторизация, вычисления, дебаг, компиляция, компиляция в c, машинная точность, мемоизация, оптимизация кода, отладка, плавающая запятая, правила замены, Программирование, распараллеливание, символьные вычисления, списки, точность, ускорение кода, функциональное программирование, хеш-таблицы, хэширование, шаблоныСкачать файл с кодом и данные можно в оригинале поста в моем блоге
Картинка к вебинару и посту взята не просто так: в определенном смысле символьное ядро 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
2019-10-12 в 10:49, admin, рубрики: CUDA, gpu, python, pytorch, Алгоритмы, Блог компании Издательский дом «Питер», книги, машинное обучение, Профессиональная литератураПривет!
У нас в предзаказе появилась долгожданная книга о библиотеке PyTorch.
Поскольку весь необходимый базовый материал о PyTorch вы узнаете из этой книги, мы напоминаем о пользе процесса под названием «grokking» или «углубленное постижение» той темы, которую вы хотите усвоить. В сегодняшней публикации мы расскажем, как Кай Арулкумаран (Kai Arulkumaran) грокнул PyTorch (без картинок). Добро пожаловать под кат.
Читать полностью »
Космики: моделирование эволюции многоклеточных организмов. Отчет за 7 лет
2019-09-24 в 10:22, admin, рубрики: CUDA, gpgpu, javascript, particle system, машинное обучение, моделирование, роевой интеллект, эволюцияЗдравствуй!
В 2012 году я написал пост о своем увлечении — Космики: моделирование эволюции многоклеточных организмов
С того момента прошло без малого 7 лет, в течение которых я работал над развитием этого проекта. Сегодня я хочу рассказать немного о том, что научился делать, и как планирую развивать проект дальше.
Читать полностью »
Установка OpenCV + CUDA на Windows
2019-08-17 в 9:31, admin, рубрики: c++, CUDA, gpgpu, opencv, python, windows, машинное обучение, обработка изображений, сборка, установкаВведение
В данной статье речь пойдет о сборке и установке OpenCV 4 из исходных файлов с дополнительными модулями CUDA 10 на ОС Windows.
Я постарался включить сюда все тонкости и нюансы, с которыми можно столкнуться в ходе установки, и про которые не написано в официальном мануале.
Читать полностью »
Memento Mori или вычисляем «магические квадраты» 5×5
2019-08-09 в 17:54, admin, рубрики: c++, CUDA, Занимательные задачки, магический квадрат, Научно-популярное, ненормальное программирование, ПрограммированиеПримерно год назад я рассматривал тему использования GPU на примере вычисления «магических квадратов» 4х4. Там все довольно-таки очевидно, этих квадратов всего 7040, и вычислить их можно практически на чем угодно, хоть на Ардуине (но это не точно). Аналогичным способом я решил найти все квадраты 5х5, и результаты оказались весьма интересными, забегая вперед, скажу сразу, найти их я так и не смог.
Если кому интересно, подробности решения пятничной «несложной задачи» под катом.