🗊Презентация Работа с CUDA технологией

Нажмите для полного просмотра!
Работа с CUDA технологией, слайд №1Работа с CUDA технологией, слайд №2Работа с CUDA технологией, слайд №3Работа с CUDA технологией, слайд №4Работа с CUDA технологией, слайд №5Работа с CUDA технологией, слайд №6Работа с CUDA технологией, слайд №7Работа с CUDA технологией, слайд №8Работа с CUDA технологией, слайд №9Работа с CUDA технологией, слайд №10Работа с CUDA технологией, слайд №11Работа с CUDA технологией, слайд №12Работа с CUDA технологией, слайд №13Работа с CUDA технологией, слайд №14Работа с CUDA технологией, слайд №15Работа с CUDA технологией, слайд №16Работа с CUDA технологией, слайд №17Работа с CUDA технологией, слайд №18Работа с CUDA технологией, слайд №19Работа с CUDA технологией, слайд №20Работа с CUDA технологией, слайд №21Работа с CUDA технологией, слайд №22Работа с CUDA технологией, слайд №23Работа с CUDA технологией, слайд №24Работа с CUDA технологией, слайд №25Работа с CUDA технологией, слайд №26Работа с CUDA технологией, слайд №27Работа с CUDA технологией, слайд №28Работа с CUDA технологией, слайд №29Работа с CUDA технологией, слайд №30Работа с CUDA технологией, слайд №31Работа с CUDA технологией, слайд №32Работа с CUDA технологией, слайд №33Работа с CUDA технологией, слайд №34Работа с CUDA технологией, слайд №35Работа с CUDA технологией, слайд №36Работа с CUDA технологией, слайд №37Работа с CUDA технологией, слайд №38Работа с CUDA технологией, слайд №39Работа с CUDA технологией, слайд №40Работа с CUDA технологией, слайд №41Работа с CUDA технологией, слайд №42Работа с CUDA технологией, слайд №43Работа с CUDA технологией, слайд №44Работа с CUDA технологией, слайд №45Работа с CUDA технологией, слайд №46

Содержание

Вы можете ознакомиться и скачать презентацию на тему Работа с CUDA технологией. Доклад-сообщение содержит 46 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





РАБОТА С CUDA ТЕХНОЛОГИЕЙ
Необходимые системы.
1.GPU-Z Проверка видеокарты
2. Microsoft Visual Studio 2008
3. NVIDIA CUDA SDK  2.3
4. NVIDIA CUDA Toolkit  2.3
5.CUDA_VS_Wizard - засіб налаштування Visual Studio;
6. NVIDIA Developer Drivers – драйвери відеокарти;
Описание слайда:
РАБОТА С CUDA ТЕХНОЛОГИЕЙ Необходимые системы. 1.GPU-Z Проверка видеокарты 2. Microsoft Visual Studio 2008 3. NVIDIA CUDA SDK 2.3 4. NVIDIA CUDA Toolkit 2.3 5.CUDA_VS_Wizard - засіб налаштування Visual Studio; 6. NVIDIA Developer Drivers – драйвери відеокарти;

Слайд 2





Проверка Видеокарты

Запускаем программу GPU-Z.exe
Описание слайда:
Проверка Видеокарты Запускаем программу GPU-Z.exe

Слайд 3





Порядок встановлення NVIDIA CUDA SDK
Описание слайда:
Порядок встановлення NVIDIA CUDA SDK

Слайд 4





Порядок встановлення NVIDIA CUDA SDK
Описание слайда:
Порядок встановлення NVIDIA CUDA SDK

Слайд 5





Порядок встановлення NVIDIA CUDA SDK
Описание слайда:
Порядок встановлення NVIDIA CUDA SDK

Слайд 6





Порядок встановлення NVIDIA CUDA SDK
Описание слайда:
Порядок встановлення NVIDIA CUDA SDK

Слайд 7





Порядок встановлення NVIDIA CUDA SDK
Описание слайда:
Порядок встановлення NVIDIA CUDA SDK

Слайд 8





Порядок встановлення NVIDIA CUDA SDK
Описание слайда:
Порядок встановлення NVIDIA CUDA SDK

Слайд 9





Порядок встановлення NVIDIA CUDA SDK
Описание слайда:
Порядок встановлення NVIDIA CUDA SDK

Слайд 10





Порядок встановлення NVIDIA CUDA SDK
Описание слайда:
Порядок встановлення NVIDIA CUDA SDK

Слайд 11





Проверяем установлен ли компилятор nvcc
Описание слайда:
Проверяем установлен ли компилятор nvcc

Слайд 12





