CUDA соединение ошибки - Visual Express 2008 - nvcc фатальный из-за (пустого) конфигурационного файла

Я искал экстенсивно возможное решение своей ошибки в течение прошлых 2 недель. Я успешно установил Cuda 64-разрядный компилятор (инструменты) и SDK, а также 64-разрядная версия Visual Studio Express 2008 и Windows 7 SDK с Платформой 3.5. Я использую 64-разрядный Windows XP. Я подтвердил, что VSE может скомпилировать в 64-разрядном, поскольку я имею все в наличии 64-разрядные опции мне использующий шаги на следующем веб-сайте: (так как Visual Express по сути не включает 64-разрядные пакеты),

http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/

Обновления реестра для 64-разрядной установки найдены в комментарии пользователя на той же странице как вышеупомянутая ссылка.

Я подтвердил 64-разрядную способность к компиляции, так как "x64" доступен из выпадающего меню под "Инструментами-> Опции-> VC ++, Каталоги" и компилирующий в 64-разрядном не приводят ко всему "пропускаемому" проекту. Я включал все необходимые каталоги для 64-разрядных cuda инструментов, 64 SDK and Visual Express (\VC\bin\amd64).

Вот сообщение об ошибке, которое я получаю при попытке скомпилировать в 64-разрядном:

1>------ Build started: Project: New, Configuration: Release x64 ------
1>Compiling with CUDA Build Rule...
1>"C:\CUDA\bin64\nvcc.exe"    -arch sm_10 -ccbin "C:\Program Files (x86)\Microsoft    Visual Studio 9.0\VC\bin"    -Xcompiler "/EHsc /W3 /nologo /O2 /Zi   /MT  "  -maxrregcount=32  --compile -o "x64\Release\template.cu.obj" "c:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\src\CUDA_Walkthrough_DeviceKernels\template.cu" 
1>nvcc fatal   : Visual Studio configuration file '(null)' could not be found for installation at 'C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/../..'
1>Linking...
1>LINK : fatal error LNK1181: cannot open input file '.\x64\Release\template.cu.obj'
1>Build log was saved at "file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\New\New\x64\Release\BuildLog.htm"
1>New - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Вот простой код, который я пытаюсь компилировать/выполнять в 64-разрядном:

#include 
#include 
#include 
#include 

#include 

void mypause () 
{ 
  printf ( "Press [Enter] to continue . . ." );
  fflush ( stdout );
  getchar();
} 

__global__ void VecAdd1_Kernel(float* A, float* B, float* C, int N)
{
 int i = blockDim.x*blockIdx.x+threadIdx.x;
 if (i

12
задан abatishchev 2 March 2015 в 04:17
поделиться

1 ответ

UPDATE 06/04/2010:

Хорошо, я нашел решение проблемы. Код в порядке. После выполнения шагов по ссылке выше и добавления необходимого ключа реестра убедитесь, что Windows SDK имеет правильную версию (7.0), запустив Windows SDK Configuration Tool из меню "Пуск", выберите правильную версию (v7.0) и нажмите "Make Current".

Убедитесь, что для компиляции x64 включены следующие каталоги (в разделе "Tools->Options->Projects And Solutions->VC++ Directories): C:\CUDA\bin64 C:\CUDA\lib64 C:\CUDA\include C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64

Теперь есть еще одна вещь, которую нужно изменить для 64-битной системы. По-видимому, компилятор cuda имеет "жестко закодированный" каталог для 64-битных компиляторов на Visual Express 2008. Чтобы сделать исправление, скопируйте нужный файл "vcvars64.bat" и переименуйте его в "vcvarsamd64.bat" следующим образом:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64. bat

to

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat

После изменения программа скомпилировалась и успешно запустилась.

Я читал "другие" сообщения по всему интернету о других решениях этой ошибки: "nvcc fatal: Visual Studio configuration file '(null)'", но очень немногие указали вышеупомянутое как требование, чтобы заставить nvcc найти необходимый файл конфигурации visual studio.

Отказ от ответственности: я установил на чистую машину и ОС.

Надеюсь, это поможет другим людям с подобными проблемами.

4
ответ дан 2 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: