Практика языка C (МФТИ, 2023-2024). Семинар 7.2. Конвейер.

Поділитися
Вставка
  • Опубліковано 29 кві 2024
  • Практические занятия по языку C на первом курсе МФТИ. Кафедра информатики.
    На этом занятии мы окажемся максимально глубоко и решим сразу две интересных загадки. Первая приведёт нас к концепции конвейера, на которой мы остановимся и внимательно её изучим. Вторая же приведёт нас к ещё более удивительным открытиям, касающимся истинной природы кешей.
    Семинарист: Константин Владимиров.
    Дата: 8 апреля 2024 года.
    Съёмка: Марк Гончаров.
    Звук: Юлий Тарасов.
    Предыдущий семинар: • Практика языка C (МФТИ...
    Следующий семинар: • Практика языка C (МФТИ...
    Слайды к занятиям: cs.mipt.ru/wp/?page_id=7775
    Примеры кода: github.com/tilir/c-graduate
    Задачник: olymp1.vdi.mipt.ru/
    Timeline
    00:00 Исполнение программы
    10:45 Конвейер
    15:12 Предсказание переходов
    26:30 Упражняемся в ассемблере
    31:08 Хитрая оптимизация
    36:50 Out of order
    44:00 Время решать задачи
    46:40 Загадочный бинарный поиск
    52:18 Реалистичные кеши
    01:02:30 Разгадка: ассоциативность
    01:10:28 Бонус про замеры кешей
    Errata
    * Тут пока пусто

КОМЕНТАРІ • 23

  • @pompei2
    @pompei2 16 днів тому +9

    Для меня кэши проца всегда были какими-то неприступными крепостями, а тут раз-раз и всё ясно стало. Большая благодарность лектору от всей души

  • @sibedir
    @sibedir 17 днів тому +7

    Каждый вторник жду видосов от Сера Троглодита.
    Каждые выходные - от Константина. 👍

    • @tilir
      @tilir  17 днів тому +2

      Удивительное сравнение, вроде ничего общего. Хотя я тоже люблю геройские стримы ))

    • @sibedir
      @sibedir 17 днів тому +3

      @@tilir общее в таланте создавать ламповость и умиротворяющее повествование )

  • @johndick996
    @johndick996 17 днів тому +4

    Константин, большое спасибо за семинар!

  • @serglarionov5560
    @serglarionov5560 16 днів тому +3

    Преподаватель от бога!

  • @rayrayray4653
    @rayrayray4653 17 днів тому +3

    Классно!!!

  • @v_zalygin
    @v_zalygin 16 днів тому +1

    Спасибо за семинар!

  • @ruslankhl
    @ruslankhl 16 днів тому +1

    Спасибо!

  • @barsik5943
    @barsik5943 16 днів тому +3

    виртуально на ваших семинарах находится примерно по четыре тысячи любопытных глаз

  • @user-fw3kx2ix3p
    @user-fw3kx2ix3p 17 днів тому +4

    Как обычно лайк за ранее)❤

    • @tilir
      @tilir  17 днів тому

      Вот это правильный подход. Если что всегда можно отжать обратно ))

  • @Stedmiel
    @Stedmiel 17 днів тому

    24:40 в аппаратные счетчики умеет дефолтный линуксовый perf, к слову говоря. на винде это умеет делать не менее дефолтный ETW, но насколько помню- там было все не очень хорошо с документацией.

  • @AnarchySane
    @AnarchySane 2 дні тому

    В такие моменты начинаю понимать почему Си будет еще очень живее всех живых. ❤
    Ощущаю себя тупым, но я же JS’эсер 😂

  • @alexeydurnev9500
    @alexeydurnev9500 16 днів тому

    Константин! Огромное спасибо за семинар, очень кратко и максимально по делу! Есть вопрос: В обращении к студентам вы упомянули архитектуру их задания и распределение ролей в команде. Будут ли еще на канале видео, посвященные программной архитектуре? Или по взаимодействию в команде разработчиков?

    • @tilir
      @tilir  16 днів тому

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

  • @user-jz9du5in4s
    @user-jz9du5in4s 17 днів тому +1

    Быстрее бы...

  • @alexloktionoff6833
    @alexloktionoff6833 17 днів тому

    Pipeline - дословно трубопровод. Это похоже калька с русского термина водопроводный принцип организации управления, который впервые открыто ввел советский ученый А.С. Лебедев. Сейчас уже известно что и до этого была аппаратура специального назначения и на западе и в СССР, которая использовала этот принцип, но открыто впервые использовал его все-таки Лебедев. И хотя принцип работы может и проще объяснять на примере заводского конвейера, мне кажется важно помнить о корнях.

    • @tilir
      @tilir  17 днів тому +1

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

  • @dervishsy
    @dervishsy 17 днів тому

    Жесть

    • @dervishsy
      @dervishsy 17 днів тому +1

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

    • @dervishsy
      @dervishsy 17 днів тому

      Возникает вопрос как процесс написания программы, учитывающей использование аппаратных кэшей, сочетается с векторизацией