2013-10-19 63 views
1

我想排序字符串與cuda推力。Cuda推力字符串或字符排序

我發現了一個樣本此鏈接
https://github.com/bzip2-cuda/bzip2-cuda/blob/master/tst/string_sort_try0.cu

,當我嘗試編譯我收到以下錯誤消息。我能做些什麼來解決它?

"Error 1 error : **no instance of overloaded function "thrust::pointer<Element, Tag, Reference, Derived>::operator= [with Element=char, Tag=thrust::device_system_tag, Reference=thrust::device_reference<char>, Derived=thrust::device_ptr<char>]" matches the argument list** C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust\device_ptr.h 109 1 CharSort "

代碼塊的一部分是

class device_string 
{ 
public: 
    int cstr_len; 
    char* raw; 
    thrust::device_ptr<char> cstr; 

    static char* pool_raw; 
    static thrust::device_ptr<char> pool_cstr; 
    static thrust::device_ptr<char> pool_top; 

    // Sets the variables up the first time its used. 
    __host__ static void init() 
    { 
       static bool v = true; 
      if(v) 
      { 
        v = false; 

        pool_cstr = thrust::device_malloc(POOL_SZ); 
        pool_raw = (char*)raw_pointer_cast(pool_cstr); 
        pool_top = pool_cstr; 
      } 
    } 
    // Destructor for device variables used. 
+2

自2年前**以來,推力發生了很大變化** – kangshiyin

回答

3

你可以通過改變這行代碼解決特定的問題:

   pool_cstr = thrust::device_malloc(POOL_SZ); 

這樣:

   pool_cstr = thrust::device_malloc<char>(POOL_SZ); 

但是正如@Eric所表明的,一旦你解決了這個問題,你將遇到其他的問題,試圖編譯這段代碼。

編輯:實際上其餘的問題似乎是所有的警告,併產生一個可執行文件似乎運行正常(與上述修復)。