Cuda Cusolver не может связать в Visual Studio 2013

Я попробовал в основном все, и я не могу получить vs2013 для компиляции и ссылки на библиотеку cusolver. Я перепробовал все примеры проектов, поставляемых с установочным пакетом cuda, и в основном все примеры работают нормально. Хотя нет образцов, использующих cusolver. Включаемые файлы работают просто отлично. Компоновщик ошибочен, и все остальные ссылки на cuda просто хороши. Я попытался добавить одну строку кода cusolver в прекрасно работающий пример cuda, и он сломался. Вот фрагмент кода:

#include "cuda_runtime.h"#include "device_launch_parameters.h"#include "cusolver_common.h"#include "cusolverDn.h"#include <stdio.h>

cudaError_t addWithCuda(int *c, const int *a, const int *b, unsigned int size);

__global__ void addKernel(int *c, const int *a, const int *b)
{
int i = threadIdx.x;
c[i] = a[i] + b[i];
}

int main()
{
cusolverDnCreate(new cusolverDnHandle_t);

return 0;
}

Результат сборки:

1>------ Build started: Project: The cudan, Configuration: Release x64 ------
1>  Compiling CUDA source file kernel.cu...
1>
1>  c:\Users\Gdizzle\documents\visual studio 2013\Projects\The cudan\The cudan>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" --use-local-env --cl-version 2013 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64"  -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include"     --keep-dir x64\Release -maxrregcount=0  --machine 64 --compile -cudart static     -DWIN32 -DWIN64 -DNDEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /Zi  /MD  " -o x64\Release\kernel.cu.obj "c:\Users\Gdizzle\documents\visual studio 2013\Projects\The cudan\The cudan\kernel.cu"1>  kernel.cu
1>kernel.cu.obj : error LNK2001: unresolved external symbol cusolverDnCreate
1>c:\users\gdizzle\documents\visual studio 2013\Projects\The cudan\x64\Release\The cudan.exe : fatal error LNK1120: 1 unresolved externals

Я попытался добавить каталоги в свойствах проекта -> vc ++ и в настройках компоновщика, но это не помогло. Есть идеи? Это так странно, что эта 1 библиотека не работает.

(Также, если у вас есть другие идеи о том, как решить систему уравнений с наименьшими квадратами, используя программирование GPU, это было бы полезно)

РЕДАКТИРОВАТЬ ОБНОВЛЕНИЕ: Вы не должны включать дополнительные файлы .h или дополнительные библиотеки, добавляя дополнительные библиотеки или дополнительные каталоги включения в другие параметры компоновщика, такие как каталоги cudaLinker или vc ++.

0

Решение

Я только что проверил это на 64-битной Windows 7, сообщество Visual Studio 2013, CUDA 7.

  1. Начните с открытия образца кода vectorAdd cuda. Убедитесь, что вы можете правильно построить этот код. (Это должен быть проект x64. CUDA 7 не поддерживает 32-битные проекты или операционные системы на Windows.) Если вы не можете построить это правильно, ваша проблема не имеет ничего общего с cusolver

  2. Добавьте следующий заголовочный файл вверху vectorAdd.cu:

    #include <cusolverDn.h>
    
  3. Добавьте следующие две строки в начало main Режим дня:

    cusolverDnHandle_t my_handle;
    cusolverDnCreate(&my_handle);
    
  4. Перейдите в Project … vectorAdd Properties … Linker … Input … Дополнительные зависимости. В этом поле вы уже должны найти несколько библиотек, включая cudart_static.lib. Щелкните в этом поле, затем щелкните стрелку раскрывающегося меню справа, затем нажмите <Edit...> Внизу списка библиотек в окне редактирования добавьте cusolver.lib на своей собственной линии.

  5. Перестройте проект.

3

Другие решения


По вопросам рекламы [email protected]