SlideShare a Scribd company logo
Большинство суперкомпьютеров
(список top500.org) – гетерогенные среды.
CPU : GPU = 1 : n (n = 1, 2, 3,…)
Технологии GPGPU. Практическое
применение

Кизько Б. А.,
5085/2, ИИТ, ФГБОУ ВПО СПбГПУ
07.05.2013
GPU

CPU
vs
GPU
Гораздо больше транзисторов GPU
отведено на обработку данных,
а не на управление исполнением
(т.н. Flow control)
GPGPU до 2007 года

Шейдерные языки Cg, GLSL и HLSL
GLSL – OpenGL
HLSL – Microsoft DirectX
1.Широкая поддержка оборудования.
2.Отсутствие готовых библиотек.
3.Необходимо знание специализированного
языка
4.Привязка к графическим API.
NVIDIA Compute Unified Device
Architecture
Язык программирования C с расширениями
Распространённость GPU
GeForce 8, 9, 100, 200, 300, 400, 500, 600, 700
NVIDIA Compute Unified Device Architecture
GPU – сопроцессор (device) для CPU (host)
Собственная память (память устройства, device
memory)
Параллельная обработка множества потоков
Ядро (kernel) – исполняемая над большим числом
потоков функция с параллелизмом данных
Отличия потоков GPU от CPU:
•Для полной эффективности GPU нужны тысячи
потоков
•Легковесность, низкие накладные расходы на
создание
NVIDIA Compute Unified Device
Architecture
NVIDIA Compute Unified Device
Architecture
SIMD (Single Instruction – Multiple Data)
SIMT (Single Instruction – Multiple Thread)
Несколько видов памяти
(регистры, локальная,
разделяемая, глобальная,
константная, текстурная) с
разными правами доступа
NVIDIA Compute Unified Device
Architecture
Open Compute Language
Khronos Group: AMD, Intel, Motorola, Apple,
NVIDIA, IBM, ARM
2008 г. - OpenCL 1.0
1 декабря 2012 г. - OpenCL 1.2
C99 с новыми ключевыми словами
Открытый стандарт
Широкая поддержка оборудования
Прирост в WinZip 16.5 на AMD APU - 45%
Open Compute Language
CPU (host) управляет OpenCL-устройствами
(devices): CPU, GPU, DSP, …
Open Compute Language
WinZip, ArcSoft, Corel VideoStudio, GIMP,
Mathematica 8, vReveal, Blender, BattleField 3, …
PyOpenCL, WebCL (JS-интерфейс для обработки
вычислений в браузере, поддержка в Firefox и
WebKit), ScalaCL, Ruby-OpenCL
PGI OpenCL Compiler, OpenCL Studio, ZiiLABD
OpenCL SDK
http://openclnews.com/apps
Open Compute Language
AMD OpenCL University Kit
Набор материалов от AMD для обучения
технологии в течение семестра.
13 лекций с примерами кода и набором заданий
http://developer.amd.com/resources/heterogeneouscomputing/opencl-zone/
HSA Foundation

AMD, ARM, Samsung, Texas Instruments,
Qualcomm, MediaTek, Imagination Technologies
Intel
Larrabee -> Xeon Phi
Архитектура x86
Много ядер Pentium в одном чипе с общей памятью
Intel Xeon Phi
Сопроцессор 5110P:
60 ядер Pentium 1GHz с EM64T, 4 потока/ядро 512бит SIMD
512К L2
1 TFLOPS
6/8 Gb GDDR5
RHEL 6.x
SuSE Linux 12
Intel Xeon Phi
Взаимодействие NVIDIA с ВУЗами

269 университетов мира
СПбГПУ, СПбГУ, "Дубна", ОИЯИ,
МИЭТ, МГТУ им. Баумана, МАИ,
"Курчатовский институт",
МГУ им. Ломоносова, ...
декабрь 2009 - научно-образовательный центр
"Параллельные вычисления", Дубна
Список источников
1. Сайты HSA Foundation, NVIDIA, AMD,
Khronos Group
2. thg.ru - подробный обзор Intel Xeon Phi
3. Wikipedia
4. Статьи с habrahabr.ru
5. Сайт научно-образовательного центра
"Параллельные вычисления"
http://www.parallel-compute.ru/
6. opencl.org
7. gpgpu.org
8. Результаты НИР на 3-4 курсах. Научный
руководитель - Семьянов П. В.
Благодарю за внимание!

More Related Content

What's hot

