Скажите, что у меня есть следующая функция: < /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
Как убедить Cmake использовать функцию CUDA FMAX вместо функции CMATH STD? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
CUDA ON DEBIAN TRIXIE: версия драйвера CUDA недостаточно для версии времени выполнения CUDA
Anonymous » » в форуме Linux - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблемы компиляции CUDA в Windows, ошибка Cmake: набор инструментов CUDA не найден
Anonymous » » в форуме C++ - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблемы с компиляцией CUDA в Windows, Cmake Ошибка: набор инструментов CUDA не найден
Anonymous » » в форуме C++ - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-