11. Tesla K10 Tesla K20
3x одинарная точность 3x двойная точность
1.8x пропусная способность памяти Hyper-Q, Dynamic Parallelism
Обработка изображений, сигналов, CFD, FEA, финансы, физика
сейсморазведка
Уже доступно Доступно в Q4 2012
11
12. Tesla K10
Тоже потребление, 2x производительность Fermi
Product Name M2090 K10
GPU Architecture Fermi Kepler GK104
# of GPUs 1 2
Board Per GPU
Single Precision Flops 1.3 TF 4.58 TF 2.29 TF
Double Precision Flops 0.66 TF 0.190 TF 0.095 TF
# CUDA Cores 512 3072 1536
Memory size 6 GB 8 GB 4GB
Memory BW (ECC off) 177.6 GB/s 320 GB/s 160GB/s
PCI-Express Gen 2 Gen 3 (Gen 2 compatible)
Board Power 225 watts 225 watts
12
13. K10 для нефтегаза 2
сейсмоанализ
1.5
1
0.5
0
• 1.8X симуляций в день для
более точных моделей
• Ниже риски и выше надежность
• 2X GPU в том же формате
13
14. K10 для обороны
Числовая аналитика
2
1.5
1
0.5
0
M2090 k10
• 1.9X вычислений в день для более точных моделей
• Быстрее аналитика и точнее решения
• 2X GPU в том же формате
14
15. K10 для биоинформатики
3
2.5
2
1.5
1
0.5
0
• 2.2X симуляций для приложений МД
• Большие эксперименты на меньших кластерах
• 2X GPU в том же формате
Gromacs 4.6 pre-beta version
* 2 instances of AMBER 12 (with beta patch)
15
16. Tesla K10 vs M2090: 2x производительность / Ватт
2.50
2.00
1.50
1.00
0.50
0.00
Seismic LAMMPS NAMD AMBER* Radio Nbody Defense
Processing Astronomy (Integer Ops)
Cross-Correlator
* 2 instances of AMBER running JAC 16
21. NVIDIA cuBLAS NVIDIA cuRAND NVIDIA cuSPARSE NVIDIA NPP
Vector Signal GPU Accelerated Matrix Algebra on
Image Processing Linear Algebra GPU and Multicore NVIDIA cuFFT
Sparse Linear Building-block C++ STL Features
IMSL Library Algebra Algorithms for CUDA for CUDA
Библиотеки для GPU
“Copy-paste” для ускорения приложений
21
22. Директивы OpenACC
CPU GPU
Простые указатели для
компилятора
Program myscience
... serial code ...
!$acc kernels Компилятор параллелизует
код
do k = 1,n1
do i = 1,n2
OpenACC метки
... parallel code ... для компилятора
enddo
Работает на многоядерных
enddo
!$acc end kernels
...
End Program myscience CPU и массивно
Исходный код параллельных GPU
на C/Fortran 22
23. Минимум усилий. Ощутимый результат
Модель жизненного Звезды и галактики Нейросети для
цикла морской фауны 12.5 млрд лет назад самообучаемых роботов
Университет Мельбурна Университет Гронингена Университет Плимута
65x за 2 для 5.6x за 5 дней 4.7x за 4 часа
23
24. Воркшоп по OpenACC
в суперкомпьютерном центре Питсбурга
К концу второго дня
получено 10-кратное ускорение одного из атмосферных ядер
6 директив
Technology Director
National Center for Atmospheric
Research (NCAR)
24
25. Поддержка языков C, C++, Fortran моделью
параллельного программирования CUDA
GPU Computing Applications
Libraries and Middleware
cuFFT PhysX
LAPACK NPP VSIPL iray
cuBLAS Video MATLAB
CULA cuDPP SVM Rendering
cuRAND OptiX Ray Mathematica
MAGMA Thrust OpenCurrent RealityServer
cuSPARSE tracing
Java
Python Direct
C++ C Fortran OpenCL tm
Wrappers Compute
NVIDIA GPU
CUDA Parallel Computing Architecture
OpenCL is trademark of Apple Inc. used under license to the Khronos Group25
Inc.
26. C для CUDA : C + «синтаксический сахар»
void saxpy_serial(int n, float a, float *x, float *y)
{
for (int i = 0; i < n; ++i)
y[i] = a*x[i] + y[i];
} Стандартный код C
// Invoke serial SAXPY kernel
saxpy_serial(n, 2.0, x, y);
__global__ void saxpy_parallel(int n, float a, float *x, float *y)
{
int i = blockIdx.x*blockDim.x + threadIdx.x;
if (i < n) y[i] = a*x[i] + y[i];
}
Параллельный код C
// Invoke parallel SAXPY kernel with 256 threads/block
int nblocks = (n + 255) / 256;
saxpy_parallel<<<nblocks, 256>>>(n, 2.0, x, y);
26
27. NVIDIA делает платформу CUDA открытой благодаря LLVM
CUDA Поддержка
CUDA бэкенд теперь доступен для LLVM C, C++, Fortran новых языков
компилятора
SDK включает документацию, примеры и
верификатор LLVM компилятор
для CUDA
Возможность добавления
поддержки CUDA в новые языки и
процессоры NVIDIA x86 Поддержка
GPUs CPUs Новых процессоров
Подробности
http://developer.nvidia.com/cuda-source
27
28. Kepler: впервые полноценная поддержка GPUDirect™
System System
Memory GDDR5 GDDR5 GDDR5 GDDR5 Memory
Memory Memory Memory Memory
CPU GPU1 GPU2 GPU2 GPU1 CPU
PCI-e PCI-e
Network Network Network
Card Card
Сервер 1 Сервер 2
28
29. CUDA в цифрах:
>375,000,000 CUDA GPU на рынке
>1,000,000 скачиваний SDK
>120,000 активных разработчиков
>500 университетов преподают CUDA
29
31. CUDA для ARM
Исследовательская платформа
CUDA GPU Tegra ARM CPU 4-х ядерный процессор
NVIDIA Tegra 3 на базе ARM
NVIDIA CUDA GPU
Gbit сеть
Набор для разработчиков CUDA SDK
http://www.secoqseven.com/en/item/secocq7-mxm/
Доступно сейчас
31