Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автомобилей (Майкл Вонг, SECR-2016) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
{{VideoSection}}
{{vimeoembed|195093989|800|450}}
{{youtubelink|-4T8kGR_iaI}}
{{SlidesSection}}
[[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> -->
{{fblink|1835774170008929}}
<references/>
<!-- topub -->
[[Категория:SECR-2016]]
{{stats|disqus_comments=0|refresh_time=2018-05-15T17:19:41.796674|vimeo_comments=0|vimeo_plays=15|youtube_comments=0|youtube_plays=24}} |
Версия 08:20, 4 июня 2018
- Докладчик
- Майкл Вонг
В моей роли председателя группы 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:39 Comments:0