Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cuda.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
651.26 Кб
Скачать

3.2 Скорость выполнения программы

Вычисления производятся на видеокарте GeForce 8600 GT с 32 ядрами CUDA (с частотой ядра 0,54ГГц) и на одном ядре двуядерного процессора AMD Athlon64 Х2 (с частотой ядра 2,2ГГц).

В таблице 3.1 представлены результаты вычислений. Здесь стоит сделать поправку на то, что на CPU вычисления идут на языке Java, который медленнее языка С до нескольких раз.

Таблица 3.1 - Время расчета на CPU и GPU при числе временных интервалов равном 50

число частиц N

время расчета на CPU,

с

время расчета на GPU,

с

ускорение на GPU по сравнению с CPU,

раз

ошибок при отклонении ξ , рассчитанной на GPU, от ξ, рассчитанной на CPU, >=0,99,

%

1000

4,3

0,2

20,6

1,6

2000

18

0,6

32,8

0,5

3000

40,6

1

40,2

0,97

4000

86,3

1,7

49,8

0,53

5000

146,7

2,5

58,7

0,16

6000

218

3,3

64,8

0,6

7000

297

4,5

65,3

0,9

8000

390

5,8

66,2

0,1

9000

495

7,2

69,2

0,1

10000

613

8,8

70

0,36

На основе полученных результатов строятся график времени выполнения программы на GPU и CPU (рисунок 3.3) и график ускорения вычислений на GPU по сравнению с CPU (рисунок 3.4) в зависимости от числа частиц.

Рисунок 3.3 - Время выполнения программы на GPU и CPU

Рисунок 3.4 - Ускорение вычислений на GPU по сравнению с CPU

Ускорение вычислений на GPU по сравнению с CPU постепенно увеличивается, однако при дальнейшем увеличении числа частиц меняется слабо.

3.3 Размер блока

Как уже говорилось, параметр ‘BLOCKSIZE’ (размер блока - показывает число потоков, обрабатывающих блок данных, а также размер этого блока данных) должен быть кратным числу частиц, иначе вычисления будут происходить неправильно. В то же время изменение ‘BLOCKSIZE’ не приводит к существенному изменению скорости выполнения программы (таблица 3.2), за исключением случаев, когда ‘BLOCKSIZE’ существенно меньше числа ядер в GPU и больше 250 (в данных случаях программа выполняется медленнее). В данной программе размер блока равен 100.

Таблица 3.2 - Время расчета на GPU в зависимости от размера блока при числе интервалов изменения положения частиц равном 50

число частиц N

размера блока

время расчета на GPU,

с

20000

8

59,48

16

35,30

20

32,63

25

31,37

32

31,09

50

31,38

80

31

100

31,7

200

31,79

250

32,32

500

32,5