Можно ли сделать новую команду opencl для генерации сокращений?
Чтобы получить данные резюме из результатов, таких как следующий код:
int k = get_global_id(0); double result=d[k]*d[k];
Это должны быть используемые сокращения, которые очень трудно выполнить и уменьшают четкость кода, как сказано в следующей ссылке:
http://developer.amd.com/resources/articles-whitepapers/opencl-optimization-case-study-simple-reductions/"]http://developer.amd.com/resources/articles-whitepapers/opencl-optimization-case-study-simple-reductions
Таким образом, было бы преимуществом, что opencl имел команду сделать это (также над kuda)
Что я уже пробовал:
Это меньший рабочий код, который я сделал, чтобы сделать сокращения:
if (k==0) { int size=HEIGHT; while(size>1) { barrier(CLK_GLOBAL_MEM_FENCE ); //to give time to all rms[k] of the level be filled rms[size]=0.0f;size=(1+size)/2; rms[k]+=rms[k+size]; } } barrier(CLK_GLOBAL_MEM_FENCE ); //to give time to all rms[k] be filled media=rms[0]/(float) WIDTH/(float) HEIGHT;