График тяги; Нативная проблема компиляции CUDA ... Linux
-
27-10-2019 - |
Вопрос
Я пытаюсь собрать простой пример из Упорный график.
На данный момент у меня все прокомментировано в main(void)
Я ищу какое -либо направление, которое кто -то хочет дать!
Моя ошибка компиляции такова:
mseil@cuda:~/mseil_CUDA/test$ nvcc Example.cu
/usr/local/cuda/bin/../include/thrust/detail/device/cuda/reduce_by_keyvalue.inl(90): error: name followed by "::" must be a class or namespace name
/usr/local/cuda/bin/../include/thrust/graph/detail/adjacency_list.inl(141): error: name followed by "::" must be a class or namespace name
/usr/local/cuda/bin/../include/thrust/graph/detail/adjacency_list.inl(213): error: name followed by "::" must be a class or namespace name
/usr/local/cuda/bin/../include/thrust/graph/detail/adjacency_list.inl(344): error: name followed by "::" must be a class or namespace name
4 errors detected in the compilation of "/tmp/tmpxft_00007122_00000000-9_Example.cpp4.ii".
Я сосредоточился на самой первой ошибке, строке 90 include/thrust/detail/device/cuda/reduce_by_keyvalue.inl
Файл, и я не вижу, в чем проблема. Я новичок в C ++ (и я знаю C на уровне начинающих). Все выглядит нормально в отношении файла шаблона, и я был бы шокирован, если ребята из Nvidia не знают, что они делают-так что это должен быть я.
Код вокруг строки 90:
typedef typename thrust::iterator_traits<InputIterator1>::difference_type difference_type;
difference_type n =key_last - key_first;
difference_type N =result_last - result_first;
const std::size_t BLOCK_SIZE =512; // number of threads per block
const std::size_t MAX_BLOCKS =thrust::experimental::arch::max_active_threads() / BLOCK_SIZE;
const std::size_t NUM_BLOCKS =std::min( MAX_BLOCKS, n + (BLOCK_SIZE - 1) / BLOCK_SIZE); //offending line.
И в настоящее время единственный код в моем основном: (все остальное прокомментировано.)
#include <thrust/graph/adjacency_list.hpp>
using namespace thrust;
int main(void){
typedef adjacency_list<undirectedS, disallow_parallelS> graph_t;
return 0;
}
Решение
Я разработчик Lib Lib, Drkkojima. Я обновился до 0,2RC03 и решил проблемы.
Другие советы
Проблема с включением стандартных файлов ввода -вывода?
Проблема, по-видимому, является несовместимостью CUDA 3.2, и тяну 1,3 с помощью графа тяги 0,2RC2. Мы возвратились в CUDA 3.1, и Thrust Graph 1.2.1, и это в значительной степени решило проблему. (Все примеры файлов компилируются, кроме по одному на каждом; но мы можем жить с этим.)