Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 432
#1

CUDA компиляция и запуск - C++

24.04.2016, 15:39. Просмотров 593. Ответов 11
Метки нет (Все метки)

Всем привет! Ребят я начал изучать технологию cuda (параллельные вычисления). Картина заключается в том, что мне нужно настроить данную технологию на своем компутере, и попытаться запустить пару примеров на выполнение. Посмотреть как они работают и работают ли они у меня вообще.
Первым делом мне нужно было убедиться что моя карточка поддерживает технологию cuda. В итоге я залез на сайт и убедился в том, что моя карта действительно её поддерживает http://video-nvidia.com/series_200m/...e-gt-240m.html
После я выяснил, что мне нужно скачать инструментарий на официальном сайте NVIDIA
https://developer.nvidia.com/cuda-downloads.
После скачивания я произвел установку и так же установил драйвер для карты. Но для работы технологии так же нужен сишный компилятор "cl" ,который поставляется вместе с visual studio (в моем случае поставил visual studio 2013).

Теперь я хочу откомпилировать и запустить такой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <stdio.h>
 
 
 
int main(int argc, char *  argv[])
{
    int            deviceCount;
    cudaDeviceProp devProp;
 
    cudaGetDeviceCount(&deviceCount);
 
    printf("Found %d devices\n", deviceCount);
 
    for (int device = 0; device < deviceCount; device++)
    {
        cudaGetDeviceProperties(&devProp, device);
 
        printf("Device %d\n", device);
        printf("Compute capability     : %d.%d\n", devProp.major, devProp.minor);
        printf("Name                   : %s\n", devProp.name);
        printf("Total Global Memory    : %d\n", devProp.totalGlobalMem);
        printf("Shared memory per block: %d\n", devProp.sharedMemPerBlock);
        printf("Registers per block    : %d\n", devProp.regsPerBlock);
        printf("Warp size              : %d\n", devProp.warpSize);
        printf("Max threads per block  : %d\n", devProp.maxThreadsPerBlock);
        printf("Total constant memory  : %d\n", devProp.totalConstMem);
 
    }
    int j; std::cin >> j;
 
    return 0;
}
Пример я скачал на сайте http://www.ksmlab.ru/page/cuda-osnovy-primery. Собственно там несколько примеров.
Для компиляции файла я зашел в командную строку разработчика и ввел такую строчку "nvcc info.cu"
В итоге у меня получился результат где появилось 3 файла в том числе и сам exe-шник и запустил его
Миниатюры
CUDA компиляция и запуск  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2016, 15:39     CUDA компиляция и запуск
Посмотрите здесь:

Visual C++ Использование Cuda
CUDA Visual C++
Visual C++ CUDA 4.0 и VS2010
C++ CUDA на примерах
C++ CUDA C/C++ сложение векторов
Компиляция и запуск программ из mpi C++ Linux
Visual C++ CUDA C/C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 432
24.04.2016, 15:41  [ТС]     CUDA компиляция и запуск #2
Я не силен компиляцией из командной строки и линковки. Поэтому прошу извинить за тупость. Но печаль в том что программа мне говорит что нашла 0 устройств. не могу понять почему так??
Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 432
24.04.2016, 15:48  [ТС]     CUDA компиляция и запуск #3
Так как в командной строке потерпел неудачу. Решил выполнить пример в visual studio 2013. Я долго думал как интегрировать его туда. Смотрел видеоролики и всё такое. Потом выяснил что там уже всё готово и оказывается при установки тулкита среда подтягивает все зависимости сам а мне остается лишь только создать проект Nvidia который отображается при создании проекта.
Я создал проект, вставил код туда и запустил на выполнение. В итоге он мне вывел космическое число устройств причем в отрицательной форме
Миниатюры
CUDA компиляция и запуск  
Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 432
24.04.2016, 15:54  [ТС]     CUDA компиляция и запуск #4
У меня на картинке видны красные пердупреждения. Они пропадут если я откаментирую библиотеки сверху. Но интересно то что и без них программа откомпилица и выведет такой же результат.

в общем ребят прошу помочь мне. Не знаю что делать. Наверно я не умею гуглить и не нашел компиляции cuda в командной строке. Так же прошу помочь мне разобраться что за глюк такой в ide по поводу красноты. Огромнейшее спасибо заранее......... и еще я пробовал выполнить перемножение матриц исходя из примеров которые скачал, в результате при различных размерах матрицы выдает время выполнения 0 секунда (походу не выполняется на карте). Эти примеры почти такие же что и в книге по cuda
Evg
Эксперт CАвтор FAQ
17301 / 5549 / 347
Регистрация: 30.03.2009
Сообщений: 15,104
Записей в блоге: 26
24.04.2016, 16:17     CUDA компиляция и запуск #5
В своё время базовые примеры запускал по книге "Сандерс Дж., Кэндрот Э. - Технология CUDA в примерах - 2011". Всё запустилось, насколько помню, геморрой был только с тем, чтобы запустить cl из консоли

