Почему я получаю сообщение об ошибке: & quot; restrict & quot; не положено?

Я пишу ядро ​​CUDA и хочу __restrict__ некоторые из моих параметров. Я получаю сообщение об ошибке:

"restrict" is not allowed

Разве это не разрешено для некоторых типов переменных? Для каких комбинаций параметров? Из-за некоторых флагов компилятора? Потому что я была непослушной?

Упрощенная подпись ядра:

template <typename T> foo(
const T a[],
__restrict__ SomeType b[],
const T c
) {
/* etc. */
}

0

Решение

Вы можете использовать только __restrict__ по типу указателя. Это также единственный контекст, в котором __restrict__ имеет смысл.

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]