Работа решателей Ansys на российском интерконнекте Ангара
Работа решателей Ansys на российском интерконнекте АнгараРабота решателей Ansys на российском интерконнекте Ангара
Работа решателей Ansys на российском интерконнекте Ангара
Yury Novozhilov
 
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPC
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPCОблачные технологии и решений ANSYS. Новые возможности ANSYS HPC
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPC
Yury Novozhilov
 
Hpc 1.24.02.2013.
Hpc 1.24.02.2013.Hpc 1.24.02.2013.
Hpc 1.24.02.2013.Boris Kizko
 
Пути увеличения эффективности реализации алгоритмов машинного обучения
Пути увеличения эффективности реализации алгоритмов машинного обученияПути увеличения эффективности реализации алгоритмов машинного обучения
Пути увеличения эффективности реализации алгоритмов машинного обучения
Andrew Babiy
 
О создании компилятора с высокоуровневого языка на компьютер с программируемо...
О создании компилятора с высокоуровневого языка на компьютер с программируемо...О создании компилятора с высокоуровневого языка на компьютер с программируемо...
О создании компилятора с высокоуровневого языка на компьютер с программируемо...
CEE-SEC(R)
 
Hl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 PantyukhinHl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 PantyukhinHighLoad2009
 
презентация на защиту 06.06
презентация на защиту 06.06презентация на защиту 06.06
презентация на защиту 06.06Boris Kizko
 
презентацияевстафьева
презентацияевстафьевапрезентацияевстафьева
презентацияевстафьеваsasha4334556
 

What's hot (9)

Conflux: GPGPU .NET
Conflux: GPGPU .NETConflux: GPGPU .NET
Conflux: GPGPU .NET
 
Работа решателей Ansys на российском интерконнекте Ангара
Работа решателей Ansys на российском интерконнекте АнгараРабота решателей Ansys на российском интерконнекте Ангара
Работа решателей Ansys на российском интерконнекте Ангара
 
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPC
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPCОблачные технологии и решений ANSYS. Новые возможности ANSYS HPC
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPC
 
Hpc 1.24.02.2013.
Hpc 1.24.02.2013.Hpc 1.24.02.2013.
Hpc 1.24.02.2013.
 
Пути увеличения эффективности реализации алгоритмов машинного обучения
Пути увеличения эффективности реализации алгоритмов машинного обученияПути увеличения эффективности реализации алгоритмов машинного обучения
Пути увеличения эффективности реализации алгоритмов машинного обучения
 
О создании компилятора с высокоуровневого языка на компьютер с программируемо...
О создании компилятора с высокоуровневого языка на компьютер с программируемо...О создании компилятора с высокоуровневого языка на компьютер с программируемо...
О создании компилятора с высокоуровневого языка на компьютер с программируемо...
 
Hl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 PantyukhinHl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 Pantyukhin
 
презентация на защиту 06.06
презентация на защиту 06.06презентация на защиту 06.06
презентация на защиту 06.06
 
презентацияевстафьева
презентацияевстафьевапрезентацияевстафьева
презентацияевстафьева
 

Similar to Cuda, OpenCL

Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)
Mikhail Kurnosov
 
Параллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартахПараллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартах
Alex Tutubalin
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
White Nights Conference
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Mikhail Kurnosov
 
Сервисы Azure для научных исследований
Сервисы Azure для научных исследованийСервисы Azure для научных исследований
Сервисы Azure для научных исследований
Microsoft
 
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможностиКластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможности
Alexey Demidchuk
 
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обменыЛекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Alexey Paznikov
 
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Mikhail Kurnosov
 
Flame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилированиеFlame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилирование
Кирилл Борисов
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
 
02 История Open-Source Hardware - Олег Садов
02 История Open-Source Hardware - Олег Садов02 История Open-Source Hardware - Олег Садов
02 История Open-Source Hardware - Олег СадовAlexander Chemeris
 
Лекция 9. Программирование GPU
Лекция 9. Программирование GPUЛекция 9. Программирование GPU
Лекция 9. Программирование GPU
Mikhail Kurnosov
 
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray Chapel
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray ChapelЛекция 12 (часть 1): Языки программирования семейства PGAS: Cray Chapel
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray ChapelMikhail Kurnosov
 
Инструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learningИнструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learning
Skolkovo Robotics Center
 
Net framework
Net frameworkNet framework
Net framework
poverhnost
 
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAЛекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAMikhail Kurnosov
 
New Android NDK & JNI
New Android NDK & JNINew Android NDK & JNI
New Android NDK & JNI
Stfalcon Meetups
 
