LLVM и GCC / Register allocation / IT-образование в вузах (часть 1)
Вставка
- Опубліковано 2 чер 2024
- В этом выпуске Константин Владимиров, занимавшийся разработкой компиляторов для CPU и GPU, расскажет о том достоинствах и недостатках GCC и LLVM. Константин опишет различные современные подходы к аллокации регистров, применяемых в компиляторах. А также поделится базовыми рекомендациями для пользователей компиляторов, желающих улучшить производительность своих программ с помощью компиляторов. Кроме того, мы обсудили животрепещущий вопрос об IT-образовании с точки зрения преподавателя.
Насколько больно переходить на новые версии компилятора? По каким причинам выбирают LLVM? Какие достоинства и недостатки GCC и LLVM? Какие методы решения задачи аллокации регистров существуют? Насколько этот этап влияет на скорость работы программы? Почему инженерам полезно идти преподавать в ВУЗы? Какие проблемы есть у современного высшего образования в сфере IT? Ответы на эти и другие вопросы вы узнаете из этого эпизода. Больше интересного обсудим с Константином во второй части выпуска, которая выйдет чуть позже.
📍 Канал Константина: / @tilir
✅ Подписывайтесь на Telegram-канал подкаста: t.me/+bx50QfUlw4pkZDEy
🎧 Слушать «Битовые маски» на других платформах:
Яндекс.Музыка: music.yandex.com/album/26508178
Apple Podcasts: podcasts.apple.com/ru/podcast...
Все площадки: engineer.yadro.com/podcasts/c...
00:00:00 - Тизер
00:00:22 - В гостях Константин Владимиров
00:01:40 - Карьерный путь Константина
00:08:16 - Как Константин попал в сферу разработки компиляторов
00:10:05 - Процесс проектирования микроархитектуры
00:11:39 - Сравнение GCC и LLVM, преимущества и недостатки
00:15:47 - LLVM IR
00:16:41 - Все крупные системы должны быть переписаны на C++
00:17:18 - Преимущества C
00:18:57 - Наследие, оставшееся от С, в GCC
00:20:19 - Ниши gcc и clang
00:22:26 - Отсутствие бинарной совместимости для LLVM IR
00:24:42 - Различные методы аллокации регистров в компиляторах
00:34:47 - Как аллокация регистров влияет на качество сгенерированного кода
00:36:15 - Рекомендации для пользователей компиляторов
00:37:02 - Архитектурные решения проблемы аллокации регистров
00:40:07 - Польза преподавательской деятельности
00:43:43 - Собеседования при найме
00:45:27 - Что полезно для развития специалиста
00:46:56 - Проблемы IT-кафедр
00:52:10 - Участие компаний в высшем образовании
00:55:27 - Новогоднее пожелание будущим инженерам от Константина
00:57:02 - Тизер второй части
🔹 Стань частью команды YADRO! careers.yadro.com
#llvm #gcc #llvmir #c++ #itобразование - Наука та технологія
Какой же умный мужик. Боже, дай мне хоть вполовину так же грамотно и чётко мыслить
Роскошный выпуск! Просто подарок к новому году). Спасибо ведущим и конечно же Константину!
Спасибо большое! В новом году выйдет вторая часть :)
Владимир Александрович, здравствуйте! Спасибо, что на одной из пар порекомендовали этот канал! Я знаю, вы это прочитаете!)
Хороший канал, интересное интервью. Смотрю магистерский курс С++ на канале Константина с большим удовольствием
Спасибо вам большое!
я просмотрел сначала 2 часть. она прогла на одном дыхании. полтора часа прошли как 10 минут. но когда понял что есть ещёи первая часть был очень доволен
мало что понимаю, но очень интересно слушать. Атмосфера в студии и манера речи гостя располагает к прослушиванию)
Здорово, что не пасуете перед непонятной информацией. Смотрите и другие выпуски "Битовых масок"!
Отлично! Большое спасибо за выпуск!
Жду вторую часть
Спасибо вам! Новый выпуск выйдет в январе :)
@@ultimate_engineer супер, а пока я посмотрю другие видео) кажется там есть серия про "железо" и его программирование
Первый раз вижу, чтобы интервьюеры были разбирающимися людьми, а не смузихлебами
Спасибо, стараемся делать только то, за что не стыдно и создавать действительно полезный контент :)
Первый и последний раз походу 😂
Спасибо большое, ребята. Успехов вам всем. Очень приятно смотреть и слушать.
Спасибо большое! Если вам понравился гость, то на канале есть также 2 часть выпуска (ua-cam.com/video/_SIBiSR8rzM/v-deo.html) и доклад Константина с недавнего митапа: ua-cam.com/video/cK4cMdx9QeQ/v-deo.html
@@ultimate_engineer спасибо за ссылки, да я уже посмотрел вторую часть и доклад недавний в первую очередь.
Еее!! Комменты для продвижения!! Вперёёд)
Послушал с удовольствием!
Рады, что понравился выпуск! Если ещё не слушали, то у "Битовых масок" вышло ещё 6 эпизодов подкаста с интересными спикерами ;)
Про преподавателей я полностью согласен. Моя учёба давно окончена и не бы связанна с программированием, но у нас были на кафедре преподы которые имели рабочий опыт и это круто, истории, советы и прочие фишки открываются. Но немного взгрустнул с фразы Константина Владимирова
Я в процессе профессионального самоопределения, и контент Константина (и материалы "Истового Инженера*) мотивируют развиваться в разработке, несмотря на трудности ❤
Это очень радостно слышать! Желаем удачи на профессиональном пути! Будет сложно, но интересно :)
Спасибо за годный хардкорный контент.
Спасибо вам! Рады, что понравился подкаст!
Спасибо
Где ссылка на канал Константина Владимирова??!!
Уже стоит в описании :) Спасибо, что смотрите наши выпуски одним из первых! Канал Константина: www.youtube.com/@tilir
@@ultimate_engineer Спасибо! (🤫у меня есть ссылка), просто Елена пообещала, на 57 секунде ролика ;) А как преподаватель, да и уверен, как разработчик, Константин хорош! И это скорее мягко сказано )
@9:50 а что за книгу он упомянул? Мучник?
Верно, Steven Muchnick "Advanced Compiler Design and Implementation"
си плас плас )))
про то что ядро линукса переписать на плюсах мешает только фанатизм Торвальдса это база
топ контент ❤
Спасибо, рады, что понравился выпуск!
Это не база, а смех. Rust еще сойдёт более менее
@@alexgorodecky1661 Rust - вот это шутка. От Rust в ядре не матерится только ленивый и это больше смахивает на саботаж и лицемерие.
Конечно знаю))
Экстра лекция бакалаврского курса 😂❤
Мы тоже радуемся, что удалось договориться с Константином об участии в подкасте! Спасибо, что смотрите!
А есть еще и GPU, для которых register pressure определяет, сколько параллельных потоков можно исполнять одновременно. Задача тогда существенно усложняется - надо не просто уложиться в, например, 16 регистров доступного адресного пространства, а минимизировать регистры насколько это возможно. Или даже удалить некоторые регистры (rematerialisation) и заменить их повторными вычислениями.
Расслабься
Не подскажите, что за книга на 9:53
Steven Muchnick "Advanced Compiler Design and Implementation"
ООО это очень крутой дядька, со скином скинхеда)) Ему надо дать государственную премию за его Ютуб канал, именно таких людей которые имеют большой практический опыт мне не хватало в образовании, одни просидевшие на кафедре всю жизнь пердуны с большим чсв.
"Я не боюсь когда меня спрашивают, а я ничего не знаю, либо отвечаю полную дичь.... ЯЗЫК ТАКОЙ" - это звучит прикольно!!!
ага и кажешься очень умным!
Ну так и шо? Современные процессоры (во всяком случае x86) даже спиллинт переименовывают. Т.е. внутри проца там типа очень много регистров (128-256...) и если мы пишем в пямять а потом читаем оттуда же то это происходит фактически за бесплатно, такая же скорость как и работы с регистрами.
В таймкоде написано "Все крупные системы должны быть переписаны на С", а гость говорит обратное :D
Видимо, UA-cam считает, что это одно и то же :)) потому что в описании у нас стоит С++
Правильное исправление. Ютуб шарит.
Думал, что с jetbrains из РФ ушли топ специалисты по компиляторам, а похоже они все походили из jetbrains, ядро молодцы
Неудачные обложки. Есть такая хорошая практика как ставить фото гостя и указывать его имя.
Нам известны такие практики, но не все инженеры в восторге от фотосессий и хотят видеть своё лицо на обложке :)
@@ultimate_engineer вполне может быть)
@@ultimate_engineer Тогда хотя бы имя гостя, а то я видео хотел "скипнуть", не понимая почему оно в предложке всплыло.
@shatalinator Имя гостя и из какой он компании указано на обложке внизу :)
Человек говорит про фанатизм Торвальдса, и перед этим говорит - "Переписать все крупные системы на C++", смешно. Каждой задаче свой инструмент. А C++ уже должен начать переставать быть языком общего назначения и стать языком спец назначения. Для остального C и Rust. К счастью или сожалению, C++ становится легаси языком.
Казалось бы, это было что-то наподобие профессионального фразеологизма с долей иронии, а не просто утверждение
C++ никому ничего не должен). А то, что сейчас корпы насильно стараются пропихнуть Rust в ядро - это вообще саботаж. И да, скажите ведущим высокотехнологичным компаниям причём в разных сферах, что C++ оказывается legacy и посмеются над вами. Все драйверы как писали на C++, так и пишут и писать будут, Rust лезет со своей рекламной компанией, но дальше слов особо дело не движется, далее вся 3D графика - это C++, причём как для проприетарных продуктов nVidia, так и открытых, всё машинное обучение - это C++, то что вам предоставляют юзерспейс на Python - это ничего не значит, а иногда и вредит индустрии. Хорошенькое такое "legacy".
@@MariaEsenina А чем Rust хуже C++?
@@cuniapapa5370 Ответ Раст разработчика: всё ещё нет variadic generics (template packs). Но у плюсов гораздо больше проблем, поэтому испытываю меньшую боль в Rust.
"Ядро Linux должно быть переписано на C++"
Столяров: 💀💀💀💀😡😡🤬🤬🤬🤬👺👺👺👹👹👹☠☠☠
где же патриотизм? Столовка...
Кажется, патриотизм заключается не в этом :)