C++ and other lectures
8.46K subscribers
39 photos
2 files
210 links
Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir
Download Telegram
Опубликовали нашу с Ильёй Андреевым https://t.me/BruceGliff очередную статью. Её тематика хорошо продолжает тему прошлого поста (может мне для snippy и системной верификации завести тег?). Генератор llvm-snippy принципиально однопоточный, он никак не учитывает возможных эффектов многопоточного true sharing. А что если развить идею и из нескольких сниппетов, каждый из которых исполняется на отдельном ядре, сделать поверх некий граф возможных общих обращений в память, смоделировать мьютексы, смоделировать CAS-циклы и т.п. Возможно ли тогда по этому графу понять корректность многопоточного кода с учётом возможных переупорядочений операций и с учётом слабой модели памяти?

Нечто подобное делают давно известные литмус-тесты, но они маленькие и короткие. Можно ли как-то решить проблему комбинаторного взрыва при росте числа верифицируемых операций? Собственно об этом статья.

http://sitito.cs.msu.ru/index.php/SITITO/article/view/1068

Фактически, как вы догадываетесь, мы сделали LLVM-based инструмент, теория для которого изложена в этой статье. Сам инструмент пока в опен-сорсе не появился и в ближайшее время вряд ли мне удастся согласовать его появление, т.к. такого рода программы продаются и стоят дорого (см. например breker от brekersystems.com). Но в статье мы постарались достаточно подробно описать основные алгоритмы.

PDF надеюсь скоро доедет до сайта.

P. S. установочная статья по llvm-snippy тоже в процессе подготовки.

#publications
🔥60👍225🤮3🤔1😢1
Всем привет. Выложили по ссылке моё выступление на C++ Russia. Через годик откроют, а пока как водится эксклюзив для моих уважаемых подписчиков.

https://www.youtube.com/watch?v=kJ6RvI9A1bU

Сама конференция в этом году была довольно удачной организационно и мне очень понравилась аудитория, много с кем очень приятно было пообщаться в кулуарах. Правда, с моей точки зрения, программный комитет недоработал и в программу натащили неприлично много контента, не имеющего отношения к C++. И не просто не имеющего, а агрессивно не желающего иметь. Когда я в своё время ходил на эту же конференцию с докладом про GPU и SYCL, я, тем не менее, выделил минут десять тайминга на связь с эволюцией языка и всякие поклоны в сторону собственно C++. А тут люди просто приходили с докладами про работу с матрицами на фортране или там про ручную векторизацию на интринсиках, не упоминая C++ вообще.

Мой доклад в этом отношении возвысился этакой скалой традиционных ценностей. Он про язык и только про него. Это второй в серии моих семантических докладов. Рассказав год назад про синтаксис и семантику в целом, в этом году я ныряю в разрешение имён.

P. S. и к слову, меня включили в этом году в программу Zero Cost Conf, туда вход будет свободный.

#conference
👍12739🔥25👏2😍2🤝2🥰1👀1
Всем привет. Поступают вопросы что я намерен делать в связи с возможными блокировками. Что же, можно сказать, что я неплохо к ним подготовлен.

Во-первых, благодаря уважаемым добровольцам, я богато представлен на торрентах, например https://rutracker.org/forum/viewtopic.php?t=6188137 и мн. др.

Во-вторых, у меня есть мой собственный канал на rutube, даже верифицированный. Пока там только бакалаврский курс, но вообще дублировать туда всё подряд не так уж и сложно, подписывайтесь: https://rutube.ru/channel/10218561/

В-третьих, всё, что я недовыкладываю, то довыкладывают многочисленные уважаемые добровольцы, упомянутые мной выше и не только. Я сам иногда с интересом нахожу где меня в очередном месте довыложили.
Например магистерский курс на rutube, залитый внезапно не мной: https://rutube.ru/plst/214137/
А вот курс по языку C, тоже не мной залитый: https://rutube.ru/plst/371362/
И так далее, ищется это очень легко. Я никак не препятствую распространению своих видео кем угодно, даже приветствую.

С другой стороны, всем конечно удобнее ориентироваться на единый источник, которым является мой youtube-канал, чем собирать всё в интернете по крохам.

Поэтому я буду продолжать выкладки на свой youtube-канал. Но, пока ограничения/блокировки не будут сняты, я буду сопровождать каждое видео ссылкой в описании на какой-либо неблокируемый ресурс.

