Я работаю над проектом, в котором есть несколько определений базовых c математических функций (cos, sin, exp, log, sqrt, ...), перегруженных для различных объектов. Нередко я включаю несколько заголовков с такими определениями (например, <cmath>
, <cuda.h>
и мои собственные заголовки). Чтобы быть полностью уверенным, что используется правильная реализация, я хочу явно выписать пространство имен, например, std::sqrt()
. Это заставило меня задуматься о двух взаимосвязанных вещах:
Q: Как мне убедиться, что я использую реализацию <cuda.h>
конкретной функции, т.е. возможно ли выписать пространство имен в явном виде?
Q: Буду ли я сталкиваться с проблемами, например, с помощью std::sqrt()
в ядре CUDA (скажем, с проблемами производительности, поскольку обычно это функция хоста)?