Как я могу реализовать пользовательскую элементарную функцию, включающую несколько переменных?

Я хотел бы реализовать эту атомарную функцию в 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
}

Я не верю, что смогу сделать это с помощью атомарных функций. Мне нужно заблокировать пару глобальных областей памяти для пары инструкций. Могу ли я реализовать это с помощью кода PTXAS (сборка)?

Ответы на вопрос(2)

Ваш ответ на вопрос