#official #torrent
248👍102🔥22🤝5👏3🥰2🫡2🤗1
Выложил с разрешения организаторов выступление на конференции Сбер 27 июня 2024 года. Доклад несложный и развлекательный, посвящён многогранности тех возможностей которые даёт LLVM. Мы начинаем с того, что это бэкенд компилятора. Далее оказывается, что LLVM как платформа может быть использован для многих интересных инструментов, имеющих к компилятору весьма мало отношения. Это и статический анализ (clang-tidy) и бенчмаркинг (llvm-exegesis) и генерация тестов (llvm-snippy). Мы поговорим как и за счёт чего всё это совмещается.

Для меня это был интересный опыт, т.к. я впервые пошёл не один, а взял с собой содокладчицу Анастасию Черникову @anastasiya_chernik0va. Настя училась у меня на 1 и 2 курсе и сейчас работает под моим руководством в качестве инженера-стажёра и как раз среди прочего занимается llvm-exegesis для RISC-V. Кроме того что Настя прекрасно пишет код, она также очень хочет больше выступать. Для неё это первое выступление, но, я думаю, вы её ещё много где увидите.

https://www.youtube.com/watch?v=5HKSeLSIya4

Патч с RISC-V бэкендом в exegesis: https://github.com/llvm/llvm-project/pull/89047

Альтернативная ссылка на VK Video, как и обещал, в описании.

#conference
🔥109👍40201👏1😁1🫡1
В связи с тем, что МФТИ-шные контесты по C для первого курса нестабильны, особенно летом, мой уважаемый подписчик Никита Мальцев https://t.me/hfhhdp перенёс coursework на Yandex contest:

https://contest.yandex.ru/contest/66459/enter

Я сегодня заслал несколько решений, работает как часы. Просьба протестировать, отписать ощущения и я тогда обновлю видео на канале альтернативной ссылкой в описании. Там пока не хватает ассемблера, но это наживное.

#c_graduate
88🔥44👍25🐳41
Выступил с ещё одним рассказом про генератор llvm-snippy, на этот раз на C++ Zero Cost Conf. В данном случае я чуть меньше рассказывал про его применение и чуть больше про внутренности, в частности про некоторые проблемы проектирования, которые мы вынуждены были решать.

https://youtu.be/A8FSh8eFj1w

Timeline
00:00 Вступление: открытая и расширяемая
04:55 Идея LLVM-based тестового генератора
09:20 Рантайм-полиморфизм в стиле LLVM
17:27 LLVM-snippy и его генплан
23:44 Появление generation requests и как всё запутывается
29:23 Изменяем проектирование через скрытый полиморфизм
36:18 Завершение и вопросы

В целом Zero Cost Conf мне показалась в этом году технически сильней и интересней, чем даже C++ Russia. К тому же они уже выложили некоторые другие доклады. Так что я тут сделаю также обзор того, что на мой взгляд было удачным и что нет. Но несколько позже.

UPD: мне обещали исходник видео для альтернативной выкладки на неблокируемые ресурсы, но пока он до меня не доехал. Как только будет, сделаю дополнение этого поста.

#conference
🔥67👍2511❤‍🔥31🫡1
Продолжаем тему Zero Cost Conference этого года (благо почти все видео уже выложены).

Прежде, чем я перейду к общему обзору, давайте немного поговорим про лучший доклад. Обычно, когда я выступаю на какой-то конференции, лучшим докладом там я считаю, конечно, свой. Так было на этой C++ Russia и много ещё где. Есть понятные исключения, когда я просто прихожу на огонёк поболтать про открытую и расширяемую и т.п. (кстати зовите), там, разумеется, я ни на что не претендую, я сейчас про содержательные доклады.

Итак я всегда иду с предположением что я лучший. Но, с другой стороны, мне всегда очень приятно ошибаться в этом предположении. И вот как раз на ZCC'24 был доклад, который я считаю несомненно лучшим, чем даже мой, причём лучшим с отрывом и с гандикапом. Он прекрасен и по композиции и по глубине и по раскрытию темы.

Встречайте, Сергей Слотин.

https://youtu.be/Lrjjqc1bRHo

Timeline (моя версия)
00:00 Начало и правила игры
06:00 Первый вопрос
11:30 Memory sharing
19:20 Пропускная способность
29:52 Ассоциативность
37:50 Виртуальная память
47:40 Завершение

