0

バブルソートコードを作成しました。ユーザー関数 createProgram の clbuildprogram がエラーを出している 私のカーネルは次のように見えます:

__kernel void sort_kernel(__global const float *a, __global const float *b)
{
    const int n=100;
    int j;
    float temp;
    int gid = get_global_id(0);
    b[gid]=a[gid];

    for(j=0; j < n-gid; j++)
    {
        if(b[j+1]<b[j])
        {
            temp=b[j];
            b[j]=b[j+1];
            b[j+1]=temp;
        }
    }
}

clbuildprogram は、ランタイム エラーに従ってエラーを出しています。

***カーネルのエラー: :1:1: エラー: 不明な型名 '_kernel'

_kernel void sort_kernel(__global const float *a, __global const float *b) //, ^

:1:9: エラー: 予想される識別子または '(' _kernel void sort_kernel(__global const float *a, __global const float *b) //, ^

:21:3: エラー: 外部宣言が必要です } ^

:23:1: エラー: 外部宣言が必要です } ^

:23:1: エラー: 外部宣言が必要です***

何がエラーなのか、どうすれば修正できるのか教えてください...?

4

1 に答える 1

2

_プログラムでa を見逃しました。エラーは明らかです。ここに貼り付けられたコードは、実行したものと同じではないと思います。_kernelプログラムでtoを修正__kernelします。

于 2013-02-09T07:56:06.763 に答える