Я думаю, что шаги довольно просты. Я сделал чистую установку VS2010 Express, а затем установил CUDA 5.0 для Windows 7.
Я выбрал пример кода VectorAdd, который находится в Пакет образцов CUDA 5.0. По умолчанию мой проект настроен на компиляцию для Win32 и Debug.
Единственное изменение, которое мне пришлось сделать, это выбрать Project...Properties...CUDA C/C++...Command Line
Затем я добавил параметры -Xptxas -v
в текстовое поле Addtional Options
в нижней части диалогового окна свойств, например: ">
(если у вас возникли проблемы с четким изображением выше, щелкните правой кнопкой мыши изображение, затем выберите «Сохранить изображение как ...» и сохраните его на жесткий диск, а затем откройте его оттуда.)
После этого нажмите Apply
и OK
. Затем нажмите F7
, чтобы построить проект, и вы должны увидеть такой вывод в окне Output
(ваше окно вывода должно автоматически отображать вывод «Сборка» при компиляции:
1>------ Rebuild All started: Project: vectorAdd, Configuration: Debug Win32 -----
1>
1> C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\0_Simple\vectorAdd>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\nvcc.exe" -ccbin "C:\Program Files\Microsoft Visual Studio 10.0\VC\bin" -I"../../common/inc" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -G --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -Xptxas -v -g -DWIN32 -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd " -o "Win32/Debug/vectorAdd.cu.obj" "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\0_Simple\vectorAdd\vectorAdd.cu" -clean
1> Compiling CUDA source file vectorAdd.cu...
1>
1> C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\0_Simple\vectorAdd>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_30,code=\"sm_30,compute_30\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" --use-local-env --cl-version 2010 -ccbin "C:\Program Files\Microsoft Visual Studio 10.0\VC\bin" -I"../../common/inc" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -G --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -Xptxas -v -g -DWIN32 -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd " -o "Win32/Debug/vectorAdd.cu.obj" "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\0_Simple\vectorAdd\vectorAdd.cu"
1> ptxas : info : 0 bytes gmem
1> ptxas : info : Compiling entry function '_Z9vectorAddPKfS0_Pfi' for 'sm_10'
1> ptxas : info : Used 4 registers, 32 bytes smem, 4 bytes cmem[1]
1> ptxas : info : 0 bytes gmem
1> ptxas : info : Compiling entry function '_Z9vectorAddPKfS0_Pfi' for 'sm_20'
1> ptxas : info : Function properties for _Z9vectorAddPKfS0_Pfi
1> 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
1> ptxas : info : Used 8 registers, 48 bytes cmem[0]
1> ptxas : info : 0 bytes gmem
1> ptxas : info : Compiling entry function '_Z9vectorAddPKfS0_Pfi' for 'sm_30'
1> ptxas : info : Function properties for _Z9vectorAddPKfS0_Pfi
1> 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
1> ptxas : info : Used 8 registers, 336 bytes cmem[0]
1> ptxas : info : 0 bytes gmem
1> ptxas : info : Compiling entry function '_Z9vectorAddPKfS0_Pfi' for 'sm_35'
1> ptxas : info : Function properties for _Z9vectorAddPKfS0_Pfi
1> 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
1> ptxas : info : Used 8 registers, 336 bytes cmem[0]
1> tmpxft_00001438_00000000-39_vectorAdd.compute_10.ii
1> vectorAdd_vs2010.vcxproj -> C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\0_Simple\vectorAdd\../../bin/win32/Debug/vectorAdd.exe
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
Учтите, что независимо от того, видите ли вы какие-либо фактические выбросы, это зависит от кода, который вы компилируете. В этом коде нет сбросов, но если бы они были, компилятор сообщил бы об этом именно здесь.
Вам не нужна опция -abi=no
, чтобы увидеть результаты компилятора.
Обратите внимание, что параметры отдельных файлов могут переопределять параметры проекта (щелкните правой кнопкой мыши один из исходных файлов вашего проекта, затем щелкните свойства), но если вы не изменили ни один из них, они не должны переопределять параметры вашего проекта.
Вероятно, есть и другие настройки проекта, которые также могут мешать этому, поэтому я предлагаю попробовать один из примеров кода CUDA, который вы не изменили, и использовать описанные выше шаги в качестве проверки работоспособности, чтобы продемонстрировать, что вы можете заставить его работать. там первый. Тогда попробуйте это на своем проекте.
Убедитесь, что вы изменяете настройки (например, Win32/x64, Release/Debug), которые соответствуют проекту, который вы фактически создаете.
EDIT: В приведенном выше случае используется CUDA 5.0. В исходном вопросе не была указана версия CUDA. Я обнаружил, что с предыдущей версией CUDA в Visual Studio метод командной строки «Дополнительные параметры», похоже, не работал, но использование поля выбора/раскрывающегося списка для указания подробного вывода PTXAS (Да) работало.
EDIT2: ОК. Я выполнил чистую установку VS2010, а затем чистую установку инструментария CUDA 4.2, и мне удалось воспроизвести проблему. Я использовал следующие шаги, чтобы иметь возможность увидеть фактический подробный вывод ptxas:
- В меню «Инструменты...Настройки» выберите «Экспертные настройки».
- В Project...Properties...Configuration Properties...CUDA C/C++...Device измените подробный раскрывающийся список ptxas на «Да (--ptxas-options=-v)».
- В меню Инструменты...Параметры...Проекты и решения...Сборка и запуск измените параметр "Подробность вывода сборки проекта MSBuild" с "Минимальный" на "Нормальный".
- Затем выберите Build...Rebuild Solution, и вы должны увидеть подробный вывод ptxas в окне вывода сборки.
person
Robert Crovella
schedule
27.08.2013