4

OpenCL で関数を定義するにはどうすればよいですか? 関数ごとに 1 つのプログラムを作成してみました。そして、それはうまくいきませんでした。

float AddVectors(float a, float b)
{
    return a + b;
}

kernel void VectorAdd(
    global read_only float* a,
    global read_only float* b,
    global write_only float* c )
{
    int index = get_global_id(0);
    //c[index] = a[index] + b[index];
    c[index] = AddVectors(a[index], b[index]);
}
4

1 に答える 1

5

関数ごとに 1 つのプログラムを作成する必要はありません。代わりに、__kernel(または) でマークされた一連の関数と、たとえばcallを使用しkernelて潜在的に補助関数 (関数など) のプログラムを作成します。AddVectorsclCreateProgramWithSource

Apple、AMD、NVIDIA の基本的なチュートリアルをご覧ください。

于 2010-08-02T00:48:02.270 に答える