1

2 つのベクトル間の加算を行うカーネルを実行するときの帯域幅を測定しました。

__global__ void add(float *a, float *b, float *c, int n)
{
    int tid = blockIdx.x*blockDim.x + threadIdx.x;

    while (tid < n)
    {
        c[tid] = a[tid] + b [tid];
        tid += blockDim.x * gridDim.x;
    }
}

最初にカーネルを 1 回起動してデバイスにロードし、次にカーネル実行の 10 回の反復を測定します。

ベクトルの長さが 1000000 の場合、帯域幅は 1000 よりもはるかに優れています。

なんで ?

ありがとう。

4

1 に答える 1