私は基本的にすべてを試しましたが、vs2013 をコンパイルして cusolver ライブラリに対してリンクすることができません。cuda インストール パッケージに付属するすべてのサンプル プロジェクトを試しましたが、基本的にすべてのサンプルが正常に動作します。cusolver を使用したサンプルはありませんが。インクルードファイルは問題なく動作します。リンカにエラーがあり、他のすべてのcuda関連のリンクは問題ありません。完全に機能するcudaサンプルに1行のcusolverコードを追加しようとしましたが、壊れました。コード スニペットは次のとおりです。
#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プログラミングを使用して最小二乗法で連立方程式を解く方法について他のアイデアがあれば、それは役に立ちます)
編集の更新: cudaLinker や vc++ ディレクトリなどの他のリンカー オプションに追加のライブラリまたは追加のインクルード ディレクトリを追加して、追加の .h ファイルや追加のライブラリを含めないでください。