相关疑难解决方法(0)

How do I start a new CUDA project in Visual Studio 2008?

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 …

c++ cuda visual-studio

27
推荐指数
1
解决办法
4万
查看次数

在CUDA内核中使用Eigen 3.3

自2016年11月起,可以编译引用Eigen3.3的CUDA代码 - 请参阅此答案

这个答案不是我正在寻找的,现在可能已经"过时",因为现在可能有一种更简单的方法,因为以下是在文档中写的

从Eigen 3.3开始,现在可以在CUDA内核中使用Eigen的对象和算法.但是,仅支持一部分功能,以确保在CUDA内核中不会触发动态分配.

另见这里.不幸的是,我无法找到任何这样的例子.

我的问题

现在是否可以编写如下的内核,它应该只计算一堆点积?

__global__ void cu_dot(Eigen::Vector3d *v1, Eigen::Vector3d *v2, double *out, size_t N)
{
    int idx = blockIdx.x * blockDim.x + threadIdx.x;
    if(idx < N)
    {
        out[idx] = v1[idx].dot(v2[idx]);
    }
    return;
}
Run Code Online (Sandbox Code Playgroud)

我可以编译它,但它似乎不起作用.当我尝试将数据复制到主机时,我明白了illegal memory access.请注意,我最初将Vector3d存储为`std :: vector然后分别使用

cudaMalloc((void **)&p_device_v1, sizeof(Eigen::Vector3d)*n);
cudaMemcpy(p_v1_device, v1.data(), sizeof(Eigen::Vector3d)*n, cudaMemcpyHostToDevice);
Run Code Online (Sandbox Code Playgroud)

我在https://github.com/GPMueller/eigen-cuda上使用CMake 建立了一个MWE项目

c++ cuda c++11 eigen3

7
推荐指数
1
解决办法
3230
查看次数

为什么 nvcc 无法使用 boost::spirit 编译 CUDA 文件?

我正在尝试将 CUDA 集成到使用 boost::spirit 的现有应用程序中。

隔离问题后,我发现以下代码无法与 nvcc 编译:

main.cu

#include <boost/spirit/include/qi.hpp>
int main(){
    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

编译nvcc -o cudaTest main.cu我得到了很多可以在这里看到的错误。

但是,如果我将文件名更改为main.cpp,然后使用 再次编译nvcc,则可以正常工作。这里发生了什么,我该如何解决?

c++ boost cuda boost-spirit nvcc

4
推荐指数
1
解决办法
2290
查看次数

标签 统计

c++ ×3

cuda ×3

boost ×1

boost-spirit ×1

c++11 ×1

eigen3 ×1

nvcc ×1

visual-studio ×1