2010-03-06 2 views
13

Стандартное соглашение, как представляется, должно предоставить CUDA исходным кодам файлы расширения .cu, чтобы отличить их от файлов C с расширением .c. Каково соответствующее соглашение для файлов заголовков, специфичных для CUDA? Есть ли это?Исходные файлы CUDA получают расширение .cu. Что получают файлы заголовков?

ответ

24

Некоторые люди (включая CUDA SDK) используют .cuh для файлов заголовков CUDA, и если вы включаете код устройства в заголовок, возможно, это может помочь. Однако на самом деле нет специального значения, связанного с расширением файла заголовка (в отличие от исходного файла, где он определяет, какой компилятор использовать), поэтому лично я придерживаюсь .h.

+0

Спасибо! В некоторых случаях у меня есть код устройства в заголовке, и я хотел бы сделать это ясным в расширении файла, чтобы люди не включали его в исходные файлы, отличные от CUDA, поэтому .cuh звучит как правильный ответ для этого , (Это также среда, которая отличает заголовки C++ .hpp от C .h, поэтому есть локальный прецедент.) В противном случае, да, .h имеет смысл. –

+1

Когда вы работаете с версией Linux Eclipse, действительно важно, какое расширение имеет файл include. С расширением '.h' Eclipse не корректно форматирует содержимое. У меня был этот вопрос почти 2 года, пока я не понял, что это может быть из-за неправильного продления. Изменение расширения на '.cuh' решило мою проблему, и теперь Eclipse окончательно форматирует файл include. Вверх Мистер Том :-) –

4

Нет - просто используйте .h для файлов заголовков. Исходные файлы CUDA имеют различный суффикс, чтобы упростить работу с тем, чтобы различные исходные файлы в сборке были скомпилированы с помощью правильного компилятора (подумайте о правилах makefile).

+6

На мой взгляд, это хорошая привычка использовать разные расширения для заголовков, имеющих специальный код CUDA. Таким образом, вы можете избежать попыток включить их в обычные файлы на C++. – shinjin

Смежные вопросы