Воскресенье, 28.04.2024, 18:22
Приветствую Вас Гость | RSS
_nast
Главная | Каталог статей | Регистрация | Вход
Форма входа

Меню сайта
Категории раздела
Пролог [4]
Остальное [2]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Поиск
Друзья сайта
  • Природа Орловщины
  • Главная » Статьи » CUDA » Пролог

    Попытка 1

    Для начала CUDA надо скачать

    Заходим на http://www.nvidia.com/object/cuda_get.html выбираем операционную систему в выпадающем списке при этом неже появляются доступные для скачивания пакеты. Нам нужен CUDA Driver, CUDA Toolkit, CUDA SDK для чего все это надо можно прочесть тут http://www.nvidia.ru/object/cuda_learn_ru.html.

    Скачали. Теперь устанавливаем, надеюсь проблем с эти не будет. VisualStudio 2008 Express Edition можно взять с сайта Microsoft тем более что она бесплатна. Устанавливаем.

    Теперь попробуем настроить все это дело, что бы можно было писать проекты на C(или почти на C) в среде VisualStudio используя технологию CUDA.

    Когда мы устновили CUDA Toolkit мы вместе с этим создадим несколько переменных окружения системы, это

    • CUDA_BIN_PATH содержит путь к компилятору и рантайм библиоткам
    • CUDA_INC_PATH путь к хедерам CUDA
    • CUDA_LIB_PATH путь к библиотекам нужным для линковки 

    CUDA SDK это туча вских примеров и еще кое-чего очень нужного.

    Итак к главному. Создаем пустой проект в VS File->New->Project выбираем в шаблонах Empty Project в поле Name вбиваем имя проекта(у меня это cuda1) и жмем OK.

    У нас в проводнике решения три папки шлепаем две из них оставляя SourceFiles. Затем вызываем контекстное меню по оставшейся папке Add->NewItem, в поле Name вобьем cuda1.cu и Add. В открывшийся файл вобьем чего нибудь типа


    #include <stdio.h>

    #include <stdlib.h>


    #include <cuda.h>


    int main(int argc, char** argv)

    {

    cudaDeviceProp devprop;

    int iCount;


    if (cudaGetDeviceCount(&iCount)==cudaSuccess)

    {

    printf("Device count: %d\n",iCount);

    }

    else

    {

    printf("%s",cudaGetErrorString(cudaGetLastError()));

    return 0;

    }

    if (cudaGetDevice(&iCount)==cudaSuccess)

    {

    printf("Device: %d\n",iCount);

    }

    else

    {

    printf("%s",cudaGetErrorString(cudaGetLastError()));

    return 0;

    }

    if (cudaGetDeviceProperties(&devprop,0)==cudaSuccess)

    {

    printf("Device name: %s\n",devprop.name);

    printf("Global mem:%dM\n",devprop.totalGlobalMem/1024/1024);

    printf("MemPerBlock: %dKb\n",devprop.sharedMemPerBlock/1024);

    printf("RegsPerBlock: %d\n",devprop.regsPerBlock);

    printf("Warp Size: %d\n",devprop.warpSize);

    printf("MultiProcessorCount: %d\n",devprop.multiProcessorCount);

    printf("maxThreadsPerBlock: %d\n",devprop.maxThreadsPerBlock);

    printf("maxThreadsDim: %dX%dX%d\n",devprop.maxThreadsDim[0],devprop.maxThreadsDim[1],devprop.maxThreadsDim[2]);

    printf("maxGridSize: %dX%dX%d\n",devprop.maxGridSize[0],devprop.maxGridSize[1],devprop.maxGridSize[2]);

    }

    else

    {

    printf("%s",cudaGetErrorString(cudaGetLastError()));

    return 0;

    }

    system("pause");

    return 0;

    }


    Далее, в папке с CUDA SDK есть папка C\common, а там файл Cuda.Rules (я так подозреваю это набор правил VS для правельной компиляции *.cu файлов), надобно его добавить, кликаем по cuda1 в проводнике решений, а затем Project->Custom Build Rules->Find Existing находим и открываем Cuda.Rules, в окне Available Rules File ставим напротив него галку, OK. 

    Теперь добавим пути VS Tools->Options, выбираем Include Files, добавляем новый путь, вот тут нам пригодятся переменные окружения, вбиваем $(CUDA_INC_PATH). В Library Files добавляем $( CUDA_LIB_PATH). Жмем OK.

    Темерь надо добавить библиотеки для линковки Project->Property->Linker->Input и в поле Additional Dependencies вбиваем cuda.lib cudart.lib

    Вощникла одна маленькая проблема, подсветка синтаксиса не пашет(даже родного сишного, не говоря уже о всяких __global__). Это можно исправить так.


    верстаем

    Вот вроде и все.



    Категория: Пролог | Добавил: _nast (30.09.2009) | Автор: _nast
    Просмотров: 2301 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Copyright MyCorp © 2024
    Конструктор сайтов - uCoz