tgindex

C++ and other lectures

описание

Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir Boosty автора: https://boosty.to/cpp_lects_rus

9 738
подписчиков

Лучшие посты

за три месяца
  • 23 мая13,5 тыс просмотров84 реакций49 пересылок

    Выложил лекцию по GPGPU и SYCL на английском языке. https://youtu.be/Ebj21eXDRDY В этой лекции мы обсудим, почему модель программирования для графики и гетерогенных вычислений исторически отличается от обычного C++. Начнём с классических шейдерных языков, stateful memory, binding tables и адресных пространств, а затем перейдём к OpenCL и проблемам separate-source compute API. После этого разберём основы SYCL как примера single-source подхода к гетерогенному программированию, познакомимся с устройствами и очередями, а также с моделью исполнения SIMT. На примерах сложения векторов и перемножения матриц посмотрим, как часть работы отправляется на устройство и как SYCL описывает зависимости между вычислениями. Основная часть лекции посвящена памяти и синхронизации. Мы постепенно оптимизируем перемножение матриц и разбираем, как на производительность влияют разные виды памяти, tiled execution, барьеры и specialization constants. Затем обсудим гистограмму как пример конкурентного доступа к данным и поговорим об атомиках в GPU API. В финале вернёмся к C++ и обсудим природу указателей, а также generic address space в SYCL. На протяжении всей лекции нас будет сопровождать большое количество замеров производительности. Timeline. 00:00 Введение. Гетерогенные вычисления и GPU как execution model. 03:50 Память в классических шейдерных языках на примере GLSL: stateful и stateless pointers. 10:35 Первые compute API с раздельными исходниками на примере OpenCL. Проблема небезопасности типов в API. 15:40 На пути к единому compute API: как расширять C++ для гетерогенного программирования? 19:34 Основы SYCL: очереди, command groups, iteration space и vector addition. 29:15 Перемножение матриц -- основная задача GPGPU. 35:28 Более интересное управление памятью: shared memory, device memory и снова аллокаторы. 40:25 Продолжаем умножать матрицы: приватная память, oneMKL и первые замеры. 45:15 Локальная память и барьеры. Инверсия параллелизма внутри рабочей группы. 52:52 Улучшаем перемножение матриц: tiled multiplication, specialization constants и ещё немного замеров. 59:52 Конкурентный доступ к данным: гистограмма, атомики и memory model в GPU API. 01:09:53 Обсуждение природы указателей, generic address space в SYCL, hierarchical parallelism и завершение лекции. #cpp_postgraduate

  • 20 июн.11,8 тыс просмотров77 реакций33 пересылок

    Выложил лекцию по llvm-snippy. Настало время рассказать о моём лучшем проекте на моём канале. Английская версия: https://youtu.be/gomtQMGOFF8 Русская версия и качество не хуже: https://rutube.ru/video/18e1a8bfca1d9e2979d8b8a631e68207 Документация: https://llvm-snippy.github.io/llvm-snippy #snippy

  • 5 июл.11,6 тыс просмотров85 реакций37 пересылок

    Выложил лекцию Анастасии Черниковой о практическом внедрении llvm-snippy в верификацию аппаратуры на примере открытого RISC-V ядра Ibex. https://youtu.be/fSsq5mm3I40 Эта лекция -- настоящее путешествие по применению llvm-snippy в живой DV-инфраструктуре. Она затрагивает вопросы: как встроиться в существующий маршрут с riscv-dv, как написать хороший враппер и как доработать загрузчик и обработчики прерываний. Всё изложение построено вокруг поэтапной доработки сценариев генерации ради достижения функционального покрытия. Лекцию можно смотреть и отдельно от первой части: весь необходимый контекст даётся по ходу. Но вместе они хорошо показывают две стороны llvm-snippy: внутреннее устройство инструмента и его практическое применение в реальной задаче верификации. Русскоязычный вариант: https://rutube.ru/video/27414410f66e3d36e4733c9390062304 #snippy

  • 30 мая10,8 тыс просмотров86 реакций36 пересылок

    Выложил лекцию по std::execution на английском языке. Это последняя, 28-я лекция англоязычного магистерского курса. https://youtu.be/ZMcUTZppCAw Финальная лекция магистерского курса по C++ посвящена std::execution -- новой модели исполнения, которая входит в C++26. Мы начнём с давно известных механизмов: параллельных алгоритмов стандартной библиотеки, ручного запуска потоков и std::async. На примере параллельного reduce посмотрим, почему этих средств быстро становится недостаточно, если хочется не просто запустить несколько потоков, но также аккуратно описывать и комбинировать вычисления. После этого перейдём к senders/receivers: разберём, что такое scheduler, sender, receiver и operation state, как работают адапторы и как вычисление может переходить между разными execution resources. Свяжем эту тему с миром GPGPU через bulk-вычисления, посмотрим на рекурсивное порождение асинхронных задач через execution scopes и обсудим разные варианты завершения вычислений. В конце поговорим о связи std::execution с корутинами, отмене задач через environment и ещё раз соберём общую картину: как C++26 предлагает описывать асинхронное и параллельное исполнение без ручного управления потоками. Timeline 00:00 Введение. Параллельные алгоритмы в стандартной библиотеке. 03:30 Пишем собственный параллельный reduce. 10:05 std::async и его особенности. Замеры производительности. 16:50 Единая абстракция исполнения. Основы std::execution в C++26. 26:59 Концепт sender и адапторы. 35:00 Монадическая природа вычислений и let_value. 40:16 Адаптор bulk: снова заходим в мир GPGPU. 46:05 Параллельный reduce с использованием std::execution. 49:40 Execution scopes: динамическое создание задач. Параллельная сортировка. 54:41 Каналы в sender. Поведение upon_error и upon_stopped. Сигнатуры завершения. 01:02:19 Проверка completion signatures: упражнение в метапрограммировании и рефлексии. 01:06:50 Связь сендеров с корутинами: execution::task. 01:14:40 Снова многопоточная подписка и отмена задач. 01:18:47 Основные концепции ещё раз, список литературы и завершение. #cpp_postgraduate

  • 13 июн.10,6 тыс просмотров85 реакций31 пересылок

    Всем привет. Выложил главы 2.1 и 2.2 моей книги про C++ https://boosty.to/cpp_lects_rus/posts/26f430cd-22b9-4d79-9a00-97a0ade31fb5 Также обновил посты с предыдущими главами. Подписчики и те, кто уже купил книгу, могут бесплатно скачать апдейт и я рекомендую это сделать, там есть изменения. https://boosty.to/cpp_lects_rus/posts/eeee2a76-c1be-46e5-a248-c8c1eb62fae8 https://boosty.to/cpp_lects_rus/posts/5029d95f-831c-4262-9002-19ce8ea5208a Спасибо всем моим подписчикам на boosty за поддержку которая вдохновляет меня работать над этой книгой и подписчикам уровня principal и выше за участие в ревью. Если вы ещё не подписались, рассмотрите возможность это сделать. Ну и конечно буду рад отзывам комментариям и предложениям и на boosty и здесь в комментариях к посту. #cppbook #boosty

  • 27 июн.10,6 тыс просмотров70 реакций9 пересылок

    У llvm-snippy теперь есть DOI. Мы добавили в репозиторий citation metadata и заархивировали проект на Zenodo: https://doi.org/10.5281/zenodo.20969925 Если вы используете llvm-snippy в статьях, отчётах, диссертациях, прототипах, исследовательских проектах или просто в воспроизводимых экспериментах, пожалуйста, ссылайтесь на него. Это важно не только как формальная благодарность авторам. Для нас, как команды разработки, ссылки -- это способ понять, где и как инструмент реально используется. Так мы сможем находить ваши работы, смотреть на новые сценарии применения, оценивать результаты и, возможно, что-то забирать обратно в развитие проекта. Репозиторий: https://github.com/LLVM-Snippy/llvm-snippy Документация: https://llvm-snippy.github.io/llvm-snippy #snippy #official

  • 27 мая10,4 тыс просмотров47 реакций8 пересылок

    В этом июле где то в 10-х числах у меня есть шанс побывать на Дальнем Востоке (Владивосток, возможно Находка). Просьба местных обозначиться в чате или у меня в лс и сказать (1) есть ли заинтересованность, (2) когда и где лучше устроить встречу с читателями и (3) можете ли вы помочь с организацией. #author_event

  • 6 июн.10,4 тыс просмотров80 реакций54 пересылок

    Выложил лекцию по проблеме рекламации памяти, прочитанную в институте iSpring город Йошкар-Ола (на русском языке). Youtube: https://youtu.be/13b5hHwRvVk Rutube: https://rutube.ru/video/596ab835ce4cbb1ef4154bc43da58397/ Большое спасибо Алексею Малову (кстати у него есть канал https://youtube.com/@vividbw) и институту iSpring за приглашение, съёмку и монтаж видео. 00:00 Начало. Пример, который мы будем использовать всю лекцию. 03:56 Потоки и гонка за данные. 09:35 Mutex или простота хуже воровства. 12:12 RAII обёртки над mutex. 19:23 Мьютекс это очередь. Концепция read/write lock. 25:51 Сеттинг который мы будем использовать в лекции и первые замеры. 29:14 Убираем в целом блокировки. CAS-циклы. 34:45 Happens before, барьеры и модели памяти. 42:50 Проблема рекламации. 47:30 Атомарный разделяемый указатель и новые замеры. 52:05 C++26: решение проблемы рекламации в стиле RCU и ещё замеры. 01:01:35 C++26: решение проблемы рекламации через Hazard Pointers и ещё замеры. 01:07:55 Список литературы и вопросы.

  • 16 июл.10,4 тыс просмотров122 реакций48 пересылок

    Выложили моё видео на C++ Russia 2026, посвящённое выводу типов, его тонкой связи с перегрузкой и некоторым моим мечтам о языке. https://youtu.be/ebyXav1JAEQ?is=rAumvFRI4sFTRFPQ 00:00 Intro: немного болтовни 03:20 Начало. Напоминаю про семантические процессы 06:10 Мечта про инференс в стиле Хиндли-Милнера и как перегрузка ломает унификацию. 11:58 Почему мы любим перегрузку и как мы пишем множества перегрузки? 16:54 Сложность разрешения перегрузки: частичный порядок. 24:28 Перегрузка связана с выводом типов. Правила одношаговой унификации (дедукции) типов. 29:24 Немного про CTAD и пара безумных примеров. 35:28 Мечта про вывод по всем путям. Комбинаторные взырывы и non-deduced context. 38:35 Мечта про "Семантически неограниченный C++". 42:04 Раскрытие секрета почему у нас всё так, как оно есть. И дальше вопросы. Слайды: https://sourceforge.net/projects/cpp-lects-rus/files/conference-talks/deduction.pdf/download #conference

  • 12 июн.10,2 тыс просмотров286 реакций313 пересылок

    Немного подзамочного контента для моих уважаемых подписчиков. Ни для кого не секрет, что мой магистерский курс этого года я записывал на английском языке. Меньше людей знает, что исходно он читался на русском языке, на английский я (нейронкой) до лекции переводил только слайды. Далее я брал другую нейронку, распознавал свой голос с записи лекции на русском, грузил вместе со слайдами в третью нейронку и просил сделать мне подстрочник на английском и с этого подстрочника на английском уже и читал. И, конечно, я просил нейросеть убрать из этого подстрочника все шутейки, хиханьки, хаханьки, общение с аудиторией и всё остальное. В процессе ещё и правил все ошибки, которые находили на лекциях. Поэтому мой магистерский на английском немного высушен. Чисто для моей аудитории, готовой, прямо скажем, на многое, выкладываю ссылки на магистерский курс этого года на русском. Предупреждаю: это очень фанатский контент. Не надо даже пробовать его потреблять, если вы привыкли к той лакированной подаче, которую я считаю нормой для своего ютуба. Это вторая часть выкладки. Have fun. Лекции 1-14: https://t.me/cpp_lects_rus/333 Лекция 15. Аллокаторы, часть 1 Лекция 16. Аллокаторы, часть 2 Лекция 17. Умные указатели Лекция 18. Полиморфизм Лекция 19. Потоки, часть 1 Лекция 20. Потоки, часть 2 Лекция 21. Очереди Лекция 22. Атомики, часть 1 Лекция 23. Атомики, часть 2 Лекция 24. Атомики, часть 3 Лекция 25. Корутины, часть 1 Лекция 26. Корутины, часть 2 Лекция 27. SYCL и GPGPU Лекция 28. Execution Да, все ссылки на rutube, я стримил туда. #cpp_postgraduate

  • 19 июн.9 665 просмотров52 реакций19 пересылок

    🔔 Встреча с Константином Владимировым — автором блога @cpp_lects_rus Друзья, у нас отличные новости! 12 июля в 16:00 состоится встреча с Константином Владимировым — преподавателем МФТИ, автором книги «Оптимизирующие компиляторы. Структура и алгоритмы» и создателем популярного Telegram-канала «C++ and other lectures». Константин более 15 лет работает в области компиляторных технологий, возглавлял рабочую группу по разработке компилятора для Intel, а сейчас занимается компилятором для RISC-V в компании Syntacore. На его YouTube-канале — сотни лекций и докладов по C++, а сам блог @cpp_lects_rus собрал уже тысячи подписчиков. На встрече вы сможете задать вопросы, обсудить актуальные темы разработки и узнать много нового из первых рук. 🗓 Когда: 12 июля в 16:00 📍 Где: Кампус ДВФУ, Корпус D, 7 уровень, ауд. D738 Для участия обязательна предварительная регистрация: https://forms.yandex.ru/cloud/6a3511c79029026df82c8c4d ✅Организатор площадки: департамент математического и компьютерного моделирования ДВФУ ❓По оргвопросам можно обращаться к директору департамента математического и компьютерного моделирования ДВФУ Андрею Сущенко @AndreiSushchenko

  • 24 июл.9 042 просмотров112 реакций24 пересылок

    К слову о разговорных жанрах. Выложили интервью со мной на C++ Russia. Вроде неплохо получилось. https://youtu.be/jeX96GPYSlI?is=kwLq3K1Qtvy64oE1 #conference

  • 22 июл.8 532 просмотров54 реакций6 пересылок

    Всем привет. Отчётный стрим на boosty проведу в воскресенье, 26 июля в 20 по Москве. https://boosty.to/cpp_lects_rus Уровень доступа: студент и выше. Обсудим прогресс по книге, прошедшую конференцию C++ Russia, предстоящую Zero Cost Conf и многое другое. #boosty

  • 19 июн.8 127 просмотров28 реакций5 пересылок

    Встреча во Владивостоке пройдет 12 июля на кампусе ДВФУ. Посетить может кто угодно не только студенты. Регистрация открыта ))

  • 15 июл.7 691 просмотров529 реакций28 пересылок

    Сделал свой канал в Max публичным. Теперь буду туда всё дублировать: https://max.ru/channel_cpp_lects_rus И появились комментарии. #official

  • 1 авг.6 901 просмотров173 реакций28 пересылок

    без подписи

  • 31 июл.6 644 просмотров42 реакций30 пересылок

    И снова пятничный зачилл. Подумайте вот о таком коде. Сначала не открывая годболт. Что скажете? struct T { const int &p; }; void foo() { T t{0}; } // ??? void bar() { T t(0); } // ??? Теперь откройте ссылку и сверьте ощущения. https://godbolt.org/z/6rfGzx991 Кто прав — gcc или clang? Или... оба? ))) Ссылки на стандарт обязательны. За нейронку — штрафные баллы )) Пример восхитителен не глубокими причинами в стандарте, а тем насколько всё тупо. В общем смешной кейс на пятничный вечер. #questions

  • 1 авг.6 363 просмотров35 реакций7 пересылок

    Выступил на C++ ZCC. Видео выложу по мере появления. А пока мне тут скинули бинго по моим докладам на конференциях. Не знаю только при чем тут userver. #official

  • 13 авг.3 585 просмотров66 реакций62 пересылок

    Выложили наш с Лизой доклад на ZCC. Спасибо организаторам за оперативность. https://youtu.be/ohYtMHBXLvM?is=lwvD3swa1fLQOPff 00:00 Начало и немного о мире стабильного ABI: немного C и ассемблера 10:35 Про ABI в C++ и генерализованную перегрузку сущностей 16:02 Появление Лизы и много компиляторной магии 35:20 Возвращение меня и история про static chain register 40:10 Ответы на вопросы. #conference