Как убедить Cmake использовать функцию CUDA FMAX вместо функции CMATH STD?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как убедить Cmake использовать функцию CUDA FMAX вместо функции CMATH STD?

Сообщение Anonymous »

Скажите, что у меня есть следующая функция: < /p>
__global__ void testFunction(double *a, double *b) {
unsigned int index = blockIdx.x * blockDim.x + threadIdx.x;
a[index] = fmax(b[index], 0.0f);
}

тогда при сборке выдается ошибка:
error: calling a constexpr __host__ function("fmax") from a __global__ function("testFunction") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.

Это, по -видимому, означает, что я не могу использовать функцию fmax () , которая определена в библиотеке STD Cmath . Тем не менее, это также определяется как функция устройства CUDA, которая является той, которую я хотел использовать в первую очередь. Это вариант) для использования cuda __device __ определение fmax () вместо версии cmath ?
Примечание: я не с использованием пространства имен std; и/или #include в этом коде.
cmakelists. txt: < /p>
cmake_minimum_required(VERSION 3.17)
project(NAME CUDA)

set(CMAKE_CUDA_STANDARD 14)

add_executable(NAME main.cu /*some other files*/)

set_target_properties(
NAME
PROPERTIES
CUDA_SEPARABLE_COMPILATION ON)


Подробнее здесь: https://stackoverflow.com/questions/641 ... -cmath-fun
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»