nvcc
иногда возникают проблемы при компиляции сложного кода шаблона, такого как в Boost, даже если код используется только в __host__
функциях.
Когда расширение файла равно .cpp
, nvcc
не выполняет сам синтаксический анализ и вместо этого передает код компилятору хоста, поэтому вы наблюдаете различное поведение в зависимости от расширения файла.
Если возможно, попробуйте поместить на карантин код, который зависит от Boost, в .cpp
файлыкоторые не нужно анализировать nvcc
.
Я также обязательно попробую nvcc
, который поставляется с последней CUDA 4.1 .Поддержка шаблонов nvcc
улучшается с каждым выпуском.