Новогодний плейлист инженера-программиста: что послушать в подкасте «Битовые маски»

d44b3dd41ab1e42bfbc13f0834a2ec83.jpg

Новогодние каникулы — отличное время не только для отдыха, но и для саморазвития. Если вы хотите узнать больше о низкоуровневой оптимизации, тонкостях работы с GPU или разобраться в архитектуре ядра Linux, эти выпуски подкаста «Битовые Маски» точно стоит добавить в свой плейлист. Эксперты с многолетним опытом обсуждают самые сложные темы из мира низкоуровневого программирования, делятся ценными инсайтами и реальными историями из профессиональной практики.

LLVM в GPU компиляторах, стандарты С++

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

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

Во этом выпуске подкаста «Битовые маски» Константин Владимиров, инженер с 20-летним опытом разработки на C/C++, расскажет о тонкостях создания компиляторов для GPU. Также он поделится своими мыслями о нововведениях в стандартах C++ и объяснит, почему разработчикам компиляторов важно хорошо разбираться в стандарте.

Из подкаста вы узнаете:

  • Чем отличаются CPU и GPU.

  • В чем сложность гетерогенного программирования.

  • Почему MLIR не используется в графических компиляторах.

  • Как применять LLVM для GPU-компиляторов с учетом его ограничений.

  • Когда использование SSA может быть проблемой.

  • Почему наличие undefined behaviour может быть полезным.

  • Какие нововведения могут появиться в C++26.

Смотреть на YouTube

Слушать

Разработка DSP-библиотеки, низкоуровневые оптимизации и программирование в 80–90-е

Дебаггинг на рубеже 80-х и 90-х: под конец компиляции, когда программа уже почти полностью работала, любое небольшое исправление могло занять до 20 минут компиляции. И это даже при условии, что компилятор загружался не с дискеты, а с устройства хранения на 256 килобайт.

В этом выпуске подкаста «Битовые маски» в гостях Игорь Астахов — инженер-программист с более чем 25-летним опытом работы. Его карьера началась во времена, когда компьютеры занимали целый шкаф, а в конце 90-х он стал сотрудником Intel. Сегодня Игорь работает в YADRO, где занимается оптимизацией DSP-алгоритмов и разработкой высокопроизводительных библиотек.

В этом выпуске ведущие с Игорем обсудили:

  • Правда ли, что раньше код писали и отлаживали прямо на бумаге.

  • Используют ли до сих пор ассемблер для достижения максимальной производительности.

  • Почему Intel Itanium считали идеальным процессором.

  • Как перенести библиотеку на архитектуру, которая еще даже не существует.

  • Может ли искусственный интеллект создавать высокопроизводительный код.

Смотреть на YouTube

Слушать

Архитектура ядра Linux, ЦОС и DSP-процессоры, Linux для RISC-V

Есть такая поговорка: человек всегда программирует на языке, который изучил первым. Если ты начал с Delphi, то, как ни странно, на любом другом языке будешь писать в стиле Delphi. Если твой первый язык — C, то и на других платформах ты будешь оставаться верен привычкам из C.

В этом выпуске подкаста — все о системном программировании. Наш гость — Дмитрий Точанский, инженер с более чем 20-летним опытом работы в системном и embedded-программировании.

Дмитрий пришел в системное программирование после того, как бывший руководитель застал его за попыткой исправить баг драйвера сетевой карты, из-за которого рушилась вся система. До этого Дмитрий работал системным администратором — путь, который он выбрал благодаря своей любви к Linux. Свой первый дистрибутив этой операционной системы он получил еще в начале 2000-х, практически подпольно.

В этом выпуске подкаста мы обсуждаем:

  • Как устроены системы цифровой обработки сигналов и какие аппаратные и программные решения здесь применяются.

  • Подходит ли Linux для использования в качестве real-time операционной системы.

  • С какими сложностями сталкиваются при портировании Linux на RISC-V.

  • Почему ядро Linux до сих пор не перешло на Rust и неизбежен ли отказ от C.

  • Какая архитектура операционных систем лучше — микроядерная или монолитная. 

Смотреть на YouTube 

Слушать 

Операционные системы, Linux / Zephyr, HAL и BSP, ARC-V

Ключевым элементом любой операционной системы является процесс — единица выполнения задачи. Чтобы координировать работу нескольких процессов одновременно, операционной системе нужен диспетчер процессов. Именно он распределяет ресурсы устройства, позволяя запускать несколько задач одновременно и обеспечивая их эффективное взаимодействие.

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

В этом выпуске подкаста «Битовые маски» поговорили с Алексеем Бродкиным. Он уже 16 лет работает в компании Synopsys и сегодня возглавляет команду инженеров, занимающихся разработкой операционных систем — от Linux до систем реального времени (RTOS).

Расстояние в тысячи километров не стали преградой для интересной беседы в подкасте «Битовые маски». Мы обсудили, как разрабатывать и поддерживать операционные системы для разных процессоров и архитектур, заглянули в будущее Synopsys и поговорили о новом процессорном семействе ARC-V, которое будет основано на открытом наборе команд RISC-V.

Что интересного вас ждет в выпуске:

  • Почему вероятность появления новой, большой и полноценной операционной системы крайне мала.

  • Как устроен уровень аппаратных абстракций в ОС и зачем он нужен.

  • Почему термин «операционная система реального времени» иногда вводит в заблуждение. 

  • Перемещаются ли функции между Linux и RTOS.

  • Можно ли начинать разработку операционной системы до того, как микросхема воплотилась в кремнии.

  • Как связаны прерывания, их обработчики и планировщик задач.

Смотреть на YouTube

Слушать 

Независимо от того, интересуетесь ли вы системным программированием, шейдерами для GPU, функциями Linux или разработкой DSP-библиотек, в этих выпусках вы найдете ценные советы, уникальные истории и идеи для роста. Слушайте, смотрите, и пусть новый год начнется с мощного апгрейда ваших знаний!

Не пропустите последние «Битовые маски» в уходящем году: гостем выпуска стал Юрий Панчул, один из основателей Школы синтеза цифровых схем! Он рассказал о своем пути в дизайн процессоров, о том, как он работает с точки зрения бизнеса, а также дал ценные советы молодым инженерам, которые как можно быстрее стремятся в крупные компании. Смотреть на Rutube/YouTube или слушать →

Слушайте «Битовые маски» на любой удобной платформе: Яндекс.Музыка, Apple Podcasts, Telegram-плеер, Castbox, YouTube и других.

© Habrahabr.ru