Computer Science клуб вот уже 10 лет проводит открытые курсы по компьютерным наукам. Большинство этих лекций стараниями Лекториума записаны на видео и лежат в открытом доступе. В этом семестре выложены уже три новых курса, которые до этого не читались в клубе: «Программирование с зависимыми типами на языке Idris», «Вычисления на GPU. Основные подходы, архитектура, оптимизации», «Методы и системы обработки больших данных».
Читать полностью »
Рубрика «CUDA» - 4
Курсы Computer Science клуба, весна 2017
2017-04-10 в 12:21, admin, рубрики: big data, CUDA, functional programming, gpgpu, gpu, gpu programming, idris, spark, Блог компании СПБАУ, Большие данные, зависимые типы, функциональное программированиеGoogle выпустила TensorFlow 1.0
2017-02-16 в 7:53, admin, рубрики: CUDA, Google API, Java API, numpy, Python API, TensorFlow, математика, машинное обучение, многомерное пространство, нейросети, нейросеть Inception, разработка мобильных приложений, тензоры
TensorFlow 1.0 с моделью нейросети нового поколения Inception поддерживает аппаратное ускорение на DSP Hexagon в мобильных процессорах Qualcomm Snapdradon 820. Скорость работы приложений вроде Prism и программ машинного зрения увеличится в 8 и более раз, а энергопотребление снизится в 4 раза. Фильтры от нейросетей можно будет накладывать на видео почти в реальном времени
На первой конференции для разработчиков TensorFlow Dev Summit компания Google объявила о выходе мажорного релиза библиотеки TensorFlow 1.0, обратно несовместимого с предыдущими версиями. Это значит, что программы, работавшие на версиях TensorFlow 0.n, могут не работать на версии TensorFlow 1.0. Разработчики из Google говорят, что изменения в API были необходимы «для обеспечения внутренне согласованных программных интерфейсов», и больше такого не повторится: ломающих обратную совместимость изменений в будущих версиях 1.x не планируется. Сейчас разработчикам рекомендуется изучить руководство по миграции и использовать скрипт для преобразования.
TensorFlow — свободная программная библиотека для машинного обучения в применении к различным видам задач на восприятие и понимание языка. В данный момент она используется в научно-исследовательской работе и в десятках коммерческих продуктов Google, в том числе в Google Search, Gmail, Photos, Youtube, Translate, Assistant, а так же всевозможных системах распознавания, в том числе распознавания речи.
Читать полностью »
Многопоточная сказка о потерянном времени
2016-12-21 в 16:16, admin, рубрики: c++, CUDA, pgo, Алгоритмы, ненормальное программирование, параллельное программирование, С++В публикации «Сказка о потерянном времени» пользователь crea7or рассказал, как он опровергал Гипотезу Эйлера на современном CPU.
Мне же было интересно узнать как покажет себя GPU, и я сравнил однопоточный код с многопоточным для CPU и совсем многопоточным для GPU, с помощью архитектуры параллельных вычислений CUDA.
Читать полностью »
Сравнение производительности GPU-расчетов на Python и C
2016-12-11 в 8:05, admin, рубрики: C, CUDA, gpgpu, numba, pycuda, python, производительность
Python обладает рядом привлекательных преимуществ к которым относится простота реализации программных решений, наглядность и лаконичность кода, наличие большого числа библиотек и многочисленного активного комьюнити. В то же время, известная всем медлительность питона часто ограничивает его применимость для “тяжелых” вычислений. Для ряда задач можно добиться существенного ускорения расчетов путем использования технологии CUDA для параллельных вычислений на GPU. Цель этого небольшого исследования — анализ возможностей эффективного использования python для расчетов на GPU и сравнение производительности различных python-решений с реализацией на C.
Читать полностью »
Быстрее быстрого или глубокая оптимизация Медианной фильтрации для GPU Nvidia
2016-08-23 в 7:57, admin, рубрики: c++, CUDA, forgetful selection, gpgpu, GPU Pascal, Алгоритмы, медианный фильтр, обработка изображений, оптимизация программ, метки: медианный фильтрВведение
В предыдущем посте я постарался описать, как легко можно воспользоваться преимуществом 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 для одинарной точности на данное время являются самыми высокими из всех известных в мире.
Как мы сделали конвертер и плеер для CinemaDNG на CUDA
2016-08-04 в 12:45, admin, рубрики: Adobe Premiere Pro 2015, Apple ProRes, Avid DNxHD, BlackMagic DaVinci Resolve 12, BlackMagic URSA camera, CinemaDNG player 4K, CinemaDNG workflow, CUDA, CUDA J2K codec, dng post production, DNG processing, DNG viewer, DNxHR, Fast CinemaDNG Processor, footage Culling and Reviewing, freeware, gpgpu, GPU color correction, GPU debayer DFPD, GPU denoiser, GPU JPEG2000, GPU resize, GPU USM, Image Processing SDK on CUDA, intermediate editing codec, NVIDIA GPU, высокая производительность, дебайер MG, демозаик, конвертер и плеер CinemaDNG 4K, обработка изображений, отбраковка и сортировка DNG, параллельное программирование, разработка под windows, ресайз, шумодавНа Хабре у меня уже было две статьи (1 и 2), обе они касались реализации быстрого сжатия изображений по алгоритму JPEG на CUDA. Теперь я бы хотел рассказать о другой, гораздо более масштабной задаче — как мы сделали конвертер и видео плеер для серий DNG изображений на CUDA. При этом мы получили очень высокую скорость работы, потому что вся обработка исходных данных в формате DNG теперь выполняется на видеокарте NVIDIA.
Исходное изображение в формате DNG взято с сайта blackmagicdesign.com
Несмотря на то, что в мире уже есть очень большое количество конвертеров RAW, которые работают с форматом DNG, мы решили сделать ещё один, но очень быстрый, который можно было бы использовать в том числе для отбраковки и сортировки. Видео плееры DNG тоже есть, но обычно они работают с уменьшенным разрешением, поэтому просмотреть только что отснятый в формате DNG материал на полном разрешении — это проблема. С помощью нашего конвертера мы сделали попытку обработать картинки настолько быстро, чтобы уметь просматривать серии DNG изображений в реальном времени и при полном разрешении. Естественно, что кроме скорости необходимо было получить приемлемое качество обработки и шумоподавления, и мне кажется, что нам это удалось.
Читать полностью »
VIM: зачем, если есть IDE, и как?
2016-06-17 в 15:13, admin, рубрики: .ini, bash, C, css, CUDA, GAP, Go, html, IDE, latex, opencl, python, ruby, sage, vim, XML, yaml, Программирование, Разработка веб-сайтовСегодня вышел текст о том, как человек перешёл с Sublime на VIM. В комментариях, как обычно это бывает, появились сообщения в духе "Зачем мне тратить время на Vim, если есть IDE, где всё работает?" (люди даже статьи на эти темы пишут). Хотел внести свои пять копеек, но объём написанного плавно перевёл текст из разряда "комментарий" в разряд небольшой статьи.
В целом, всё, что ниже — это вкусовщина, конечно. Нравится вам ваша IDE (или ваш текущий инструмент), да и пожалуйста. Используйте для текущих задач то, чем вы владеете лучше всего, это аксиома эффективной работы. Но если у вас вдруг появилось немного времени на повышение вашей эффективности в целом, то попробую вас заинтересовать именно Vim'ом, сравнивая его с некой обобщенной IDE.
Быстрое кодирование видео в Linux c Nvidia NVENC с SDK 7.5 и ffmpeg 3.0.2 на Nvidia GTX 960-970-980
2016-05-24 в 19:36, admin, рубрики: avc, CUDA, Debian, ffmpeg, gpgpu, GTX960, H.264, H.265, HEVC, nvenc, nvenc sdk, nvresize, высокая производительность, системное администрирование, метки: nvenc, nvresize
Данная статья была написана по мотивам статьи Эффективное кодирование видео в 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.
Итак, начнем!
Читать полностью »
Нейросеть превращает каракули в художественные шедевры
2016-03-10 в 17:34, admin, рубрики: CUDA, Nvidia, open source, Демосцена, живопись, искусственный интеллект, нейросеть, синтез изображений
Программа Neural Doodle, сделанная на основе свёрточной нейросети, представляет собой скрипт doodle.py
, который генерирует изображения, принимая три-четыре картинки в качестве входных параметров. В том числе на вход подаётся простенький набросок (то что авторы называют «каракулями») и образец стиля с его наброском. Например, в случае с примером выше образцом стиля является такая картина Ренуара.
Читать полностью »
OpenCL в повседневных задачах
2015-12-24 в 12:18, admin, рубрики: CUDA, gpgpu, opencl, Блог компании AMD, Видеокарты, высокая производительность, Железо, общие вычисления на видеокартах, параллельные вычисления, суперкомпьютерыНедавно мы рассказывали про HSA и в ходе обсуждения преимуществ нового подхода к построению ПК затронули такую интересную тему, как GPGPU — вычисления общего назначения на графическом ускорителе. Сегодня видеоускорители AMD предоставляют доступ к своим ресурсам с помощью OpenCL — фреймворка, обеспечивающего сравнительно простое и понятное программированое высокопараллельной системы.
Сегодня технологии OpenCL поддерживаются всеми основными игроками на рынке: возможность предоставить программам доступ к «продвинутому» ускорению (к тому же бесплатная, т.к. OpenCL не подразумевает каких-либо отчислений и роялти) явно того стоит, а от универсальности таких API выигрывают все, кто реализует поддержку OpenCL в своих продуктах.
Подробнее о том, где сегодня можно встретить OpenCL в повседневной жизни, как он ускоряет обычный офисный софт и какие возможности открывает разработчикам сегодня и поговорим.
Читать полностью »