Базовый курс C++ (MIPT, ILab). Lecture 15. Вычисления на GPU.

Поділитися
Вставка
  • Опубліковано 25 чер 2024
  • Лекции в бакалавриате МФТИ по C++ на русском языке.
    Мы рассмотрим OpenCL API и рантайм, идею гетерогенных вычислений, язык OpenCL C и разберем несколько простых кернелов. По ходу мы внезапно кое-что узнаем о многопоточности и кое-что об атомарности.
    Лектор: Константин Владимиров
    Дата лекции: 31 января 2022 года
    Съёмка: Владислав Белов.
    Звук: Дмитрий Рябцев.
    Предыдущая лекция: • Базовый курс C++ (MIPT...
    Следующая лекция: • Базовый курс C++ (MIPT...
    Слайды ко всем лекциям: sourceforge.net/projects/cpp-...
    Примеры кода ко всем лекциям: github.com/tilir/cpp-graduate
    Timeline:
    00:00 Гетерогенные вычисления и OpenCL
    09:31 Владение ресурсами и контексты
    14:40 Пересылка данных и C++API
    24:30 Модель вычислений SIMT
    34:10 На пути к vector add
    51:00 Матрицы: локальная и приватная память
    1:04:15 Барьеры и демонстрация GEMM
    1:13:25 Оффлайн-компиляция и ассемблер GPU
    1:20:50 Гистограмма и атомики
    1:33:15 Битоническая сортировка
    1:38:10 Литература и расширения OpenCL
    Errata:
    * Тут пока пусто

КОМЕНТАРІ • 17

  • @andreykhakimov5588
    @andreykhakimov5588 2 роки тому +1

    Спасибо!

  • @viacheslavbarkov6538
    @viacheslavbarkov6538 2 роки тому

    @Konstantin Vladimirov спасибо за лекцию. Вопрос: зачем на слайде 31 второй барьер?

    • @tilir
      @tilir  2 роки тому

      Перед уходом на следующую итерацию цикла. Там всё на слайде это тело цикла, см. github.com/tilir/cpp-graduate/blob/master/11-compute/gemm_localmem.cl

  • @victormustya1745
    @victormustya1745 2 роки тому +1

    14:00 --- у методов clEnqueue* зачастую есть параметр, который позволяет сделать вызов блокирующим, а не ждать эвента. Кроме того, очередь может быть и in-order

  • @user-lh5ps6cv3g
    @user-lh5ps6cv3g 4 місяці тому

    Константин, большое спасибо!
    33:50 "Взрослая дискретная карточка" - в голос!
    У вас, случайно, лекции по CUDA нет? Я не нашел, но вдруг проглядел.

    • @tilir
      @tilir  4 місяці тому

      Нет, я к слову довольно плох в CUDA. Что-то знаю но не эксперт.

  • @juccbjufccfgjbfyh4613
    @juccbjufccfgjbfyh4613 2 роки тому +3

    А будет подобное про вулкан?

    • @tilir
      @tilir  2 роки тому

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

  • @DRDRPETR
    @DRDRPETR 2 роки тому +1

    Спасибо, что не Vulkan! С новыми видеокартами сами знаете что...

    • @tilir
      @tilir  2 роки тому

      А что с ними?
      С моей т.з. Vulkan compute вполне неплох и очень даже достоин рассмотрения, но там мало интересных абстракций для собственно вычислений. OpenCL это скорее такой золотой стандарт именно compute API.

    • @DRDRPETR
      @DRDRPETR 2 роки тому

      @@tilir моя HD5870 никогда не узнает, что такое Vulkan. А OpenCl - пожалуйста.

    • @juccbjufccfgjbfyh4613
      @juccbjufccfgjbfyh4613 2 роки тому

      Угу лучше на устаревшем куске опенг работать который не может нормально ресурсы современных пк распределить

    • @uvash4611
      @uvash4611 2 роки тому

      @@juccbjufccfgjbfyh4613 Ну так цены и дефицит видеокарт других вариантов не оставляют.

    • @juccbjufccfgjbfyh4613
      @juccbjufccfgjbfyh4613 2 роки тому

      @@uvash4611 раньше надо было брать, а не в ждуна по 100 лет играть, ответь честно, ты же бы и без дефецита новую карту не брал