Встановлення і налаштування NVIDIA CUDA Toolkit
Описание слайда:
Встановлення і налаштування NVIDIA CUDA Toolkit

Слайд 13





Встановлення і налаштування NVIDIA CUDA Toolkit
Описание слайда:
Встановлення і налаштування NVIDIA CUDA Toolkit

Слайд 14





Встановлення і налаштування NVIDIA CUDA Toolkit
Описание слайда:
Встановлення і налаштування NVIDIA CUDA Toolkit

Слайд 15





Встановлення і налаштування NVIDIA CUDA Toolkit
Описание слайда:
Встановлення і налаштування NVIDIA CUDA Toolkit

Слайд 16





Встановлення і налаштування NVIDIA CUDA Toolkit
Описание слайда:
Встановлення і налаштування NVIDIA CUDA Toolkit

Слайд 17





Встановлення і налаштування NVIDIA CUDA Toolkit
Описание слайда:
Встановлення і налаштування NVIDIA CUDA Toolkit

Слайд 18





Проверка компилятора CUDA

Пуск->Выполнить
Описание слайда:
Проверка компилятора CUDA Пуск->Выполнить

Слайд 19





Проверка работы CUDA-компилятора
Описание слайда:
Проверка работы CUDA-компилятора

Слайд 20





Подключение библиотек

Зайти в Tools  Options  Projects and Solutions  VC++ Directories
Открыть вкладка Executable files
добавить новый параметр и ввести 
C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\bin
 либо $(CUDA_BIN_PATH)
Описание слайда:
Подключение библиотек Зайти в Tools  Options  Projects and Solutions  VC++ Directories Открыть вкладка Executable files добавить новый параметр и ввести C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\bin либо $(CUDA_BIN_PATH)

Слайд 21





Подключение библиотек
Открыть вкладку Include files
добавить новый параметр и ввести С:\ CUDA\include, либо $(CUDA_INC_PATH)
добавить новый параметр и ввести C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\inc, либо $(NVSDKCUDA_ROOT)\common\inc
Описание слайда:
Подключение библиотек Открыть вкладку Include files добавить новый параметр и ввести С:\ CUDA\include, либо $(CUDA_INC_PATH) добавить новый параметр и ввести C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\inc, либо $(NVSDKCUDA_ROOT)\common\inc

Слайд 22





Подключение библиотек
Открыть вкладку Library files
Добавить новый параметр и ввести С:\CUDA\lib, либо $(CUDA_LIB_PATH)
Добавить новый параметр и ввести C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\lib, либо $(NVSDKCUDA_ROOT)\common\lib
Описание слайда:
Подключение библиотек Открыть вкладку Library files Добавить новый параметр и ввести С:\CUDA\lib, либо $(CUDA_LIB_PATH) Добавить новый параметр и ввести C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\common\lib, либо $(NVSDKCUDA_ROOT)\common\lib

Слайд 23





File  New  Project
Описание слайда:
File  New  Project

Слайд 24





Наш проект  - консольное приложение
Описание слайда:
Наш проект - консольное приложение

Слайд 25





Пустой проект
Описание слайда:
Пустой проект

Слайд 26





Работа с CUDA в режиме эмуляции
Описание слайда:
Работа с CUDA в режиме эмуляции

Слайд 27





Работа с CUDA в режиме эмуляции
Описание слайда:
Работа с CUDA в режиме эмуляции

Слайд 28





Интеграция NVidia CUDA с Microsoft Visual Studio
Для того чтобы файлы CUDA (.cu) корректно включались в наши будущие проекты, в Visual Studio 2010 идём в “Сервис -> Параметры” (Tools → Options), выбираем “Проекты и решения → Параметры проекта VC++” (Projects and Solutions → VC++ Project Settings), ищем строчку “включаемые расширения” (Extensions To Include) и добавляем туда расширения “.cu” и “.cu.h”
Описание слайда:
Интеграция NVidia CUDA с Microsoft Visual Studio Для того чтобы файлы CUDA (.cu) корректно включались в наши будущие проекты, в Visual Studio 2010 идём в “Сервис -> Параметры” (Tools → Options), выбираем “Проекты и решения → Параметры проекта VC++” (Projects and Solutions → VC++ Project Settings), ищем строчку “включаемые расширения” (Extensions To Include) и добавляем туда расширения “.cu” и “.cu.h”

Слайд 29





Интеграция NVidia CUDA с Microsoft Visual Studio
Описание слайда:
Интеграция NVidia CUDA с Microsoft Visual Studio

Слайд 30





