Я пишу ядро CUDA и хочу __restrict__
некоторые из моих параметров. Я получаю сообщение об ошибке:
"restrict" is not allowed
Разве это не разрешено для некоторых типов переменных? Для каких комбинаций параметров? Из-за некоторых флагов компилятора? Потому что я была непослушной?
Упрощенная подпись ядра:
template <typename T> foo(
const T a[],
__restrict__ SomeType b[],
const T c
) {
/* etc. */
}
Вы можете использовать только __restrict__
по типу указателя. Это также единственный контекст, в котором __restrict__
имеет смысл.
Других решений пока нет …