Использование Cuda с графическим интерфейсом на основе форм в XP - PullRequest
0 голосов
/ 12 марта 2011

Совершенно новый в программировании CUDA, поэтому, пожалуйста, потерпите меня.Я наконец получил CUDA для работы в консольном приложении с использованием Visual Studio 2008 на Win XP (32-разрядная версия).Но моя главная цель - перенести существующую программу в порт cuda.Эта программа очень требовательна к вычислениям и основана на сложном графическом интерфейсе.Итак, портирование на cuda имеет смысл, так как это значительно сократит мое вычислительное время.Я провел некоторое исследование и не нашел примера, где cuda используется с приложением на основе форм.Это всегда было с консольным приложением.Но о преобразовании моего графического интерфейса в консольное приложение не может быть и речи.

Итак, я попытался выполнить тест (графический интерфейс на основе форм), где я включил файл .cu в свой проект.Но при компиляции я получаю эту ошибку компоновщика

fatal error LNK1313: ijw/native module detected; cannot link with pure modules

Так что я думаю, что cuda не очень хорошо работает с управляемым кодом.
Мой вопрос: есть ли возможность использовать cuda с формой в Visual Studio 2008??

Другой вопрос: кто-нибудь пробовал это, поскольку я не видел ни одного такого примера?

Пожалуйста, помогите ....

Редактировать: - Хорошо, яизменил в свойствах-> конфигурации-> общие-> общеязыковая поддержка времени выполнения на / clr, и он без проблем скомпилировался.Но когда я попытался запустить его, у меня появилось неприятное всплывающее диалоговое окно с ошибкой «Отладка подтверждения» в файле dbgheap.c, выражение _CRTisValidHeapPointer (pUserData).Так близко, но без сигары.Любые идеи ?????

Ответы [ 2 ]

1 голос
/ 13 февраля 2013

(Visual Studio 2010, CUDA 5.0) Попробуйте установить:

Linker-> System-> Подсистема: не задано

Linker-> Advanced-> Точка входа: пусто

1 голос
/ 12 марта 2011

Я сделал это с приложением WPF, написанным на C #, которое использовало C ++ / CLI для взаимодействия со смешанной CLI / нативной сборкой, которая в свою очередь называлась кодом CUDA в отдельном проекте. Я не пробовал WinForms, но не вижу причин, почему это не должно работать. Тем не менее, в итоге вы пишете довольно много кода для обработки взаимодействия.

Мне нужна дополнительная информация о том, что делает ваше приложение, когда __ CRTisValidHeapPointer не удалось. Ваша куча как-то испортилась. Это может или не может быть связано с кодом CUDA.

C # до C ++ взаимодействия:

http://www.ademiller.com/blogs/tech/2009/09/c-optimization-revisited-part-3-the-native-option-c/

C ++ и CUDA рядом:

http://www.ademiller.com/blogs/tech/2011/03/using-cuda-and-thrust-with-visual-studio-2010/

...