Интеграция NVidia CUDA с Microsoft Visual Studio
Сервис → Параметры → Текстовый редактор → Файловые расширения” (Tools→Options→ Text Editor→File Extension), добавить новое расширение “cu” и выбрать Microsoft Visual C++ в качестве редактора кода. Это позволит включить С++-подсветку синтаксиса в .cu-файлах;
Описание слайда:
Интеграция NVidia CUDA с Microsoft Visual Studio Сервис → Параметры → Текстовый редактор → Файловые расширения” (Tools→Options→ Text Editor→File Extension), добавить новое расширение “cu” и выбрать Microsoft Visual C++ в качестве редактора кода. Это позволит включить С++-подсветку синтаксиса в .cu-файлах;

Слайд 31





Интеграция NVidia CUDA с Microsoft Visual Studio
Описание слайда:
Интеграция NVidia CUDA с Microsoft Visual Studio

Слайд 32





Выбираем правила построения проекта
Описание слайда:
Выбираем правила построения проекта

Слайд 33





Устанавливаем CUDA Build Rule
Описание слайда:
Устанавливаем CUDA Build Rule

Слайд 34





Ввод программы проекта и его запуск
Описание слайда:
Ввод программы проекта и его запуск

Слайд 35





Ввод программы проекта
Описание слайда:
Ввод программы проекта

Слайд 36





Ввод программы проекта
Описание слайда:
Ввод программы проекта

Слайд 37





Запуск проекта
Описание слайда:
Запуск проекта

Слайд 38





Результаты работы проекта
Описание слайда:
Результаты работы проекта

Слайд 39





CPU передает величины a (2) и b(7) в GPU для их сложения.

#include <stdio.h>
__global__ void add( int *a, int *b, int *c ) {
    *c = *a + *b;
}
 
int main( void ) {
    int a, b, c;                   // host копии a, b, c
    int *dev_a, *dev_b, *dev_c;    // device копии of a, b, c
    int size = sizeof( int );      
    //выделяем память для device копий для a, b, c
    cudaMalloc( (void**)&dev_a, size );
    cudaMalloc( (void**)&dev_b, size );
    cudaMalloc( (void**)&dev_c, size );
    a = 2;
    b = 7;
Описание слайда:
CPU передает величины a (2) и b(7) в GPU для их сложения. #include <stdio.h> __global__ void add( int *a, int *b, int *c ) { *c = *a + *b; }   int main( void ) { int a, b, c; // host копии a, b, c int *dev_a, *dev_b, *dev_c; // device копии of a, b, c int size = sizeof( int ); //выделяем память для device копий для a, b, c cudaMalloc( (void**)&dev_a, size ); cudaMalloc( (void**)&dev_b, size ); cudaMalloc( (void**)&dev_c, size ); a = 2; b = 7;

Слайд 40





CPU передает величины a (2) и b(7) в GPU для их сложения
 // копируем ввод на device
    cudaMemcpy( dev_a, &a, size, cudaMemcpyHostToDevice );
    cudaMemcpy( dev_b, &b, size, cudaMemcpyHostToDevice );
    // запускаем add() kernel на GPU, передавая параметры
    add<<< 1, 1 >>>( dev_a, dev_b, dev_c );
    // copy device result back to host copy of c
    cudaMemcpy( &c, dev_c, size, cudaMemcpyDeviceToHost );
    cudaFree( dev_a );
    cudaFree( dev_b );
    cudaFree( dev_c );
	printf("%d",c);
    a=getchar();
	return 0;
}
Описание слайда:
CPU передает величины a (2) и b(7) в GPU для их сложения // копируем ввод на device cudaMemcpy( dev_a, &a, size, cudaMemcpyHostToDevice ); cudaMemcpy( dev_b, &b, size, cudaMemcpyHostToDevice ); // запускаем add() kernel на GPU, передавая параметры add<<< 1, 1 >>>( dev_a, dev_b, dev_c ); // copy device result back to host copy of c cudaMemcpy( &c, dev_c, size, cudaMemcpyDeviceToHost ); cudaFree( dev_a ); cudaFree( dev_b ); cudaFree( dev_c ); printf("%d",c); a=getchar(); return 0; }

Слайд 41





Результаты работы
Описание слайда:
Результаты работы

Слайд 42






Вычисление суммы элементов двух массивов (Один блок с N нитями)

#include <stdio.h>
#include <stdlib.h>
//#include <cuda_runtime.h>
//#include <cutil.h>
 
