2011-01-29 7 views
1

Je suis en train de compiler un exemple simple de thrust graph.Graphique de poussée; problème de compilation CUDA natif ... Linux

Au moment où j'ai tout commentaire dans main(void)

Je cherche quelqu'un QUELQUE direction est prêt à donner!

Mon erreur de compilation est la suivante:

[email protected]:~/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". 

Je mis le doigt sur la première erreur, la ligne 90 du fichier include/thrust/detail/device/cuda/reduce_by_keyvalue.inl et je ne vois pas quel est le problème. Je suis nouveau en C++ (et je connais C au niveau débutant). Tout va bien pour un fichier template, et je serais choqué si les gars de NVIDIA ne savent pas ce qu'ils font - donc ça doit être moi.

Le code autour de la ligne 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. 

Et actuellement le seul code dans mon principal: (Tout le reste est commenté.)

#include <thrust/graph/adjacency_list.hpp> 
using namespace thrust; 

int main(void){ 
    typedef adjacency_list<undirectedS, disallow_parallelS> graph_t; 

    return 0; 
} 
+0

Marquer comme fermé, commenter, ne rien dire s'il est corrigé. –

+0

Actuellement, ce problème est toujours ouvert. J'ai ouvert un ticket avec les développeurs de la bibliothèque graphique et j'attends un commentaire. Je reviens également à mon administrateur pour revenir à CUDA 3.1. Je vais mettre à jour quand j'en saurai plus. – avgvstvs

+0

Le problème est apparemment une incompatibilité de CUDA 3.2, et poussée 1.3 avec thrust-graphe 0.2RC2. Nous sommes revenus à CUDA 3.1, et thrust-graphique 1.2.1 et cela a largement résolu le problème. – avgvstvs

Répondre

2

Je suis poussée graph lib developer, drkkojima. J'ai mis à jour à 0.2RC03 et résolu les problèmes.

1

problème, y compris la norme i/o fichiers?

0

Le problème est apparemment une incompatibilité de CUDA 3.2, et poussée 1.3 avec thrust-graphique 0.2RC2. Nous sommes revenus à CUDA 3.1, et thrust-graphique 1.2.1 et cela a largement résolu le problème. (tous les fichiers d'exemple compilent sauf un sur chaque, mais nous pouvons vivre avec cela.)

Questions connexes