Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Технологія СUDA

Реферат Технологія СUDA





__global__ void pi_kern (CUDA_FLOAT * res)

{n = threadIdx.x + blockIdx.x * BLOCK_SIZE; _FLOAT x0 = n * 1.f/(BLOCK_SIZE * GRID_SIZE);// Началоотрезка інтегрірованія_FLOAT y0 = sqrtf (1 - x0 * x0) ; _FLOAT dx = 1.f/(1.f * BLOCK_SIZE * GRID_SIZE);// Шагінтегрірованія

CUDA_FLOAT s = 0;// Значення інтеграла по відрізку, данномутекущему тред

CUDA_FLOAT x1, y1; = x0 + dx; = sqrtf (1 - x1 * x1); = (y0 + y1) * dx/2.f ;//Площа трапеції

res [n] = s ;//Запис результату в глобальну пам'ять

} main (int argc, char ** argv)

{_t time; _FLOAT * res_d ;//Результати на пристрої

CUDA_FLOAT res [GRID_SIZE * BLOCK_SIZE] ;//Результати в хостової пам'яті ((void **) & res_d, sizeof (CUDA_FLOAT) * GRID_SIZE *

BLOCK_SIZE) ;//Виділення пам'яті на CPUл

// Розмір гріду та блоку на GPU

dim3 grid (GRID_SIZE); block (BLOCK_SIZE); = clock (); _kern <<>> (res_d) ;//Запуск ядра () ;/ /Очікуємо завершення роботи ядра (res, res_d, sizeof (CUDA_FLOAT) * GRID_SIZE * BLOCK_SIZE,) ;//Копіюємо результати на хост (res_d) ;//Визволяємо пам'ять на GPU_FLOAT pi = 0; (int i = 0; i < GRID_SIZE * BLOCK_SIZE; i + +)

{+ = res [i];

} * = 4; = clock () - time; ("PI =% .12 f n", pi); ("% .4 f", (double) time/CLOCKS_PER_SEC) ;

getch (); 0;

}

Технічний висновок програми

Розрахунки проводилися 10 разів. 100 000 000 доданок для вирішення числа PI, час роботи програми 35 ~ 37 секунд


Розрахунок на CPU

Потоки, align = "justify"> На CPU 100 000 000 ітерацій займає 598 секунд.



Висновки


При розрахунку числа Пі на CPU за результатами виконаної роботи стало відомо, що чим більше кількість ітерацій, тим ефективніше працює паралельний алгоритм. p align="justify"> Найефективніше - кількість потоків = кількості ядер процесора.

На не великих кількостях ітерацій система hyper-t не дає переваги, за рахунок того, що потоки занадто швидко закінчують свою дію. Але при більш великих обсягах обчислень, hyper-t дозволяє і далі збільшувати продуктивність потокового програмування, за рахунок подвоєння числа реально працюючих в паралельному режимі потоків, приблизно на 20%. p align="justify"> На більш високих значеннях кількості ітерацій максимальне прискорення досягається на 8 потоках, через те, що даний процесор підтримує технологію HyperThreading.

У процесорах з використанням цієї технології кожен фізичний процесор може зберігати стан відразу двох потоків, що для операційної системи виглядає як наявність двох логічних пр...


Назад | сторінка 9 з 13 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Зміст і методика роботи по розділу "Кількість і рахунок" в дошкіл ...
  • Реферат на тему: Рішення нелінійних рівнянь методом ітерацій
  • Реферат на тему: Рішення двовимірного рівняння Пуассона методом блокових ітерацій
  • Реферат на тему: Розв'язання алгебраїчніх рівнянь. Метод простий ітерацій та Ньютона
  • Реферат на тему: Визначення числа підприємств, обсягу продукції, середньооблікового числа пр ...