Cuda эквивалентно alloca
Мне интересно, есть ли CUDA-эквивалент функции alloca.
Мне нужно создать массивы с плавающей точкой, которые будут служить аргументами для математической функции, которую я пытаюсь оптимизировать. Проблема в том, что я не хочу знать количество аргументов во время компиляции, что я сейчас и делаю с шаблонами. Я мог бы использовать новый оператор в CUDA, но я чувствую, что он медленный (возможно, я мог бы предварительно выделить его или что-то). Я бы использовал общую память, но она недостаточно велика.
2 ответа
Я ничего не знаю о том, что работает как alloca
для CUDA. Фрейм стека в CUDA ABI статически выделяется ассемблером во время компиляции, так что я сомневаюсь, что будет какая-то область для динамического выделения памяти в фрейме стека
Начиная с CUDA 11.3,
alloca
поддерживается:
https://developer.nvidia.com/blog/programming-efficiently-with-the-cuda-11-3-compiler-toolchain/