Скажите, что у меня есть такая конструкция:
for(int i=0;i<5000;i++){
const int upper_bound = f(i);
#pragma acc parallel loop
for(int j=0;j<upper_bound;j++){
//Do work...
}
}
Где f
- монотонно убывающая функция i
.
Поскольку num_gangs
, num_workers
и vector_length
не установлены, OpenACC выбирает то, что, по его мнению, является подходящим расписанием.
Но выбирает ли он такое расписание заново каждый раз, когда встречает прагму, или только один раз, когда встречается прагма в первый раз?
Глядя на вывод PGI_ACC_TIME
, можно предположить, что планирование выполняется только один раз.