Я кодирую CUDA в mex-файлах Matlab.Когда вы просматриваете примеры CUDA в Интернете или даже руководства от nvidia, вы часто видите использование переменных предварительной обработки для определения размера проблемы, например, длины вектора для сложения векторов или чего-то подобного.Я также написал свою программу так: Предварительная обработка переменных для определения размера проблемы.И я должен признать: мне это нравится, потому что вы можете получить доступ к ним везде в вашем коде, например, как ограничения в цикле или что-то в этом роде, без необходимости явно передавать их через аргумент функции.
НоЯ столкнулся со следующей проблемой: я хотел протестировать программу для нескольких разных размеров проблем, и поэтому мне нужно каждый раз снова компилировать код, передавая переменную предварительной обработки компилятору.Это не проблема, я уже закодировал тест, и он работает.Но теперь я просто удивляюсь, почему я выбрал эту версию, а не просто указал ее с помощью пользовательского ввода во время выполнения.И поэтому я ищу причины, по которым можно использовать переменные предварительной обработки вместо простой передачи размера задачи программе.
Спасибо!