Майкл Вонг, Massive Parallel Dispatch for Heterogeneous Computing in C++ | CEE-SECR 2016 Майкл Вонг – CEE-SECR 2016
2019 | 2018 | 2017 | 2016 | 2015 | 2014 | 2013 | 2012 | 2011 | 2010 | 2009 | 2008 | 2007 | 2006 | 2005

Ключевые и приглашённые докладчики

Майкл Вонг

VP Research and Development, Codeplay Software


Майкл Вонг — вице-президент исследований и разработки в Codeplay Software, директор и вице-президент ISOCPP.org, старший член Комитета по стандартизации С++ с 15-летним опытом, вице-президент по языкам программирования в Совете стандартов Канады. Майкл также возглавляет представительство Канады в комитете по стандартам C++. В прошлом — генеральный директор OpenMP, а также старший технический архитектор по стратегиям компиляторов IBM.

Майкл возглавляет WG21 SG5 транзакционной памяти и развитие SG14 Разработки Игр / Low Latency / Financials, и является соавтором ряда фич C++ / OpenMP / Transactional Memory, включая: generalized attributes, user-defined literals, inheriting constructors, weakly ordered memory models, and explicit conversion operators. Майкл — автор ряда научных работ, книги по C++11, редактор технических спецификаций Concurrency и Transactional Memory.

Майкл — приглашенный и ключевой докладчик на многих конференциях, в университетах, компаниях, научно-исследовательских институтах, таких как: ACCU, C++Now, Meeting C++, ADC++, CASCON, Bloomberg, Activision/Blizzard, CERN.

 

Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автомобилей

В моей роли председателя группы SG14 комитета по стандартизации языка C++ я постоянно сталкиваюсь с требованием создания параллельной модели программирования для гетерогенных устройств – требования, исходящего от разработчиков компьютерных игр, систем финансового трейдинга и встраиваемых устройств. В поисках такой модели я изучил огромное количество стандартов – включая SYCL, HPX, Agency, HCC, OpenMP, OpenACC, OpenCL, C++ AMP, Halide, CUDA, Kokkos, Raja… и многие, многие другие. Задача усложняется тем, что вычислительные устройства отличаются огромным разнообразием – CPU, GPU, FPGA, нестандартные аппаратные системы для конкретных областей применения – и для всего этого разнообразия необходимо решение, позволяющее достичь как высокой производительности, так и низкого энергопотребления – то, чем славится современный C++. Развитие языка C++ стремится отвечать требованием пользователей, и в современных версиях стандарта C++ появляется всё больше и больше поддержки параллельного программирования и гетерогенности – причём как на уровне библиотеки, так и самого языка. В своём докладе я проведу сравнение некоторых из самых популярных моделей параллельного программирования, включая используемые ими модели памяти, передачи данных и абстракции вычислений.

Я расскажу о новых предложениях в области параллельных вычислений в языке C++ — некоторые из них включены в версию стандарта C++17, другие могут быть добавлены в C++20/23. Подробно остановлюсь на концепции “исполнителей” (executors), позволяющую унифицировать управление ресурсами и параллельным кодом. “Исполнители” демонстрируют, как гетерогенные вычисления могут быть поддержаны в будущих версиях C++. Один из стандартов, поддерживающих “исполнители” уже сегодня – Khronos SYCL и библиотека SYCL ParallelSTL. SYCL это система “строительных блоков” для C++ приложений; она служит “мостиком” между абстракциями С++ и аппаратными устройствами. Бесплатная версия SYCL выпущена под названием ComputeCPP Community Edition; с её помощью можно построить высокоуровневые абстракции для моделирования нейросетей, машинного зрения, а в итоге и полного управления беспилотными автомобилями.

В воскресенье состоится мастер класс, участники которого смогут сами написать код на SYCL и Parallel STL, а также больше узнать о параллельном программировании.

 

Мастер-класс: Гетерогенное программирование с использованием ComputeCPP, C++17 Parallel STL и C++ Concurrency

30 октября 2016

Мастер-класс читается на английском языке с переводом на русский
Требуется отдельная регистрация

Стандарты OpenCL™ и SYCL™, развиваемые консорциумом Khronos™ Group, позволяют выполнять программы, написанные на языках C и C++, на самых разнообразных гетерогенных системах, включая GPU, интегрированные CPU, DSP и даже FPGA. Подобные расширения языка обсуждаются для включения в стандарт C++; первый шаг, в виде технической спецификации C++17 Parallel and Concurrency, уже сделан. Пока что его применение ограничено лишь CPU. В будущем, основываясь на опыте использования SYCL и других высокоуровневых моделей, мы придём к созданию единого высокоуровневого стандарта параллельного программирования для таких прикладных областей как беспилотные автомобили, компьютерное зрение и нейросети.

SYCL уже сейчас позволяет запускать вычисления на гетерогенных устройствах и включает в себя реализацию C++17 ParallelSTL, дополняя её возможностями использования GPU и дополнительных CPU. На этом мастер-классе мы покажем, как писать параллельные программы на SYCL и использовать экспериментальную версию ParallelSTL.

Краткое содержание курса:

  • Мы начнём с простой программы (“hello world!”), в которой запускаются очереди в одной задаче и потоковом объекте, и на её примере покажем разницу между “обычным” С++, SYCL и OpenCL.
  • Далее расскажем об обмене данными между хостом и GPU с использованием буферов и аксессоров; о важности времени жизни и базовых параллельных конструкциях.
  • После чего перейдём к более продвинутым вещам, таким как Гауссово размытие для обработки изображений, позволяющую решать задачу распознавания пешеходов.
  • Затем продемонстрируем использование параллельных алгоритмов C++17 с помощью реализации ParallelSTL, входящей в SYCL, которая позволяет запускать код не только на CPU, но и на гетерогенных устройствах.

Кроме практической части, на мастер-классе будут прочитаны лекции о SYCL, OpenCL, а также новых возможностях, предлагаемых в спецификации C++ Parallelism and Concurrency, включая C++17 Parallel STL, C++11 async, фьючерсы (futures), атомики, программирование с передачей продолжений, барьеры, атомарно разделяемый _ptr, а также инструменты для параллельного программирования без использования семафоров.

От участников ожидается знание языка C++ и наличие ноутбука. Необходимое для работы программное обеспечение можно будет установить на месте с USB-накопителя. Мастер-класс может быть полезен и для начинающих разработчиков, но основной материал посвящён продвинутым методам параллельного программирования с использованием C++.

Gold

Технологический Центр Дойче БанкаJetBrainsSAPFirst Line Software

Silver

Dell Technologies

Embedded

Аурига

Sponsors

T-SystemsЛаборатория Касперского

Генеральные партнёры

РУССОФТАП КИТSECON

При содействии

Association for Computing MachineryACM Special Interest Group on Software Engineering

Технические партнёры

Хостинг-ЦентрVirtuozzoСофтИнвентСтудия „7пап“Print SalonГруппа МPrezent.ru

При поддержке

РАЭК

Организаторы

Software Russiai-Help
Поделиться:

Конференция окончена
Ждём вас на SECR 2017!

Размещение в гостинице, транспортное и экскурсионное обслуживание по специальным ценам.