Вопрос про атомарные функции в CUDA

В доке Programming_Guide_2.2-beta написано что атомарные операции поддерживаются только для целых чисел и только atomicExch() для float
Вопросы:
1) Никто не знает планирутеся ли добавление атомарных функций для работы с числами с плавающей точкой?
2) И может подскажите: почему не реализовали атомарные функции для float(это какие-то аппоратные ограничения)?

Forums: 

Нашел интересующее меня решение использования atomicMin

В книге алгоритмические трюки програмирования для программистов (стр 254) написано что IEEE кодирование чисел с плавающей точкой обеспечивает коректное упорядочивание для всех не NaN значений если рассматривать их как знаковые целые. Так например если наложить 2 ограничения то сравнение может быть весьма простым:
1)если считать что -0.0 строго меньше +0.0(противоречит IEEE 754)
2) оба значения должны быть не NaN
В этом случае справедливо выражение (=f= и , < - для опирация над числами записанными как знаковые целые)
1) a = b во float эквивалентно a = b в int
2) a < b float эквивалентно (a>=0, a < b) | (a<0, a <= b) в int областе

Это замечательное свойство (в теории) дает возможность использовать atomicMin & atomicMax для чисел с плавающей точкой. Для выбора минимального значения a и b можно использовать:
float a,b;
Если а>=0 то использовать atomicMin(&a, *(int*)&b)
иначе atomicMax(&a, *(int*)&b)