График тяги; Собственная проблема компиляции CUDA ... Linux - PullRequest
1 голос
/ 29 января 2011

Я пытаюсь скомпилировать простой пример из графика тяги.

На данный момент я закомментировал все в 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;
}

Ответы [ 3 ]

2 голосов
/ 07 апреля 2011

Я разработчик графов тяги, drkkojima. Я обновил до 0.2RC03 и решил проблемы.

1 голос
/ 07 февраля 2011

Проблема с включением стандартных файлов ввода / вывода?

0 голосов
/ 25 февраля 2011

По-видимому, проблема заключается в несовместимости CUDA 3.2 и тяги 1.3 с графиком тяги 0.2RC2.Мы откатились до CUDA 3.1 и Thrust-графа 1.2.1, и это в значительной степени решило проблему.(все файлы примеров компилируются, кроме одного на каждом; но мы можем жить с этим.)

...