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/

Другие вопросы по тегам