Форум программистов, компьютерный форум, киберфорум
CUDA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
87 / 55 / 15
Регистрация: 01.10.2010
Сообщений: 492

CUDA для .NET, ошибки даже в пустом проекте

28.02.2012, 23:10. Показов 5367. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь написать приложение с использованием CUDA. На основе http://www.thevista.ru/page13118-cudanet_dlya_netrazrabotchika_ch3

Добавлено через 50 секунд
Код приложения
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GASS.CUDA;
using GASS.CUDA.Types;
using System.IO;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                CUDA cuda = new CUDA(0, true);//создаем первое устройство
 
                int[] array = Enumerable.Range(0, 4096).ToArray();//формируем массив от 0 до 4095
 
                CUdeviceptr d_input = cuda.CopyHostToDevice(array);//копируем данные в память видеоадаптера
 
                /*FileStream Sr = new FileStream(Path.Combine(Environment.CurrentDirectory, "mykernel.cubin"), FileMode.Open);
                byte[] module = new byte[Sr.Length];
                Sr.Read(module, 0, module.Length);
                cuda.LoadModule(module);*/
                //это я пытался но не помогло
                CUmodule module = cuda.LoadModule(Path.Combine(Environment.CurrentDirectory, "mykernel.cubin"));//загружаем нашу программу - здесь появляется ошибка
 
                CUfunction func = cuda.GetModuleFunction("test_func");//получаем дескриптор функции test_func
 
                //задаем параметры запуска:
                cuda.SetFunctionBlockShape(func, 512, 1, 1);//задается размер блока 512 нитей, блоки одномерные
                cuda.SetParameter(func, 0, (uint)d_input.Pointer);//передаем указатель на массив данных
                cuda.SetParameter(func, IntPtr.Size, (uint)42);//передаем приращение
                cuda.SetParameterSize(func, (uint)(IntPtr.Size + sizeof(uint)));//передаем общий размер параметров функции
 
                //запускаем функцию
                cuda.Launch(func, array.Length / 512, 1);//задаем размеры грида
                //получаем результат
                cuda.CopyDeviceToHost(d_input, array);
 
                //освобождаем выделенную память
                cuda.Free(d_input);
 
                //выводим результат
                foreach (var item in array)
                {
                    Console.WriteLine(item);
                }
            }
            catch (CUDAException ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("CUDAException");
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
    }
}
Модуль mykernel.cu
C
1
2
3
4
5
extern "C" __global__ void test_func(int *g_data, int inc_value)
 {
 int idx = blockIdx.x * blockDim.x + threadIdx.x;
 g_data[idx] = g_data[idx] + inc_value;
 }
Стоят
1. GF 540M
2. Драйвер.
3. CUDA Toolkit
4. CUDA SDK

Программа bandWidthtest.exe (из руководство по CUDA) выполняется нормально

В опциях пост построения пробовал
nvcc "C:\Users\Super\Documents\Visual Studio 2008\Projects\ConsoleApplication1\Consol eApplication1\mykernel.cu" --cubin --compiler-bindir="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin" -arch=sm_20

и

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" "C:\Users\Super\Documents\Visual Studio 2008\Projects\ConsoleApplication1\Consol eApplication1\mykernel.cu" --cubin --compiler-bindir="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin" -arch=sm_20

Результат один

Ошибка 1 выход из команды ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" "C:\Users\Super\Documents\Visual Studio 2008\Projects\ConsoleApplication1\Consol eApplication1\mykernel.cu" --cubin --compiler-bindir="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin" -arch=sm_20" с кодом -1. ConsoleApplication1
Даже при пустом проекте

Может кто сталкивался с подобной проблемой
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2012, 23:10
Ответы с готовыми решениями:

CUDA, не компилируется даже пустой проект
Помогите разобраться в проблеме. Стоит 13-я студия и cuda 6.5. Установку cuda я проверила: bandwidthtest и devicequery запускаются и...

AspNet.Identity в пустом проекте
Прохожу стажировку, будем делать интернет-магазин, и нам поручили для начала создать базу данных. Писать будем на MVC5 с пустого листа. ...

