简体   繁体   中英

CUDA 7.5 issues with nsight eclipse edition indexer

just installed cuda 7.5 on ubuntu 15.04. For some reason my indexer is not picking up any of the cuda functions. I am not sure why. The code compiles fine but I find it annoying not being able to hit Ctrl+Space and see my options. I tried to include some of the cuda headers but this does not seem to help. The indexer works for all of the stl functions but none of the function that start with cuda... show up in the auto complete.

#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;
}

I just had to put this at the top of my program. Not that great of a solution but it works. I guess this new version of nsight does not have eclipse automatically include the already included headers by default with cuda.

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

Whats strange now is that when I do this it disables the highlighting of device code in yellow.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM