2012-06-05 1 views
0

Я пытаюсь создать проект Cuda в VisualStudio 2010. Я создал один простой тестовый файл .cu, который принимает массив и добавляет 1 ко всему его элементу и отправляет результат обратно к хозяину.Cuda: error C2065: "threadIdx": uneclared identifier

Я добавил cudart.lib файл линкера.

в коде .CU я включил #include cuda_runtime.h заголовок.

Но когда я пытаюсь скомпилировать его, это дает две ошибки.

error C2065 :'threadIdx': undeclared identifier
error C2059: syntax error:'<'

После установки Nvidia Nsight Visual Studio выпуск и настройка типа элемента из .CU файла как CUDA C/C++, он начинает давать две дополнительные ошибки:

error D8003:missing source filename

error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2010 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin" -I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\C\common\inc" -I"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\shared\inc" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include" -G --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "Debug\test.cu.obj" "\ucigrad.local\Users\AGill\My Documents\Visual Studio 2010\Projects\cudatest\cudatest\test.cu"" exited with code 2.

Пожалуйста, помогите мне, как решить ее. Я думаю, что может возникнуть проблема с nvcc-компилятором в VS2010, но я не могу это понять.

+0

Также я использую CUDA 4.2.Я выбрал Cuda 4.2 в настройке сборки, щелкнув правой кнопкой мыши на проекте. –

+0

Вы связываете соответствующие библиотеки? – Adam27X

+0

Да, я включил cudart.lib.Also, когда я задал тип файла .cu для CUDA C/C++, он дает две дополнительные ошибки: D8003: отсутствует исходное имя файла и ошибка MSB3721. –

ответ

1

Ошибки, которые вы, скорее всего, указываете на то, что вы не компилируете свои источники CUDA с помощью NVCC. Убедитесь, что вы выбрали соответствующий тип элемента (CUDA C/C++), если вы установили интеграцию Visual Studio при установке набора инструментальных средств. Или убедитесь, что вы создали соответствующие правила сборки для своих источников.

+0

Я уже установил Nvidia Nsight и установил тип файла .cu как CUDA C/C++. Но при этом он начинает давать две дополнительные ошибки, ошибка: D8003: отсутствует исходное имя файла и ошибка: MSB3721 (с большим описанием наряду с предоставлением двух ошибок. –

+0

Хорошо, это следующий шаг.Но проблема, о которой вы просили, затем разрешается. Какие именно ошибки вы получаете сейчас (их полное описание)? Возможно, добавьте это в свой вопрос. Или, может быть, это отдельный вопрос, если он слишком смущает этот. В конце концов, они кажутся отдельными проблемами. – Bart

+0

Я отредактировал вопрос с двумя дополнительными ошибками. Также очевидные ошибки еще не решены. Другое дело, я попробовал один из примеров исходного кода (ScalarProd), предоставленный cuda, который работает нормально, но когда я пытался создать проект с нуля, эти проблемы возникли. –

0
  1. Существует 2 типа ошибок: ошибки сборки и ошибки IDE. Проверьте сборки удалось (вы можете игнорировать ошибки IDE)

  2. Try #include "cuda.h" (или угловые скобки)

  3. Re потенциала иногда решает проблему

4

Если вас раздражают ошибки IDE (которые все еще позволяют вашему коду работать без ошибок), как и я, попробуйте выполнить обычный текстовый поиск в папке include SDK для (по-видимому) неопределенных символов, и вы найдете правильный заголовок для включить в кратчайшие сроки. «threadIdx», например, находится в заголовочном файле «device_launch_parameters.h».

Смежные вопросы