首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译错误与thrust::device_vector的推力::复杂,可能是由于一个错误的实现

编译错误与thrust::device_vector的推力::复杂,可能是由于一个错误的实现
EN

Stack Overflow用户
提问于 2018-06-21 17:47:38
回答 1查看 1.1K关注 0票数 2

实际上,我正在学习CUDA to ,我正在尝试用.cpp.hpp文件和.cu.cuh文件来做一个项目。因此,我已经完成了第一个小实现(参见下面的代码),但是我有一个编译错误。这是编译错误的输出

老实说,我不知道这种错误到底意味着什么,但我发现这是从这一行中得到的:

代码语言:javascript
复制
thrust::device_vector<thrust::complex<T>> deviceVec_;

因为当我注释掉这一行时,就没有编译错误了。因此,我假设这是由于thrust::device_vector实现的内容,以及我在.hpp文件中包含了.cuh文件,并且由于.cuhg++处理,所以预处理将由g++而不是nvcc执行。

我的main.cpp文件的内容:

代码语言:javascript
复制
#include "QGPU.hpp"
int main()
{
     QGPU::GPU<double>  gpu;
     return (0);
}

我的.hpp文件的内容:

代码语言:javascript
复制
#pragma once

# include "QCUDA.cuh"

namespace QGPU {

 template<typename T>
 class GPU {
 private:
  QCUDA::CUDAGPU<T> cgpu_;
 public:
  GPU();
  virtual ~GPU();

};

template<typename T>
GPU<T>::GPU()
{};

template<typename T>
GPU<T>::~GPU()
{};

};

我的.cuh文件的内容:

代码语言:javascript
复制
#pragma once

# include <thrust/host_vector.h>
# include <thrust/device_vector.h>
# include <thrust/complex.h>

namespace QCUDA {

 template<typename T>
 class CUDAGPU {
 private:
  thrust::host_vector<thrust::complex<T>> hostVec_;
  thrust::device_vector<thrust::complex<T>> deviceVec_;
 public:
  CUDAGPU();
  virtual ~CUDAGPU();
 };

 template<typename T>
 CUDAGPU<T>::CUDAGPU()
 {};

 template<typename T>
 CUDAGPU<T>::~CUDAGPU()
 {};

};

因此,我的问题是:

是否有解决此编译错误的方法,从而维护此实现?

或者我必须改变我对如何实现一个.cpp.hpp文件和.cu.cuh文件混合在一起的项目的看法?

如果我必须改变我的实施,有可能得到一个类似的例子,什么是好的实施,跟踪我的注意力?

NB: --实际上我正在使用一个GTX 1060和cuda版本:

代码语言:javascript
复制
$nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Wed_Apr_11_23:16:29_CDT_2018
Cuda compilation tools, release 9.2, V9.2.88
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-21 18:43:59

您需要将main.cpp重命名为main.cu以使其工作。否则,您将把CUDA代码导入普通的.cpp文件,主机C++将无法编译该代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50974743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档