Как я могу реализовать пользовательскую элементарную функцию, включающую несколько переменных?
Я хотел бы реализовать эту атомарную функцию в CUDA:
__device__ float lowest; // global var
__device__ int lowIdx; // global var
float realNum; // thread reg var
int index; // thread reg var
if(realNum < lowest) {
lowest= realNum; // the new lowest
lowIdx= index; // update the 'low' index
}
Я неЯ не могу сделать это с помощью атомарных функций. Мне нужно заблокировать пару глобальной памяти loc 's для пары инструкций. Могу ли я реализовать это с помощью кода PTXAS (сборка)?