Только что проверил. Мне не удалось повторить вашу проблему.
У меня GTX470.
Итак. Написал ядро:
__global__ void testKernel( int* g_odata)
{
if(threadIdx.x==0)
{
g_odata[2*(blockIdx.y*gridDim.x+blockIdx.x)] = blockIdx.y;
g_odata[2*(blockIdx.y*gridDim.x+blockIdx.x)+1] = blockIdx.x;
}
}
Запустил его на 8192х8192 блоков и 1024 треда(в ваших видяхах максимум 512 тредов в блоке, на ферми 1024):
dim3 grid( 8192, 8192, 1);
dim3 threads( 1024, 1, 1);
testKernel<<< grid, threads, 0 >>>( d_odata);
Естественно выделил память и т.п.
И получил последним элементом массива: 8191x8191.
На больших числах не тестировал, потому что память кончается :( Надо уже какую-то логику реализовывать.
А вообще не понятно откуда у вас эти не круглые значения 265, 264?