Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автомобилей (Майкл Вонг, SECR-2016) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
[[File:Massive Parallel Dispatch for Heterogeneous Computing in C++ for Self-Driving Cars (Michael Wong, SECR-2016).pdf|left|page=-|300px]] {{----}} {{LinksSection}} * {{ConferencePage|http://2016.secr.ru/program/invited-speakers/michael-wong}} <!-- <blockquote>[©]</blockquote> --> <references/> <!-- topub --> [[Категория:SECR-2016]] {{stats|youtube_plays=10|refresh_time=2017-067-13T03:03:2006T15:45:37.448907056000|vimeo_plays=7}} |
Версия 12:45, 6 июля 2017
- Докладчик
- Майкл Вонг
В моей роли председателя группы 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; с её помощью можно построить высокоуровневые абстракции для моделирования нейросетей, машинного зрения, а в итоге и полного управления беспилотными автомобилями.
Видео
Презентация
Примечания и ссылки
Plays:17
Comments:0