CUDA с плавающей точкой Сравнить - PullRequest
1 голос
/ 06 августа 2011

Мне было интересно, есть ли у кого-нибудь хорошая реализация сравнения с плавающей запятой / двойного для CUDA.Я бы хотел использовать что-то (полу) стандартное вместо того, чтобы писать свое.Я не мог найти что-то стандартное или одобренное CUDA.Но вот несколько хороших ресурсов по теме:

http://developer.download.nvidia.com/assets/NVIDIA-CUDA-Floating-Point.pdf

http://www.mrupp.info/Data/2007floatingcomp.pdf

что-то со следующим заголовком, оптимизировано для работы на CUDA // Используемая функция NearEqual boolfcmp (double a, double b)

ура, Ашкан

1 Ответ

5 голосов
/ 06 августа 2011

Существует несколько способов сравнения чисел с плавающей запятой.Вы можете посмотреть на абсолютную разницу между числами.Вы можете посмотреть на относительную разницу между числами, взяв абсолютную разницу, деленную на любое число, являющееся ссылкой.Вы можете посмотреть на битовое равенство представлений с плавающей запятой.

Не зная, почему вы сравниваете два числа, трудно сказать, какое лучше для вас.Не существует официального одобренного CUDA способа сравнения чисел с плавающей запятой, кроме оператора ==, который определен в IEEE-754.

...