В опросе, который проводился в процессе доклада, я по итогу занял 13-е место. Я бы удержался в десятке, но я ответил "about the same" на первый вопрос, так как именно в таком эксперименте мне никогда не удавалось пронаблюдать лесенку. После конференции обсудили с Сергеем его способ бенчмаркинга. Исходники для желающих перемерить:

https://github.com/sslotin/amh-code/tree/main/cpu-cache

Сергей, как выяснилось, также является автором вот этого превосходного материала, который я многие годы использовал при подготовке разного уровня лекций.

https://en.algorithmica.org/hpc/

Прекрасный материал, прекрасный доклад, очень рекомендую.

#talks
🔥92👍247
Ну и завершая тему Zero Cost Conference написал (довольно длинный) обзор всего остального что там было по обоим трекам и в Москве и в Ереване (ну кроме откровенно странных штук типа геогессинга).

https://telegra.ph/Obzor-dokladov-proshedshej-Zero-Cost-Conf2024-08-11

Было бы интересно увидеть в комментариях что из содержания докладов понравилось и запомнилось вам и насколько вы бы скорректировали мои отдельные оценки в плюс или в минус (разумеется только если вы действительно смотрели соответствующий доклад).

#conference #talks
40👍33🔥18🫡2
Настало время этого анонса.

Моя книга по оптимизирующим компиляторам, над которой я работал с прошлого лета, наконец-то доступна в предварительной продаже.

Финальный вариант книги ещё не свёрстан, так что на шрифт и верстку пока не смотрите, в печати всё будет гораздо лучше.

https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667

Начиная с осени, вероятно с середины октября, когда эта книга поступит в продажу уже в магазинах, я начну выкладку на свой канал (youtube и rutube) снятого этим летом видеокурса по этой книге. Надеюсь успеть его полностью выложить к новому году, если не решу доснять специальных выпусков. В итоге можно будет читать книгу и смотреть курс.

Большой пост с деталями, историей и мотивацией к написанию (а также с приглашением на встречу читателей) я выложу когда она выйдет в продажу и поступит в магазины.

P. S. Статистика по предпродажам сильно повлияет на тираж книги. Ну и в предпродаже её можно купить со значительной скидкой.

#publications
🔥325👍11730👏8❤‍🔥7🫡4😱2
Приближается сентябрь, начало учебного года.

Каждый год я делаю подзамочные стримы со своего магистерского и бакалаврского курсов в дискорде, этот год не станет исключением.

Ссылки на стрим постятся до начала лекции в каналы с соответствующими названиями (магистратура-2024-25 и бакалавриат-2024-25), так что вы можете участвовать онлайн в реальном времени. Вопросы по теме лекции из чата стрима зачитываются в аудитории. В основном канале дискорд-сервера обычно помещается организационная информация. Есть также канал для оффтопик общения. Как вы понимаете я нигде не размещаю рекламу, ничего не монетизирую и не собираю донаты.

Стримы в этом году будут вестись на rutube, технология опробована и сюрпризов не ожидается. Стримы отличаются от выложенных на youtube курсов некоторыми обновлениями материала, отсутствием видео и традиционно плохим звуком (с обработкой звука и съёмкой видео я заморачиваюсь только для официальной выкладки), на стримах у меня обычно только экран -- слайды и код. Записи стримов сохраняются и доступны после стрима.

https://discord.gg/w73eVVraKg

#official
👍135🔥3618👏2🤩2
Вместо того, чтобы:
* готовиться к выступлению на ШМУ в Сириусе 20-го сентября.
* готовиться к выступлению на конференции "Стачка" в Питере 28-го сентября
* готовится к первой бакалаврской лекции в понедельник
* прочее

Я вчера весь вечер писал вот этот сомнительный длиннопост про разум, вычислимость, тезис Тьюринга и, главное, недооценённую многими людьми гениальность так называемого "теста Тьюринга", очерчивающего границы нашей возможности к распознаванию разума.

https://telegra.ph/Tezis-Tyuringa-09-06

Внутри много философии, вы предупреждены.

P. S. книгу сверстали, результат в целом ок, но там разъехались листинги, я отправил правки, их сейчас вносят и далее нас ждёт ещё один круг. Ориентировочная дата выхода -- середина октября.

