Tramplin

  • 13 мая 2012 г.
  • 307 Слова
Курсовая работа

Студента 323 группы Воропаева Романа По теме «Технология JCuda».

Цель работы.
Целью моей работы являлось сравнение производительности программ, использующих технологию CUDA ипроизводящих вычисления на видеокарте и программ, не использующих CUDA и производящих вычисления на центральном процессоре.

Подзадачи.


изучить основные возможности технологии CUDA ивозможности их применения в связке с языком Java. Написать программы на языке Java, реализующие один и тот же алгоритм с одинаковым размером входных данных. Одна программа должна производить вычисления «обычным»методом на центральном процессоре в один поток выполнения, а другая использовать CUDA при вычислениях.



Вычисления GPGPU.
● ● ●

Конец роста частот процессоров Новый многоядерный подходНеобходимость новой парадигмы программирования Видеоускорители изначально были предназначены для массивных параллельных вычислений.



CUDA
● ●

Технология Nvidia Популярная модель программированияGPGPU для С/С++ Представляет собой расширение С



Архитектура CUDA


Множество независимых потоков(threads), обьеденных в блоки(blocks), образующие сетку (grid) Все потоки исполняют одини тот же код, но над разными данными Существует глобальная память и разделяемая (shared) между потоками одного блока Оперативная память и видеопамять независимы







Стандартная схемаработы с CUDA
1) Инициализация ресурсов 2) Загрузка данных для обработки из основной памяти в видеопамять 3) Вызов ядер-обработчиков напрямую или косвенно через библиотеки 4) Исполнение ядра во множествепотоков с доступом к видеопамяти 5) Выгрузка обратно в оперативную память 6) Освобождение ресурсов

Библиотека JCuda


Библиотека JCuda (jcuda.org) является проектом с открытым исходным кодомИнтерфейс взаимодействия Java и CUDA Alpha-версия Реализован посредством JNI







Структура


Библиотека содержит пакеты jcublas, jcudpp, jcufft, jcuda.runtime,...
tracking img