Return to Video

01-19 CUDA Program Diagram

  • 0:00 - 0:04
    Компьютеры которые мы используем в этом курсе называются гетерогенными.
  • 0:04 - 0:08
    У них есть два различных процессора CPU и GPU.
  • 0:08 - 0:15
    И если вы пишите простую программу на С, ваш код будет запускаться только на CPU.
  • 0:15 - 0:18
    Как нам написать код который будет запускаться на GPU?
  • 0:18 - 0:20
    Вот тут возникает CUDA.
  • 0:20 - 0:25
    Программная модель CUDA позволяет нам программировать оба процессора одной программой
  • 0:25 - 0:28
    так что мы можем использовать мощь GPU в наших программах.
  • 0:28 - 0:32
    CUDA поддерживает много языков, но в этом классе мы используем C.
  • 0:32 - 0:37
    Часть CUDA программы это обыкновенный C и он будет запускаться на вашем CPU.
  • 0:37 - 0:39
    CUDA называет это host.
  • 0:39 - 0:43
    Другая часть вашей программы будет запускаться на GPU параллельно.
  • 0:43 - 0:46
    Она тоже написана на C, но с некоторыми расширениями, которые мы используем чтобы отразить параллелизм.
  • 0:46 - 0:50
    В CUDA GPU называется device.
  • 0:50 - 0:54
    Когда компилятор CUDA компилирует вашу программу, он разделяет ее на части
  • 0:54 - 0:59
    которые будут запускаться на CPU и GPU, и генерирует код для обоих.
  • 0:59 - 1:05
    CUDA предполагает, что device (GPU) это со-процессор для host'а(CPU).
  • 1:05 - 1:11
    Так же предполагается, что host и device имеют свои собственные области памяти, где они хранят данные.
  • 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
    Он запускает главную программу и посылает команды GPU, чтобы сказать, что ему делать.
  • 1:33 - 1:37
    Эта часть системы, которая отвечает за следущее
  • 1:37 - 1:41
    1. перемещение данных из память CPU в память GPU
  • 1:41 - 1:45
    2. перемещение данных от GPU обратно CPU.
  • 1:45 - 1:50
    В C-программе перемещение данных из одного мета в другое называется Memcpy.
  • 1:50 - 1:55
    B логично, что в CUDA эта команда также перемещает данные от СPU в GPU
  • 1:55 - 1:59
    или перемещает данные от GPU в CPU, она называется cudaMemcpy.
  • 1:59 - 2:05
    3. аллокация памяти на GPU, в C это команда malloc, а в CUDA - cudaMalloc.
  • 2:05 - 2:10
    4. вызов программ на GPU, которые выполняются параллельно.
  • 2:10 - 2:12
    Эти программы называются kernelы.
  • 2:12 - 2:15
    Вот много жаргона одной фразой.
  • 2:15 - 2:19
    Мы говорим, что host запускает kernel на device.
タイトル:
01-19 CUDA Program Diagram
概説:

more » « less
Video Language:
English
Team:
Udacity
プロジェクト:
CS344 - Intro to Parallel Programming
Duration:
02:20
Алексей Горячих edited ロシア語 subtitles for 01-19 CUDA Program Diagram

Russian subtitles

改訂