Язык параллельного программирования Cray Chapel
Язык параллельного программирования Cray ChapelЯзык параллельного программирования Cray Chapel
Язык параллельного программирования Cray ChapelMikhail Kurnosov
 
Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3
eucariot
 
IForum 2016: Никита Семенов. Серьезный подход к серьезным проектам
IForum 2016: Никита Семенов. Серьезный подход к серьезным проектамIForum 2016: Никита Семенов. Серьезный подход к серьезным проектам
IForum 2016: Никита Семенов. Серьезный подход к серьезным проектам
SECL
 

Similar to Cuda, OpenCL (20)

Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)Семинар 8. Параллельное программирование на MPI (часть 1)
Семинар 8. Параллельное программирование на MPI (часть 1)
 
Параллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартахПараллельное программирование на современных видеокартах
Параллельное программирование на современных видеокартах
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
 
Сервисы Azure для научных исследований
Сервисы Azure для научных исследованийСервисы Azure для научных исследований
Сервисы Azure для научных исследований
 
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможностиКластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможности
 
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обменыЛекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
 
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)Семинар 1. Многопоточное программирование на OpenMP (часть 1)
Семинар 1. Многопоточное программирование на OpenMP (часть 1)
 
Flame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилированиеFlame graph: новый взгляд на старое профилирование
Flame graph: новый взгляд на старое профилирование
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
02 История Open-Source Hardware - Олег Садов
02 История Open-Source Hardware - Олег Садов02 История Open-Source Hardware - Олег Садов
02 История Open-Source Hardware - Олег Садов
 
Лекция 9. Программирование GPU
Лекция 9. Программирование GPUЛекция 9. Программирование GPU
Лекция 9. Программирование GPU
 
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray Chapel
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray ChapelЛекция 12 (часть 1): Языки программирования семейства PGAS: Cray Chapel
Лекция 12 (часть 1): Языки программирования семейства PGAS: Cray Chapel
 
Инструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learningИнструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learning
 
Net framework
Net frameworkNet framework
Net framework
 
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAЛекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
 
New Android NDK & JNI
New Android NDK & JNINew Android NDK & JNI
New Android NDK & JNI
 
Язык параллельного программирования Cray Chapel
Язык параллельного программирования Cray ChapelЯзык параллельного программирования Cray Chapel
Язык параллельного программирования Cray Chapel
 
Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3
 
IForum 2016: Никита Семенов. Серьезный подход к серьезным проектам
IForum 2016: Никита Семенов. Серьезный подход к серьезным проектамIForum 2016: Никита Семенов. Серьезный подход к серьезным проектам
IForum 2016: Никита Семенов. Серьезный подход к серьезным проектам
 

More from Boris Kizko

Security cores 5.11.13
Security cores   5.11.13Security cores   5.11.13
Security cores 5.11.13Boris Kizko
 
Security cores 1.10.13
Security cores   1.10.13Security cores   1.10.13
Security cores 1.10.13Boris Kizko
 
Неделя науки 2013 СПбГПУ
Неделя науки 2013 СПбГПУНеделя науки 2013 СПбГПУ
Неделя науки 2013 СПбГПУBoris Kizko
 
Асимметричная криптография
Асимметричная криптографияАсимметричная криптография
Асимметричная криптографияBoris Kizko
 
Компьютерные вирусы
Компьютерные вирусыКомпьютерные вирусы
Компьютерные вирусыBoris Kizko
 
Dbs prezentation
Dbs prezentationDbs prezentation
Dbs prezentationBoris Kizko
 
спутниковые радионавигационные системы
спутниковые радионавигационные системыспутниковые радионавигационные системы
спутниковые радионавигационные системыBoris Kizko
 

More from Boris Kizko (9)

Security cores 5.11.13
Security cores   5.11.13Security cores   5.11.13
Security cores 5.11.13
 
Security cores 1.10.13
Security cores   1.10.13Security cores   1.10.13
Security cores 1.10.13
 
Неделя науки 2013 СПбГПУ
Неделя науки 2013 СПбГПУНеделя науки 2013 СПбГПУ
Неделя науки 2013 СПбГПУ
 
Асимметричная криптография
Асимметричная криптографияАсимметричная криптография
Асимметричная криптография
 
Trojans, worms
Trojans, wormsTrojans, worms
Trojans, worms
 
Backdoors
BackdoorsBackdoors
Backdoors
 
Компьютерные вирусы
Компьютерные вирусыКомпьютерные вирусы
Компьютерные вирусы
 
Dbs prezentation
Dbs prezentationDbs prezentation
Dbs prezentation
 
