Return to Video

Map and Gather - Intro to Parallel Programming

  • 0:00 - 0:02
    Поговорим о разных видах коммуникаций,
  • 0:02 - 0:05
    различных шаблонах коммуникаций которые вы встретите в параллельном программировании.
  • 0:05 - 0:10
    И как вы увидите все это связано с тем как соотносятся задачи и память с друг другом
  • 0:10 - 0:12
    как соотносятся задачи, это thead'ы в CUDA,
  • 0:12 - 0:15
    и память через которую они взаимодействуют.
  • 0:15 - 0:18
    Этот шаблон коммуникаций вы уже видели, он называется map.
  • 0:18 - 0:20
    У вас есть много элементов данных
  • 0:20 - 0:25
    таких как элементы массива, или компоненты матрицы, или пиксели изображения,
  • 0:25 - 0:30
    и вы собираетесь применить к ним одну функцию или операцию над каждой частью данных.
  • 0:30 - 0:34
    Это значит, что каждая задача будет считать и писать определенное место в памяти.
  • 0:34 - 0:38
    Это однозначное соответствие между вводом и выводом.
  • 0:38 - 0:41
    Map очень эффективна на GPU
  • 0:41 - 0:43
    и легко и эффективно выражается в CUDA
  • 0:43 - 0:48
    просто назначая 1 thread на одну задачу, но это не очень гибкая структура.
  • 0:48 - 0:50
    Есть много вещей которые вы не можете сделать с простой операцией map.
  • 0:50 - 0:54
    Теперь предположим, что вы хотите чтобы каждый thread вычислял и хранил среднее
  • 0:54 - 0:56
    значение по диапазону элементов данных.
  • 0:56 - 1:01
    Скажем, мы хотим среднее из трех соседних элементов.
  • 1:01 - 1:04
    В этом случае, каждый thead будет читать значения из 3 мест в памяти
  • 1:04 - 1:08
    и писать из в одно.
  • 1:08 - 1:10
    Или, предположим, вы хотите размыть изображение
  • 1:10 - 1:14
    установив каждый пиксель как среднее соседних пикселей,
  • 1:14 - 1:19
    так этот пиксель усреднил бы значение всех этих трех пикселей,
  • 1:19 - 1:22
    а пиксель рядом с ним,
  • 1:22 - 1:26
    усреднил бы значения в этих пикселях и т.д.
  • 1:26 - 1:29
    Мы сделаем операцию размытия точно такого же рода в домашнем задании
  • 1:29 - 1:31
    которое будет в конце этой лекции.
  • 1:31 - 1:36
    Эта операция называется gather (cбор), потому что каждое вычисление собирает элементы входных данных вместе
  • 1:36 - 1:40
    из разных мест чтобы посчитать выходной результат.
Title:
Map and Gather - Intro to Parallel Programming
Description:

more » « less
Video Language:
English
Team:
Udacity
Project:
CS344 - Intro to Parallel Programming
Duration:
01:39
Алексей Горячих edited Russian subtitles for Map and Gather - Intro to Parallel Programming

Russian subtitles

Revisions