Я играл с счетчиками профилирования GPU (GTX580). Может ли кто-нибудь сказать мне, что вызывает неопределенность результатов счетчиков профилирования. У меня очень простое ядро, которое просто копирует буфер в другой буфер. И я профилирую инструкции, выполненные в этом ядре. Для некоторых настроек количества рабочих элементов и размера рабочей группы результаты стабильны при разных запусках. Но для некоторых других конфигураций он значительно отличается между разными прогонами.
Мне сказали это, потому что деформация (и рабочая группа) для сопоставления СМ недетерминирована. Но, как я знаю, по крайней мере, деформации, принадлежащие рабочей группе, будут выполняться только в одном SM, а в ядре нет ветвей, поэтому в теории, независимо от того, как деформируются отображения в SM, результаты все равно должны быть так же.
Любая помощь будет оценена.
РЕДАКТИРОВАТЬ: Это код вопроса:
#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
__kernel void histogram(__global float* x, __global float* y)
{
int id = get_global_id(0);
y[id] = x[id];
}