Конкретно в моём случае был установлен 32-битный cuda toolkit
http://developer.download.nvidia.com....17_win_32.msi
и MSVS-2008
Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 432
25.04.2016, 08:56  [ТС]     CUDA компиляция и запуск #6
А у меня книга боресков и харламов 2011 год......Но книга устарела и тулкит не тот. Интересно то что в моей версии тулкит нет SDK примеров, а ведь везде толкуют про то что я могу проверить и запустить примеры из SDK. На официальном сайте документация стремная, где не описывается компиляция из командно строки, а лишь только есть не большое описание интеграции в студию и то с ошибками.
Мне бы сейчас главное чтобы в командной сроке всё работало и будет счастье.)))
Я посмотрю вашу книгу и еще интересно какие проблемы у вас были с "cl" и как решили?
Evg
Эксперт CАвтор FAQ
17301 / 5549 / 347
Регистрация: 30.03.2009
Сообщений: 15,104
Записей в блоге: 26
25.04.2016, 12:59     CUDA компиляция и запуск #7
Цитата Сообщение от Левиафам Посмотреть сообщение
Я посмотрю вашу книгу и еще интересно какие проблемы у вас были с "cl" и как решили?
Проблемы стандартные - как его (cl) вообще запускать из командной строки. Там был какой-то геморрой со скриптом vcvars32.bat (или что-то типа такого в названии), который нужно запустить, чтобы можно было работать с cl. Соответственно, nvcc должен уметь из-под себя запускать этот скрипт. Насколько помню, всё решилось тем, что в глобальных настройках надо было в %PATH% прописать путь (если надо, вечером могу посмотреть конкретно, я все ходы записал)
Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 432
25.04.2016, 14:14  [ТС]     CUDA компиляция и запуск #8
Цитата Сообщение от Evg Посмотреть сообщение
Соответственно, nvcc должен уметь из-под себя запускать этот скрипт.
ну у меня на ноуте nvcc подтягивает его уже, иначе не откомпилил бы))) но зато на рабочем компьютере как раз какая-то проблема с батником была (я тольком не читал что там нужно было) , но видимо та беда которая у вас.
Я думаю было бы не плохо если бы описали бы ходы. Я думаю смысла нет ставить 32-х битную версию. Просто посмотрю в книге, которую посоветовали, ибо может какую-то мелочь упустил))) И еще посмотрю ваши ходы))) Спасибо вам)
Evg
Эксперт CАвтор FAQ
17301 / 5549 / 347
Регистрация: 30.03.2009
Сообщений: 15,104
Записей в блоге: 26
25.04.2016, 15:58     CUDA компиляция и запуск #9
Цитата Сообщение от Левиафам Посмотреть сообщение
Я думаю смысла нет ставить 32-х битную версию
У меня была какая-то проблема с 64-битной версией, возможно, что из-за MSVS-2008
Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 432
25.04.2016, 19:06  [ТС]     CUDA компиляция и запуск #10
ну у меня завтра время будет, я по вашей книге потыкаюсь и возможно на виртуалку 32-битную поставлю и попробую откомпилить(просто у меня 64 битная ОС)
Evg
Эксперт CАвтор FAQ
17301 / 5549 / 347
Регистрация: 30.03.2009
Сообщений: 15,104
Записей в блоге: 26
25.04.2016, 20:37     CUDA компиляция и запуск #11
На 64-битной оси 32-битные библиотеки нормально работают, виртуалка тут точно не нужна. Да и вряд ли на виртуалке оно заработает, там же виртуальная видеокарта, не факт, что CUDA с ней взлетит

Добавлено через 44 минуты
Ссылку на тулкит написал в посте #5

У меня записано:
- Использовал MSVS-2008 (хотя по идее можно было бы и 2005)
- Для 2008 надо устанавливать 32-биный cuda-toolkit, т.к. он будет искать 32-битный cl.exe
- В переменную PATH надо прописать путь до cl.exe (компилятора)
D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin
Прописывается через: "Мой компьютер" - ПКМ - "Свойства" - "Дополнительные параметры системы" (слева) - вкладка "Дополнительно" - кнопка "Переменные среды"
- Для запуска в консоли компилятора cl.exe надо предварительно запустить скрипт vcvars32.bat (находится в том же каталоге, что и cl.exe). Из-под cygwin'а не работает

Последнее предложение не совсем понимаю, к чему написано, из-под cygwin'а у меня nvcc нормально работает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2016, 22:49     CUDA компиляция и запуск
Еще ссылки по теме:

Массивы в CUDA C++
C++ Запуск программы и ее компиляция
Компиляция программ CUDA C++
CUDA toolkit C++
C++ CUDA переменные kernel

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Левиафам
32 / 27 / 5
Регистрация: 31.05.2012
Сообщений: 432
25.04.2016, 22:49  [ТС]     CUDA компиляция и запуск #12
кстати, немного обманул себя.... автоматической интеграции тулкита в vs нету. Просто когда я создавал проект с++ я в нем прописывал пути к либам и заголовычным файлам тулкита (в попытке откомпилить кудовский файл), и еще что-то прописал точно не помню.....В итоге я думал у меня проект заработает, но на самом деле нужно было перезапустить vs и в меню появилося пункт создания проекта nvidia...... ладно завтра буду пробовать ваш вариант,спасибо
Yandex
Объявления
25.04.2016, 22:49     CUDA компиляция и запуск
Ответ Создать тему
Опции темы

Текущее время: 11:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru