Что является наиболее простым для понимания / эффективной и т. Д. Организацией кода для cuda. После некоторого исследования я обнаружил, что объявления функций cuda должны быть в файле .cuh, а реализации находятся в файле .cu, а реализации функций ядра — в файлах .curnel. Другие c ++ вещи в файлах .cpp и .h обычно. Недавно я отправил вопрос Файл Visual Studio .cu показывает синтаксическую ошибку, но успешно компилируется . Правильна ли эта организация? где .cpp вызывает .cu и вызывает функцию ядра, которая в .curnel.
В качестве примера предположим, что имеется код FDTD на основе графического процессора. Я обычно делаю следующее (Visual Studio 2010).
extern "C" void E_update(...)
функция, которая содержит ядро <<< >>>
вызов;extern "C" void E_update(...)
прототип;__global__ void E_update_kernel(...)
функция.