Лабораторная 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)

 

Варианты заданий

  1. Написание программы «Hello, World!» на CUDA
  2. Написание программы «Hello, World!» на OpenCl
  3. Вывести фразу 10 раз
  4. Вычислить функции корня из аргумента
  5. Перемножить два массива
  6. Вычислить значения функции синуса
  7. Вывести на экран числа от 1 до 65535
  8. Задать массив чисел от 1 до 512 и инвертировать его
  9. Вычислить функцию тангенса
  10. Вычислить функцию синус икс делить на икс.
  11.  Вычислить функцию косинуса
  12.  Вычислить функцию экспоненты
  13.  Задать массив чисел и вычислить их квадраты
  14.  Создать 10^8 чисел
  15.  Получить полином из чисел
  16.  Получить палиндром

 

Литература

  1. 1.  Боресков А.В., Харламов А.В. Основы работы с технологией CUDA. – Изд-во: ДМК Пресс, 2010, 232 стр

 

Варианты заданий составлены проф. Зайцевым В.Е, проф. Ревизниковым Д.Л. и м.н.с. Семеновым С.А.

 

 

  • Нет меток