Как заставить VS 2010 распознавать определенные функции CUDA

#visual-studio-2010 #cuda #intellisense #keyword #code-completion

#visual-studio-2010 #cuda #intellisense #ключевое слово #завершение кода

Вопрос:

На данный момент CUDA уже распознает ключевую функцию CUDA C / C , такую как cudaMalloc , cudaFree , cudaEventCreate и т.д.

Он также распознает определенные типы, такие как dim3 и cudaEvent_t .

Однако он не распознает другие функции и типы, такие как шаблон текстуры, __syncthreads функции или atomicCAS function.

Все компилируется просто отлично, но я устал видеть повсюду красные подчеркивания, и я хочу увидеть параметры примера, отображаемые при вводе любой распознаваемой функции.

Как мне заставить VS перехватывать эти функции?

Ответ №1:

Вы могли бы создать фиктивный файл #include следующего вида:

 #pragma once
#ifdef __INTELLISENSE__
void __syncthreads();
...
#endif
  

Это должно скрыть поддельные прототипы от компиляторов CUDA и Visual C , но все равно сделать их видимыми для IntelliSense.

Источник для __INTELLISENSE__ макроса: http://blogs.msdn.com/b/vcblog/archive/2011/03/29/10146895.aspx

Ответ №2:

Вам нужно добавить ключевые слова, относящиеся к CUDA, такие как __syncthreads, в файл usertype.dat для visual studio. Пример файла usertype.dat включен в комплект NVIDIA CUDA SDK. Вам также необходимо убедиться, что visual Studio распознает файлы .cu как файлы c / c , как описано в этом сообщении:

Однако обратите внимание, что там, где используется этот post $(CUDA_INC_PATH) , вам следует использовать последние версии CUDA $(CUDA_PATH)/include .

Кроме того, я бы порекомендовал Visual Assist X — не бесплатный, но стоит денег — для улучшения intellisense. Это хорошо работает с CUDA, если вы будете следовать этим инструкциям:

http://www.wholetomato.com/forum/topic.asp?TOPIC_ID=5481

http://forums.nvidia.com/index.php?showtopic=53690

Комментарии:

1. __syncthreads находится в файле usertype.dat, и он выделяется синим цветом, но функция по-прежнему не распознается (подчеркнуто красным). Я очень четко следовал инструкциям в блоге, но это работало только для функций, которые я описал выше. Я также вручную нашел каталог включения CUDA 4.0. Единственным преимуществом было то, что я смог открыть документы.