Проблема компиляции

Здравствуйте, хочу научиться работать с CUDA, нашел на хабре статью с подробным описанием перемножения векторов. Я создаю проект в CudaWinApp VS, помещаю код в файл main.cu, но когда я пытаюсь его компилить у меня выскакивает сотня(насколько я знаю VS больше не показывает) ошибок

1>c:\cuda\include\texture_fetch_functions.h(71): error: expected a file name
1>c:\cuda\include\texture_fetch_functions.h(73): error: expected a file name
1>C:\CUDA\include\common_functions.h(96): error: expected a file name
1>C:\CUDA\include\common_functions.h(98): error: expected a file name
1>C:\CUDA\include\common_functions.h(100): error: expected a file name
и тд

вот собственно сам код

  1. #include <stdio.h>
  2. #include <cuda_runtime_api.h>
  3.  
  4. #define SIZE 512
  5. __global__ void addVector(float* left, float* right, float* result)
  6. {
  7.         //Получаем id текущей нити.
  8.         int idx = threadIdx.x;
  9.  
  10.         //Расчитываем результат.
  11.         result[idx] = left[idx] + right[idx];
  12. }
  13. __host__ int main()
  14. {
  15.         //Выделяем память под вектора
  16.         float* vec1 = new float[SIZE];
  17.         float* vec2 = new float[SIZE];
  18.         float* vec3 = new float[SIZE];
  19.  
  20.         //Инициализируем значения векторов
  21.         for (int i = 0; i < SIZE; i++)
  22.         {
  23.                 vec1[i] = i;
  24.                 vec2[i] = i;
  25.         }
  26.  
  27.         //Указатели на память видеокарте
  28.         float* devVec1;
  29.         float* devVec2;
  30.         float* devVec3;
  31.  
  32.         //Выделяем память для векторов на видеокарте
  33.         cudaMalloc((void**)&devVec1, sizeof(float) * SIZE);
  34.         cudaMalloc((void**)&devVec2, sizeof(float) * SIZE);
  35.         cudaMalloc((void**)&devVec3, sizeof(float) * SIZE);
  36.  
  37.         //Копируем данные в память видеокарты
  38.         cudaMemcpy(devVec1, vec1, sizeof(float) * SIZE, cudaMemcpyHostToDevice);
  39.         cudaMemcpy(devVec2, vec2, sizeof(float) * SIZE, cudaMemcpyHostToDevice);
  40.  
  41.         dim3 gridSize = dim3(1, 1, 1);    //Размер используемого грида
  42.         dim3 blockSize = dim3(SIZE, 1, 1); //Размер используемого блока
  43.  
  44.         //Выполняем вызов функции ядра
  45.         addVector <<< gridSize, blockSize>>>(devVec1, devVec2, devVec3);
  46.  
  47.         //Хендл event'а
  48.         cudaEvent_t syncEvent;
  49.  
  50.         cudaEventCreate(&syncEvent);    //Создаем event
  51.         cudaEventRecord(syncEvent, 0);  //Записываем event
  52.         cudaEventSynchronize(syncEvent);  //Синхронизируем event
  53.  
  54.         //Только теперь получаем результат расчета
  55.         cudaMemcpy(vec3, devVec3, sizeof(float) * SIZE, cudaMemcpyDeviceToHost);
  56.         //Результаты расчета
  57.         for (int i = 0; i < SIZE; i++)
  58.         {
  59.                 printf("Element #%i: %.1f\n", i , vec3[i]);
  60.         }
  61.  
  62.         // Высвобождаем ресурсы
  63.  
  64.         cudaEventDestroy(syncEvent);
  65.  
  66.         cudaFree(devVec1);
  67.         cudaFree(devVec2);
  68.         cudaFree(devVec3);
  69.  
  70.         delete[] vec1; vec1 = 0;
  71.         delete[] vec2; vec2 = 0;
  72.         delete[] vec3; vec3 = 0;
  73.         return 0;
  74. }

В чем может быть проблема?

Forums: 

Там вверху все подключено,

Там вверху все подключено, просто угловые скобки стали тегами.

Я позволил себе переформатировать немного.

Автору: это тут нигде не написано, но надо код обрамлять тегами <code> </code>

О круто я хоть про теги

О круто я хоть про теги (code) теперь знать буду когда код выкладывать буду :-)

А лучше всего <code

А лучше всего <code language="C"> (или тот, который у вас - машинка знает их очень много)

если кто еще столкнется с

если кто еще столкнется с такой же проблемой, возможная причина это то, что ваш CUDA проект расположен в папке, в пути к которой присутствуют русские символы.