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 よりもはるかに優れています。
なんで ?
ありがとう。