#computability #conference #publications
114🔥57👍41🦄43👏3🆒3
Пятница, вечер, самое время для свежепридуманного этюда по C++. Придумал утром, сегодня опробовал на коллегах и остался доволен.

https://godbolt.org/z/8EaEbPz9x — это не работает
https://godbolt.org/z/6b3977Pac — то же, но без инстанцирования структуры отлично работает

Вам нужно обосновать со ссылкой на стандарт в чём причина. И предложить некую починку неработающего варианта. Вариантов починки, кстати, заведомо больше одного.

Увы, призов, кроме зрительских симпатий, не обещаю.

#questions #cpp_postgraduate
👍36🤯1910
Всем привет. 28 сентября в субботу выступаю на IT-конференции Стачка в СПб.

С 11:40 до 12:45 со мной можно будет пообщаться в "экспертной зоне". Это для владельцев VIP-билетов. Подразумевается неспешный разговор серьёзных людей и лакшери времяпрепровождение. Презентация мне дорогих напитков приветствуется, но остаётся на ваше усмотрение.

В 13:40 мы с очаровательной содоклачицей Настей расскажем про инструмент автоматического бенчмаркинга llvm-exegesis. И конечно про его бэкенд для открытой и расширяемой архитектуры RISC-V, сделанный нашей командой. И даже немного про LLVM-based ORC JIT. Это уже в основном треке и для всех.

P. S. книга всё ближе. Вчера отослал последние мелкие правки по вёрстке. Уже готовится печатный файл, середина октября выглядит реалистично. Скоро начну выкладку курса на youtube/rutube, информация будет на этом канале.

#conference
95🔥50👍28💅13🦄32😁2🤔1
Всем привет. Типография поставила дату 22.10, соответственно выкладку курса начну в субботу 19-го.

UPDATE: Типография справилась быстрее. Попробую начать выкладку пораньше ))

А сейчас у меня будет для всех важный вопрос. Хочется сделать встречу с читателями, издательство поможет организовать. Допустим я сделаю встречу с читателями в Москве в выходной. Мне надо знать сколько людей придёт. Опрос сейчас сделаю, но пожалуйста, голосуйте только если придёте с высокой вероятностью. И то же самое в Питере.

В комментарии к этому посту, если вдруг вы в другом городе и хотели бы меня там видеть для встречи с читателями, пишите название города. Если название вашего города уже написали, ставьте лайки в виде поднятого вверх пальца.

#official
🔥60👍233❤‍🔥2😢1
Придёте на встречу с читателями?
Anonymous Poll
20%
Москва
12%
Питер
24%
Другой город
44%
Результаты
👍23❤‍🔥5🔥2
Итак, книга приехала из типографии чуть раньше, чем должна была.

Поэтому также чуть раньше выкладываю первое видео курса по этой книге. Можно читать книгу и смотреть курс ))

Видео будут появляться каждую субботу с утра где-то до конца декабря.

https://youtu.be/shvOI7SQ3q4

https://rutube.ru/video/3702d41e19ad5fd3b653820b530023dd/

Первая лекция очень простая и ознакомительная — на ней мы поговорим о тех задачах, которые решает компилятор, о синтаксисе и семантике программ, рассмотрим разные оптимизации и в конце введём HIR — High Level IR, которым будем пользоваться при дальнейшем изложении.

#toolchain #compilers
143🔥96👍21🤩3🐳2💅1
Всем привет.

Как многие заметили в предзаказе книга пришла странная. Она фактически отпечатана с раннего драфта и там есть уже ставшая знаменитой страница 22, оставшаяся от той книги, какой она должна была быть. Также проблемы есть со страницами 167, 169 и 173.

Издательство отзывает бракованный тираж и останавливает продажи. Всем кто уже купил по предзаказу будет некая компенсация, например в виде бесплатной электронной копии. Ну и кроме того, если смотреть на вещи позитивно, у вас остаётся уникальный авторский экземпляр с авторской пунктуацией. При этом по смыслу книга вполне полноценная. Там есть все смысловые блоки, только не закончена корректура.

Подробности будут позже.

Пока что я, чтобы облегчить чтение тем, кому такой предзаказ пришёл, выкладываю страницы из того же черновика с которого он был напечатан.

UPD: развитие истории в https://t.me/cpp_lects_rus/221

#official
👍119🔥20🙏10😭8😁7😱5🙈3👎2🤡2💅2👏1