//#if __DEVICE_EMULATION__ bool InitCUDA(void)
//{return true;}
//#else 
bool InitCUDA(void)
{    int count = 0;    int i = 0;    
cudaGetDeviceCount(&count);   
 if(count == 0) { fprintf(stderr, "There is no device.\n");        return false;    }    
for(i = 0; i < count; i++) 
   { cudaDeviceProp prop;      
     if(cudaGetDeviceProperties(&prop, i) == cudaSuccess)
        {            if(prop.major >= 1) 
                       { break; }        
        }    
   }
Описание слайда:
Вычисление суммы элементов двух массивов (Один блок с N нитями) #include <stdio.h> #include <stdlib.h> //#include <cuda_runtime.h> //#include <cutil.h>   //#if __DEVICE_EMULATION__ bool InitCUDA(void) //{return true;} //#else bool InitCUDA(void) { int count = 0; int i = 0; cudaGetDeviceCount(&count); if(count == 0) { fprintf(stderr, "There is no device.\n"); return false; } for(i = 0; i < count; i++) { cudaDeviceProp prop; if(cudaGetDeviceProperties(&prop, i) == cudaSuccess) { if(prop.major >= 1) { break; } } }

Слайд 43





Вычисление суммы элементов двух массивов (Один блок с N нитями)
if(i == count) {fprintf(stderr, "There is no device supporting CUDA.\n");        return false;    }     
cudaSetDevice(i);   
 printf("CUDA initialized.\n");    return true;
}  
//#endif
// Определение ядра
 __global__ void VecAdd(int *A, int *B, int *C) 
{     int i = threadIdx.x;     C[i] = A[i] + B[i]; } 
 
int main(int argc, char* argv[])
{  //  if(!InitCUDA()) {return 0;}
 int N=5;    int m=5*sizeof(int);   
 int A[5]={1,2,3,4,5}, B[5]={6,7,8,9,10}, C[5];    
int *devA=NULL;    
int *devB=NULL;    
int *devC=NULL;    
cudaMalloc((void**)&devA,m);
cudaMalloc((void**)&devB,m);    
cudaMalloc((void**)&devC,m);
Описание слайда:
Вычисление суммы элементов двух массивов (Один блок с N нитями) if(i == count) {fprintf(stderr, "There is no device supporting CUDA.\n"); return false; } cudaSetDevice(i); printf("CUDA initialized.\n"); return true; } //#endif // Определение ядра __global__ void VecAdd(int *A, int *B, int *C) { int i = threadIdx.x; C[i] = A[i] + B[i]; }   int main(int argc, char* argv[]) { // if(!InitCUDA()) {return 0;} int N=5; int m=5*sizeof(int); int A[5]={1,2,3,4,5}, B[5]={6,7,8,9,10}, C[5]; int *devA=NULL; int *devB=NULL; int *devC=NULL; cudaMalloc((void**)&devA,m); cudaMalloc((void**)&devB,m); cudaMalloc((void**)&devC,m);

Слайд 44





Вычисление суммы элементов двух массивов (Один блок с N нитями)
//Вызов ядра N потоками   
 cudaMemcpy(devA,A,m,cudaMemcpyHostToDevice);    
cudaMemcpy(devB,B,m,cudaMemcpyHostToDevice);    
VecAdd<<<1, N>>>(devA, devB, devC);     
cudaMemcpy(C,devC,m,cudaMemcpyDeviceToHost);        
printf("A: %d %d %d %d %d\n", A[0], A[1], A[2], A[3], A[4]);     
printf("B: %d %d %d %d %d\n", B[0], B[1], B[2], B[3], B[4]);     
printf("C: %d %d %d %d %d\n", C[0], C[1], C[2], C[3], C[4]);     
cudaFree(&devA);    
cudaFree(&devB);    
cudaFree(&devC);        
int c=getchar();
return 0;}
Описание слайда:
Вычисление суммы элементов двух массивов (Один блок с N нитями) //Вызов ядра N потоками cudaMemcpy(devA,A,m,cudaMemcpyHostToDevice); cudaMemcpy(devB,B,m,cudaMemcpyHostToDevice); VecAdd<<<1, N>>>(devA, devB, devC); cudaMemcpy(C,devC,m,cudaMemcpyDeviceToHost); printf("A: %d %d %d %d %d\n", A[0], A[1], A[2], A[3], A[4]); printf("B: %d %d %d %d %d\n", B[0], B[1], B[2], B[3], B[4]); printf("C: %d %d %d %d %d\n", C[0], C[1], C[2], C[3], C[4]); cudaFree(&devA); cudaFree(&devB); cudaFree(&devC); int c=getchar(); return 0;}

Слайд 45





Результаты работы С=A+B
Описание слайда:
Результаты работы С=A+B

Слайд 46





Конец обзора 
Можно приступать к работе
Описание слайда:
Конец обзора Можно приступать к работе



Похожие презентации
Mypresentation.ru
Загрузить презентацию