Я в основном настроен на разработку CUDA. Я установил драйверы разработчика, инструментарий CUDA 4.0 и SDK 4.0, а также исправление. Я использую Windows 7 x64 и использую Visual C ++ 2010 Express. Для 32-разрядных приложений я выполняю следующие шаги, и мои приложения CUDA работают правильно.
- Создать новый пустой проект
- убедитесь, что Platform Toolset установлен на v100 (обычно по умолчанию)
- проверьте настройку сборки CUDA 4.0 для проекта
- установить тип элемента моего .cu файла на CUDA C / C ++
- добавить 'cudart.lib' в Свойства-> Компоновщик-> Ввод-> Дополнительные зависимости
Я также могу запускать не-CUDA 64-битные приложения. Visual C ++ 2010 Express не поставляется с 64-разрядными зависимостями автоматически, поэтому мне пришлось установить Windows 7.1 SDK с .NET Framework 4.0. Затем я просто установил набор инструментов платформы для проекта VC ++ на Windows7.1SDK, изменил платформу Active Solution на x64, и все готово.
Однако я не могу сделать оба одновременно - я не могу создать 64-битное приложение CUDA. Если я изменю набор инструментов платформы приложения CUDA на Windows7.1SDK, независимо от того, будет ли платформа активного решения x64 или Win32, я получу ошибку компиляции, из-за которой nvcc.exe завершил работу с кодом -1. И если я оставляю Platform Toolset установленным на v100 и меняю платформу Active Solution на x64, я получаю ошибку компиляции "фатальная ошибка LNK1104: не могу открыть файл 'kernel32.lib'. Единственная работающая комбинация - это v100 и Win32, и, очевидно, это мешает мне запустить 64-битное приложение.
Существует ли процедура для включения этой функции, которую я просто не смог найти в Интернете? Есть идеи или предложения? Спасибо за ваше время.