gpt4 book ai didi

c++ - nsight eclipse 版本索引器的 CUDA 7.5 问题

转载 作者:行者123 更新时间:2023-11-28 06:06:13 25 4
gpt4 key购买 nike

刚刚在 ubuntu 15.04 上安装了 cuda 7.5。出于某种原因,我的索引器没有获取任何 cuda 函数。我不确定为什么。代码编译正常,但我发现无法按 Ctrl+Space 并查看我的选项很烦人。我试图包含一些 cuda header ,但这似乎无济于事。索引器适用于所有 STL 函数,但没有以 cuda 开头的函数...显示在自动完成中。

#include <iostream>
#include <fstream>
#include <cmath>
#include <vector>
#include <cuda.h>
#include <cuda_runtime.h>
#include <cuda_device_runtime_api.h>

inline void cuda_error(cudaError_t code, const char* lbl)
{
if(code != cudaSuccess)
{
std::cerr << lbl << " : " << cudaGetErrorString(code) << std::endl;
exit(1);
}
}

struct City
{
int n;
float x, y;

City(int n_ = 0, float x_ = 0, float y_ = 0) : n(n_), x(x_), y(y_) { }

__host__ __device__ float fast_distance(const City& other)
{
float dx = other.x - x;
float dy = other.y - y;
return dx * dx + dy * dy;
}
__host__ __device__ float distance(const City& other)
{
float dx = other.x - x;
float dy = other.y - y;
return sqrtf(dx * dx + dy * dy);
}
};

int main()
{
using namespace std;

ifstream fin("input.txt");
vector<City> citites;
City c;
while(fin >> c.n >> c.x >> c.y)
citites.push_back(c);

City* cities_d;
//if I start typing cuda and hit ctrl + space there are no option displayed
cudaMalloc(&cities_d, sizeof(City) * citites.size());
cudaMemcpy(cities_d, citites.data(), citites.size() * sizeof(City), cudaMemcpyHostToDevice);

return 0;
}

最佳答案

我只需要将它放在程序的顶部。不是很好的解决方案,但它确实有效。我猜这个新版本的 nsight 不会让 eclipse 在默认情况下使用 cuda 自动包含已经包含的 header 。

#ifdef __CDT_PARSER__
#undef __CUDA_RUNTIME_H__
#include <cuda_runtime.h>
#endif

现在奇怪的是,当我这样做时,它会禁用以黄色突出显示设备代码。

关于c++ - nsight eclipse 版本索引器的 CUDA 7.5 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32374964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com