Return to Video

cs344_unit2_2_l_映射与收集

  • 0:00 - 0:02
    让我们说说不同种类的通信,
  • 0:02 - 0:05
    你在并行计算中看到的不同通信方式。
  • 0:05 - 0:10
    你将看到,这其实就是关于如何把任务和内存映射到一起
  • 0:10 - 0:12
    ——如何映射任务,也就是CUDA中的线程,
  • 0:12 - 0:15
    以及它们通信经过的内存。
  • 0:15 - 0:18
    你已经看过的通信模式叫做映射。
  • 0:18 - 0:20
    现在通过映射,你获得了很多数据元素,
  • 0:20 - 0:25
    例如数组中的元素、矩阵里的条目或图像的像素,
  • 0:25 - 0:30
    你将对每一数据进行同样的函数或计算任务。
  • 0:30 - 0:34
    这意思是每个任务将在内存中特定位置读取和写入。
  • 0:34 - 0:38
    输入和输出之间有一对一的对应关系。
  • 0:38 - 0:41
    所以映射在GPU中很有效率,
  • 0:41 - 0:43
    在CUDA中它很容易用有效的方式表达,
  • 0:43 - 0:48
    只要让一个线程来处理每个任务,但这不是一个很灵活的框架。
  • 0:48 - 0:50
    有很多事你不能用一个简单的映射操作完成。
  • 0:50 - 0:54
    现在假设你想要每个线程计算并存储
  • 0:54 - 0:56
    一系列数据元素的平均值。
  • 0:56 - 1:01
    比如说可能我们想取每三个元素的平均值。
  • 1:01 - 1:04
    这种情况下,每个线程将从内存的三个位置读取数值,
  • 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
    这项操作叫做收集,因为每次运算都要从不同地方
  • 1:36 - 1:40
    收集输入数据元素,来计算出一个输出结果。
Title:
cs344_unit2_2_l_映射与收集
Description:

more » « less
Video Language:
English
Team:
Udacity
Project:
CS344 - Intro to Parallel Programming
Duration:
01:39

Chinese, Simplified subtitles

Revisions Compare revisions