Откуда столько кода в пустом проекте?
Создаю новый проект в VS 2013 - создаёт кучу разного кода. Как просто взять и скомпилировать "Hello, world!"? Только начинаю...

3
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
29.02.2012, 13:31
попробовал реализовать предложенный по ссылке пример и тоже получил ошибку
Code
1
выход из команды "nvcc.exe mykernel.cu --cubin" с кодом -1
при проверки исключения
C#
1
2
3
4
5
6
7
8
9
try
            {
                cuda.LoadModule("mykernel.cubin");
            }
            catch (CUDAException ex)
            {
                Console.WriteLine(ex);
                Console.ReadKey();
            }
выдаёт ErrorFileNotFound. Такое ощущение, что студия не может найти пути и соответственно не компилируется cu-файл. На форумах NVIDIA нашёл пост
Small bugfix (I think, because I'm not proficient in VS), a change in the CommandLine, from:
Code
1
2
CommandLine="nvcc.exe -ccbin "$(VCInstallDir)bin" [Emulation] -c [Defines] -Xcompiler "/EHsc [Warning] /nologo /Wp64 [Optimization] /Zi [RuntimeChecks] [Runtime] [TypeInfo]" [Include] -o $(ConfigurationName)\$(InputName)
.obj $(InputFileName)"
to this:
Code
1
2
CommandLine="nvcc.exe -ccbin "$(VCInstallDir)bin" [Emulation] -c [Defines] -Xcompiler "/EHsc [Warning] /nologo /Wp64 [Optimization] /Zi [RuntimeChecks] [Runtime] [TypeInfo]" [Include] -o $(ConfigurationName)\$(InputName)
.obj "$(InputPath)""
The $(InputFileName) does not work when the working directory is different than one containing the *.cu file.
но я смотрю вы уже пробовали через Path, и всё равно не получается. Даже не знаю в чём проблема, м.б. сама команда nvcc mykernel.cu --cubin не верная.
1
87 / 55 / 15
Регистрация: 01.10.2010
Сообщений: 492
29.02.2012, 15:22  [ТС]
судя по http://www.gpgpu.ru/node/880 у народа получается
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
12.03.2012, 15:51
Лучший ответ Сообщение было отмечено как решение

Решение

всё таки удалось мне скомпилировать cu-файл с помощью вот такой команды
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.1\bin\nvcc.exe" -arch=sm_11 "C:\Users\Intel\Documents\Visual Studio 2010\Projects\CUDA_Sample\CUDA_Sample\my kernel.cu" --cubin --compiler-bindir="C:\Program Files\Microsoft Visual Studio 10.0\VC\bin"
нужно чётко прописывать все пути, учитывая даже верхний регистр букв.
в прикреплённых полной рабочий проект, если что скомпилированный cubin-файл для приведённой С-функции там тоже есть.
Вложения
Тип файла: rar CUDA_Sample.rar (120.5 Кб, 169 просмотров)
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.03.2012, 15:51
Помогаю со студенческими работами здесь

Стек на массиве (выводит значение даже при пустом стеке)
Здравствуйте, есть код со стеком, вопрос касательно метода класса,а точнее о выводе элемента из стека - pop(). Дело в том что программа...

установил 2008 с++ и при пустом проекте в mfs выскакивает Ошибка отсутствие include <windows.h>
Привет всем , извиняйте что не потеме подскажите , установил 2008 с++ и при пустом проекте в mfs выскакивает Ошибка отсутствие include...

Класс для работы с контроллами на форме, найти ошибки в проекте
Приветствую! Вот, решил разработать собственный класс для удобства. Класс должен работать с контролами на форме (менять фоновые...

Отсутствует возможность добавления Модель данных ADO NET EDM в Visual Studio в проекте net core
Создал новый проект веб-приложение на net core . В Nu get добавил Entity Framework 6.2, Mysql.data, mysql.data.entity, mysql.web. Но когда...

CUDA не работает программа, ошибки памяти
Здравствуйте! Подскажите,пожалуйста,в чём может быть проблема. Ситуация следующая: - есть программа на CUDA; - есть две видеокарты...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru