Новогодние каникулы — отличное время не только для отдыха, но и для саморазвития. Если вы хотите узнать больше о низкоуровневой оптимизации, тонкостях работы с GPU или разобраться в архитектуре ядра Linux, эти выпуски подкаста «Битовые Маски» точно стоит добавить в свой плейлист. Эксперты с многолетним опытом обсуждают самые сложные темы из мира низкоуровневого программирования, делятся ценными инсайтами и реальными историями из профессиональной практики.
LLVM в GPU компиляторах, стандарты С++
На самом деле, не совсем нормально передавать вычисления на видеокарту для 3D-графики без подготовки. Если вы дошли до этого этапа, значит, вам важен перформанс. Вы написали шейдер и передали вычисления на видеокарту, но, чтобы добиться нужной производительности, сначала скомпилируйте его офлайн.
Большинство графических компиляторов предоставляют возможность офлайн-компиляции. Скомпилируйте шейдер, а затем изучите получившийся ассемблерный код. Если в нем присутствуют ненужные операции (спилы), перепишите шейдер. Серьезно. Спилы в шейдере — это прямой путь к потере производительности, а ведь вы писали шейдер именно для улучшения перфоманса.
Во этом выпуске подкаста «Битовые маски» Константин Владимиров, инженер с 20-летним опытом разработки на C/C++, расскажет о тонкостях создания компиляторов для GPU. Также он поделится своими мыслями о нововведениях в стандартах C++ и объяснит, почему разработчикам компиляторов важно хорошо разбираться в стандарте.
Из подкаста вы узнаете:
-
Чем отличаются CPU и GPU.
-
В чем сложность гетерогенного программирования.
-
Почему MLIR не используется в графических компиляторах.
-
Как применять LLVM для GPU-компиляторов с учетом его ограничений.
-
Когда использование SSA может быть проблемой.
-
Почему наличие undefined behaviour может быть полезным.
-
Какие нововведения могут появиться в C++26.
Разработка DSP-библиотеки, низкоуровневые оптимизации и программирование в 80–90-е
Дебаггинг на рубеже 80-х и 90-х: под конец компиляции, когда программа уже почти полностью работала, любое небольшое исправление могло занять до 20 минут компиляции. И это даже при условии, что компилятор загружался не с дискеты, а с устройства хранения на 256 килобайт.
В этом выпуске подкаста «Битовые маски» в гостях Игорь Астахов — инженер-программист с более чем 25-летним опытом работы. Его карьера началась во времена, когда компьютеры занимали целый шкаф, а в конце 90-х он стал сотрудником Intel. Сегодня Игорь работает в YADRO, где занимается оптимизацией DSP-алгоритмов и разработкой высокопроизводительных библиотек.
В этом выпуске ведущие с Игорем обсудили:
-
Правда ли, что раньше код писали и отлаживали прямо на бумаге.
-
Используют ли до сих пор ассемблер для достижения максимальной производительности.
-
Почему Intel Itanium считали идеальным процессором.
-
Как перенести библиотеку на архитектуру, которая еще даже не существует.
-
Может ли искусственный интеллект создавать высокопроизводительный код.
Архитектура ядра Linux, ЦОС и DSP-процессоры, Linux для RISC-V
Есть такая поговорка: человек всегда программирует на языке, который изучил первым. Если ты начал с Delphi, то, как ни странно, на любом другом языке будешь писать в стиле Delphi. Если твой первый язык — C, то и на других платформах ты будешь оставаться верен привычкам из C.
В этом выпуске подкаста — все о системном программировании. Наш гость — Дмитрий Точанский, инженер с более чем 20-летним опытом работы в системном и embedded-программировании.
Дмитрий пришел в системное программирование после того, как бывший руководитель застал его за попыткой исправить баг драйвера сетевой карты, из-за которого рушилась вся система. До этого Дмитрий работал системным администратором — путь, который он выбрал благодаря своей любви к Linux. Свой первый дистрибутив этой операционной системы он получил еще в начале 2000-х, практически подпольно.
В этом выпуске подкаста мы обсуждаем:
-
Как устроены системы цифровой обработки сигналов и какие аппаратные и программные решения здесь применяются.
-
Подходит ли Linux для использования в качестве real-time операционной системы.
-
С какими сложностями сталкиваются при портировании Linux на RISC-V.
-
Почему ядро Linux до сих пор не перешло на Rust и неизбежен ли отказ от C.
-
Какая архитектура операционных систем лучше — микроядерная или монолитная.
Операционные системы, Linux / Zephyr, HAL и BSP, ARC-V
Ключевым элементом любой операционной системы является процесс — единица выполнения задачи. Чтобы координировать работу нескольких процессов одновременно, операционной системе нужен диспетчер процессов. Именно он распределяет ресурсы устройства, позволяя запускать несколько задач одновременно и обеспечивая их эффективное взаимодействие.
Такое устройство, как мощный современный компьютер или телефон, способно одновременно воспроизводить музыку, обрабатывать сложные вычисления и выполнять множество других операций. И все это становится возможным благодаря тому, что операционная система предоставляет удобные абстракции и эффективно управляет процессами.
В этом выпуске подкаста «Битовые маски» поговорили с Алексеем Бродкиным. Он уже 16 лет работает в компании Synopsys и сегодня возглавляет команду инженеров, занимающихся разработкой операционных систем — от Linux до систем реального времени (RTOS).
Расстояние в тысячи километров не стали преградой для интересной беседы в подкасте «Битовые маски». Мы обсудили, как разрабатывать и поддерживать операционные системы для разных процессоров и архитектур, заглянули в будущее Synopsys и поговорили о новом процессорном семействе ARC-V, которое будет основано на открытом наборе команд RISC-V.
Что интересного вас ждет в выпуске:
-
Почему вероятность появления новой, большой и полноценной операционной системы крайне мала.
-
Как устроен уровень аппаратных абстракций в ОС и зачем он нужен.
-
Почему термин «операционная система реального времени» иногда вводит в заблуждение.
-
Перемещаются ли функции между Linux и RTOS.
-
Можно ли начинать разработку операционной системы до того, как микросхема воплотилась в кремнии.
-
Как связаны прерывания, их обработчики и планировщик задач.
Независимо от того, интересуетесь ли вы системным программированием, шейдерами для GPU, функциями Linux или разработкой DSP-библиотек, в этих выпусках вы найдете ценные советы, уникальные истории и идеи для роста. Слушайте, смотрите, и пусть новый год начнется с мощного апгрейда ваших знаний!
Не пропустите последние «Битовые маски» в уходящем году: гостем выпуска стал Юрий Панчул, один из основателей Школы синтеза цифровых схем! Он рассказал о своем пути в дизайн процессоров, о том, как он работает с точки зрения бизнеса, а также дал ценные советы молодым инженерам, которые как можно быстрее стремятся в крупные компании. Смотреть на Rutube/YouTube или слушать →
Слушайте «Битовые маски» на любой удобной платформе: Яндекс.Музыка, Apple Podcasts, Telegram-плеер, Castbox, YouTube и других.
ссылка на оригинал статьи https://habr.com/ru/articles/870068/
Добавить комментарий