This is an incredibly basic question, but how do I start a new CUDA project in Visual Studio 2008? I have found tons and tons of documentation about CUDA related matters, but nothing about how to start a new project. I am working with Windows 7 x64 Visual Studio 2008 C++. I would really like to find some sort of really really basic Hello World app to just get a basic program compiling and running.
Edit:
I tried your steps …
我一直在尝试创建模板内核,但是在我的程序中调用它们时遇到了一些麻烦.我有一个Matrix<T>模板类,并在其中定义了一些方法
Matrix.h:
template <typename T> class Matrix {
...
void sum(Matrix<T>& m1, Matrix<T>& m2, Matrix<T>& sum);
...
}
#include "Matrix.cu"
Run Code Online (Sandbox Code Playgroud)
Matrix.cu:
#include "MatrixKernel.h"
template<typename T> void Matrix<T>::sum(const Matrix<T>& m, Matrix<T>& sum) {
...
sumKernel<T><<<dimGrid, dimBlock>>>(Matrix<T> m1, Matrix<T> m2, Matrix<T> sum)
...
}
Run Code Online (Sandbox Code Playgroud)
MatrixKernel.h:
template<typename T> __global__ void sumKernel(const Matrix<T> m1, const Matrix<T> m2, Matrix<T> sum) {
...
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我从sum中调用sumKernel时,编译器会给我以下错误:
error C2059: syntax error : '<'
Run Code Online (Sandbox Code Playgroud)
有人知道发生了什么吗?在我包含sumKernel调用之前,代码编译得很好.
谢谢.
在我的test.cu文件中(cu文件项类型是CUDA C/C++)
__global__ void foo()
{
}
void CudaMain()
{
foo<<<1,1>>>();
}
Run Code Online (Sandbox Code Playgroud)
在我的test.cpp文件中
#include "mycuda.cu"
int main()
{
CudaMain();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和compilator在test.cu文件中发送错误"错误c2059语法错误'<'"
我以前使用Visual Studio 2008来编译和运行CUDA应用程序.我已经切换到Visual Studio 2010和Windows 7.我一直在尝试整个上午设置集成,但还没有取得圆满成功.我已经下载了工具包,安装了Nsight,确保设置了libraries/include/bin路径,选中框以使用CUDA 3.2的Build Customization,并将单个.cu文件的属性设置为CUDA C类型/ C++而不是C/C++.我得到一个关于不支持编译器v100的错误,所以我将项目平台设置为v90并且现在正在下载Visual Studio 2008.我希望我不必安装两个版本的visual studio,但是哦.无论如何,大多数语法高亮显示已启用,一些关键字如"int"为蓝色,注释为绿色,字符串为红色.但是,像__ global__这样的cuda特定关键词不是.另外,我已经通过include目录检查了,找不到cutil.h,所以我想知道3.2 SDK的安装中是否还有其他内容(我已经包含了cuda_runtime.h,但是我不知道这是否能解决我的问题).有谁知道如何解决这一问题?
编辑:我安装了Visual Studio 2008.当我尝试编译时,我得到一个巨大的错误列表,从1> C开始:\ Program Files(x86)\ Microsoft Visual Studio 9.0\VC\include\crtdefs.h(490):错误:类型名称重新声明无效"size_t",而以下大多数错误都必须处理size_t类型.所有错误都在包含的文件中,其中大部分都是我从未见过的.有谁知道发生了什么?或者,如果有一个简单的逐步指南让VS2010使用cuda?
编辑2:显然我有许多当前设置中的一个为64位,其他设置为32位.将活动配置,Cuda C/C++目标机器平台和链接器|高级目标机器全部更改为32位或64位允许我编译和运行.我仍然不知道如何修复__ global__和这样的语法高亮,但它不是一个大问题.
我试图在安装了Visual Studio 2010的Windows 7中编译此Hello World程序,但是在运行时收到以下错误消息nvcc hellocuda.cu:
nvcc fatal : nvcc cannot find a supported cl version. Only MSVC 8.0 and MSVC 9.0 are supported
Run Code Online (Sandbox Code Playgroud)
我该如何编译这个CUDA程序?
我一直在Jason Sanders和Edward Kandrot的例子中阅读CUDA,他们遇到了第4章,他们用CUDA解决了Julia Set.此外,书籍页面上还有一个源代码; https://developer.nvidia.com/content/cuda-example-introduction-general-purpose-gpu-programming-0
当我尝试包含项目所需的所有文件(所有头文件和.cu文件)时,它将无法编译.我通常从头开始创建的CUDA项目没有问题(VS 2010,CUDA 5.0).
有没有人有同样的问题,你可以请指出每一步,以使这个朱莉娅集设置应该是吗?
PS这是一个在头文件中不起作用的代码:
/*
* Copyright 1993-2010 NVIDIA Corporation. All rights reserved.
*
* NVIDIA Corporation and its licensors retain all intellectual property and
* proprietary rights in and to this software and related documentation.
* Any use, reproduction, disclosure, or distribution of this software
* and related documentation without an express license agreement from
* NVIDIA Corporation is strictly prohibited.
*
* Please refer to the applicable NVIDIA end user license agreement …Run Code Online (Sandbox Code Playgroud) 当我想编译我的程序(使用 Cusparse)时,出现了以下几行:
tmp/tmpxft_00001048_00000000-13_matvec.o:在函数main':
tmpxft_00001048_00000000-1_matvec.cudafe1.cpp:(.text+0x6d5): undefined reference tocusparseCreate中
同样的结果不仅适用于 cusparseCreate,也适用于 cusparseCreateMatDescr、cusparseSetMatType、cusparseSetMatIndexBase、cusparseXcoo2csr、cusparseDsctr、cusparseDcsrmv_v2、cusparseDestroyMatDescr 和 cusparseDestroy。这是什么意思?
在 Windows 中编译 CUDA 代码的好方法是什么?
我尝试了不同的方式,与 Visual Studio 链接并使用 nvcc 命令从命令行进行编译。
视觉工作室的问题。我遵循了互联网上找到的大部分编译链接,但我仍然无法编译简单的程序。
nvcc 的问题。找不到路径 windows.h。我尝试在 nvcc.profile 中添加 Visual Studio 的包含路径,但它不起作用?
有人对此有好的解决方案吗?
我正在使用 CUDA 4.2 和 Visual Studio 2010。