спутниковые радионавигационные системы
спутниковые радионавигационные системыспутниковые радионавигационные системы
спутниковые радионавигационные системы
 

Cuda, OpenCL

  • 1. Большинство суперкомпьютеров (список top500.org) – гетерогенные среды. CPU : GPU = 1 : n (n = 1, 2, 3,…)
  • 2. Технологии GPGPU. Практическое применение Кизько Б. А., 5085/2, ИИТ, ФГБОУ ВПО СПбГПУ 07.05.2013
  • 3. GPU CPU vs GPU Гораздо больше транзисторов GPU отведено на обработку данных, а не на управление исполнением (т.н. Flow control)
  • 4.
  • 5. GPGPU до 2007 года Шейдерные языки Cg, GLSL и HLSL GLSL – OpenGL HLSL – Microsoft DirectX 1.Широкая поддержка оборудования. 2.Отсутствие готовых библиотек. 3.Необходимо знание специализированного языка 4.Привязка к графическим API.
  • 6. NVIDIA Compute Unified Device Architecture Язык программирования C с расширениями Распространённость GPU GeForce 8, 9, 100, 200, 300, 400, 500, 600, 700
  • 7. NVIDIA Compute Unified Device Architecture GPU – сопроцессор (device) для CPU (host) Собственная память (память устройства, device memory) Параллельная обработка множества потоков Ядро (kernel) – исполняемая над большим числом потоков функция с параллелизмом данных Отличия потоков GPU от CPU: •Для полной эффективности GPU нужны тысячи потоков •Легковесность, низкие накладные расходы на создание
  • 8. NVIDIA Compute Unified Device Architecture
  • 9. NVIDIA Compute Unified Device Architecture SIMD (Single Instruction – Multiple Data) SIMT (Single Instruction – Multiple Thread) Несколько видов памяти (регистры, локальная, разделяемая, глобальная, константная, текстурная) с разными правами доступа
  • 10. NVIDIA Compute Unified Device Architecture
  • 11. Open Compute Language Khronos Group: AMD, Intel, Motorola, Apple, NVIDIA, IBM, ARM 2008 г. - OpenCL 1.0 1 декабря 2012 г. - OpenCL 1.2 C99 с новыми ключевыми словами Открытый стандарт Широкая поддержка оборудования Прирост в WinZip 16.5 на AMD APU - 45%
  • 12. Open Compute Language CPU (host) управляет OpenCL-устройствами (devices): CPU, GPU, DSP, …
  • 13. Open Compute Language WinZip, ArcSoft, Corel VideoStudio, GIMP, Mathematica 8, vReveal, Blender, BattleField 3, … PyOpenCL, WebCL (JS-интерфейс для обработки вычислений в браузере, поддержка в Firefox и WebKit), ScalaCL, Ruby-OpenCL PGI OpenCL Compiler, OpenCL Studio, ZiiLABD OpenCL SDK http://openclnews.com/apps
  • 14. Open Compute Language AMD OpenCL University Kit Набор материалов от AMD для обучения технологии в течение семестра. 13 лекций с примерами кода и набором заданий http://developer.amd.com/resources/heterogeneouscomputing/opencl-zone/
  • 15. HSA Foundation AMD, ARM, Samsung, Texas Instruments, Qualcomm, MediaTek, Imagination Technologies
  • 16. Intel Larrabee -> Xeon Phi Архитектура x86 Много ядер Pentium в одном чипе с общей памятью
  • 17. Intel Xeon Phi Сопроцессор 5110P: 60 ядер Pentium 1GHz с EM64T, 4 потока/ядро 512бит SIMD 512К L2 1 TFLOPS 6/8 Gb GDDR5 RHEL 6.x SuSE Linux 12
  • 19. Взаимодействие NVIDIA с ВУЗами 269 университетов мира СПбГПУ, СПбГУ, "Дубна", ОИЯИ, МИЭТ, МГТУ им. Баумана, МАИ, "Курчатовский институт", МГУ им. Ломоносова, ... декабрь 2009 - научно-образовательный центр "Параллельные вычисления", Дубна
  • 20. Список источников 1. Сайты HSA Foundation, NVIDIA, AMD, Khronos Group 2. thg.ru - подробный обзор Intel Xeon Phi 3. Wikipedia 4. Статьи с habrahabr.ru 5. Сайт научно-образовательного центра "Параллельные вычисления" http://www.parallel-compute.ru/ 6. opencl.org 7. gpgpu.org 8. Результаты НИР на 3-4 курсах. Научный руководитель - Семьянов П. В.