-1

私は初心者としてCUDAに取り組んでおり、CUDPHandleを使用するたびにコンパイルでエラーが発生する事前に作成されたコードを実行しようとしています...たとえば

void HPGMST()
{
    //Reinitialize the ranking arrays, must be orig but this also works

    CUDA_SAFE_CALL( cudaMemcpy( d_vertex_split_rank, h_vertex_split_rank_test, sizeof(unsigned long long int)*no_of_vertices, cudaMemcpyHostToDevice));

    CUDA_SAFE_CALL( cudaMemcpy( d_edge_rank, h_edge_rank_test, sizeof(unsigned long long int)*no_of_edges, cudaMemcpyHostToDevice));





    //Make both grids needed for execution, no_of_vertices and no_of_edges length sizes

    int num_of_blocks, num_of_threads_per_block;

    SetGridThreadLen(no_of_edges, &num_of_blocks, &num_of_threads_per_block);

    dim3 grid_edgelen(num_of_blocks, 1, 1);

    dim3 threads_edgelen(num_of_threads_per_block, 1, 1);

    SetGridThreadLen(no_of_vertices, &num_of_blocks, &num_of_threads_per_block);

    dim3 grid_vertexlen(num_of_blocks, 1, 1);

    dim3 threads_vertexlen(num_of_threads_per_block, 1, 1);





    //Append the Weight and Outgoing vertex into a single array, 8-10 bits for weight and 20-22 bits for vertex ID

    //Append in Parallel on the Device itself, call the append kernel

    AppendKernel_1<<< grid_edgelen, threads_edgelen, 0>>>(d_segmented_min_scan_input, d_weight, d_edge, no_of_edges);



    //Create the Flag needed for segmented min scan operation, similar operation will also be used at other places

    ClearArray<<< grid_edgelen, threads_edgelen, 0>>>( d_edge_flag, no_of_edges );



    //Mark the segments for the segmented min scan using scan

    MakeFlag_3<<< grid_vertexlen, threads_vertexlen, 0>>>( d_edge_flag, d_vertex, no_of_vertices);



    //Perfom the Segmented Min Scan on resulting array using d_edge_flag as segments

    cudppPlan(&segmentedScanPlan_min, config_segmented_min, no_of_edges, 1, 0 ); //Make the segmented min scan plan

最後の行に次のエラーが表示されます。

  1. タイプ「CUDPPHandle *」の引数は、タイプ「CUDPPHandle」のパラメータと互換性がありません
  2. 「CUDPPConfiguration」から「CUDPPHandle *」への適切な変換関数が存在しない
  3. 「int」から「CUDPPConfiguration」に変換するための適切なコンストラクターが存在しません
  4. 関数呼び出しの引数が少なすぎる

私は 'nvcc -arch sm_20' を使用して tesla C2075 でコンパイルしています。

4

1 に答える 1

1

問題は、投稿したエラー テキストにあります。

関数呼び出しの引数が少なすぎる

コードには 5 つの引数しかありません。ここでわかるように、cudppPlan 関数には 6 つの引数が必要でした。呼び出しの最初の引数が欠落しているようです。

于 2014-03-07T10:27:22.680 に答える