Return to Video

CS344_Unit1_13_l_CUDA程序的图解

  • 0:00 - 0:04
    这节课我们用的计算机被称作异构型计算机。它们有两种
  • 0:04 - 0:08
    不同的处理器,CPU和GPU。
    现在,如果你写一个普通C语言程序,
  • 0:08 - 0:15
    你的代码只允许你用CPU运行你的程序。
  • 0:15 - 0:18
    那么我们如何编写在GPU上运行的代码?
    这就是CUDA的作用所在。
  • 0:18 - 0:20
    CUDA编程模型允许我们用一个程序对两个处理器进行编程,
  • 0:20 - 0:25
    以便我们可以在我们的程序中使用GPU的力量。CUDA支持多种语言,
  • 0:28 - 0:32
    但在这门课中,我们使用C语言。现在,你的CUDA程序的部分
  • 0:32 - 0:37
    是普通的C语言,它会在你的CPU上运行。CUDA称之为主机。
  • 0:39 - 0:43
    程序的另一部分将在GPU上并行运行。这部分也是用C语言编写,
  • 0:43 - 0:46
    但我们用一些扩展来表达并行度。GPU的CUDA名称是设备。
  • 0:46 - 0:50
    然后,CUDA编译器将编译你的程序,把它拆分成
  • 0:50 - 0:54
    在CPU和GPU上运行的部分,为各自生成代码。
  • 0:59 - 1:05
    CUDA假设设备GPU是主机CPU的协同处理器。
  • 1:05 - 1:11
    还假设主机和设备有各自分开的内存,
  • 1:11 - 1:15
    用来存储数据。我们这门课用的系统中,CPU和GPU
  • 1:15 - 1:18
    都有各自的DRAM形式的专用物理内存,
  • 1:18 - 1:23
    GPU的内存通常是性能很高的内存块。
  • 1:23 - 1:28
    在CPU和GPU的关系中,CPU处主导地位。
  • 1:28 - 1:33
    CPU运行主程序,向GPU发送指示告诉它做什么。
  • 1:33 - 1:37
    系统的一部分负责下述工作。
  • 1:37 - 1:41
    一、把CPU内存中的数据移到GPU内存。
  • 1:41 - 1:45
    二、把数据从GPU移回CPU。如今在C编程语言中,
  • 1:45 - 1:50
    把数据从一个地方移到另一个地方叫做Memcpy。
    那么也很容易理解。在CUDA中,
  • 1:50 - 1:55
    这个不是把数据从CPU移到GPU,就是把数据
  • 1:55 - 1:59
    从GPU移到CPU的命令叫做cudaMemcpy。三、在GPU上分配内存,
  • 1:59 - 2:05
    C语言中,该命令是Malloc,
    对应地CUDA中,命令是cudaMalloc。
  • 2:05 - 2:10
    四、在GPU上调用以并行方式计算的程序。这些程序叫做内核
  • 2:10 - 2:12
    一句话中有很多行话。比如
  • 2:15 - 2:19
    主机在设备上启动内核。
タイトル:
CS344_Unit1_13_l_CUDA程序的图解
概説:

more » « less
Video Language:
English
Team:
Udacity
プロジェクト:
CS344 - Intro to Parallel Programming
Duration:
02:20

Chinese, Simplified subtitles

未完了

改訂 Compare revisions