Лабораторная 1
Лабораторная работа №1 по курсу ПОД: 2015/16 уч. года Освоение программного обеспечения среды программирования NVIDIA
Общий вид команд для запуска ядра
incKernel<<<bl, th, ns, st>>> ( data );
bl - число блоков в сетке
th - число нитей в сетке
ns - количество дополнительной shared памяти, выделенной блоку
st - поток, в котором нужно запустить ядро
Основы CUDA API
char * cudaGetErrorString ( cudaError_t );
cudaError_t cudaGetLastError ();
cudaError_t cudaThreadSynchronize ();
cudaError_t cudaEventCreate ( cudaEvent_t * );
cudaError_t cudaEventRecord ( cudaEvent_t * );
cudaStream_t );
cudaError_t cudaEventQuery ( cudaEvent_t );
cudaError_t cudaEventSynchronize ( cudaEvent_t );
cudaError_t cudeEventElapsedTime ( float * time,
cudaEvent_t start, cudaEvent_t stop );
cudaError_t cudaEventDestroy ( cudaEvent_t );
cudaError_t cudaGetDeviceCount ( int * );
cudaError_t cudaGetDevicePropertis (
cudaDeviceProp * props,
int deviceNo );
Компиляция программ
Используем утилиму make/nmake, явно вызывающую nvcc
Используем MS Visual Studio
подключаем cuda.rules
используем CUDA Wizard (http://sourceforge.net/projects/cudawizard)
Общие правила по оформлению программ
Программа должна делать проверки на ошибки:
- Наличие аппаратной поддержки CUDA
- Открылся ли файл исходных данных
- Правилен ли формат данных?
Программа должна быть скомпилирована с опцией Release и запускаться на Windows 7 с CUDA Toolkit 7.0
Программа должна компилироваться. Для этого должен быть приложен vcproj для VS2010 либо (makefile + .bat)
Варианты заданий
- Написание программы «Hello, World!» на CUDA
- Написание программы «Hello, World!» на OpenCl
- Вывести фразу 10 раз
- Вычислить функции корня из аргумента
- Перемножить два массива
- Вычислить значения функции синуса
- Вывести на экран числа от 1 до 65535
- Задать массив чисел от 1 до 512 и инвертировать его
- Вычислить функцию тангенса
- Вычислить функцию синус икс делить на икс.
- Вычислить функцию косинуса
- Вычислить функцию экспоненты
- Задать массив чисел и вычислить их квадраты
- Создать 10^8 чисел
- Получить полином из чисел
- Получить палиндром
Литература
- 1. Боресков А.В., Харламов А.В. Основы работы с технологией CUDA. – Изд-во: ДМК Пресс, 2010, 232 стр
Варианты заданий составлены проф. Зайцевым В.Е, проф. Ревизниковым Д.Л. и м.н.с. Семеновым С.А.