Здравствуйте, shadows_s, Вы писали:
_>Программа, для вычисления интегралов,
То есть, на самом деле, нет никакого смысла в полноценном С или в С++. А вместо этого нужно уметь вычислять только формулы?
_>Что посоветуете оставить то что есть, или обязательно пробовать использовать внешние компиляторы и PTX?
Ну, я вижу несколько реалистичных вариантов, если все делать самому:
Использовать nvcc. Самый быстрый и простой способ. Недостаток один — нужен nvcc.
Разобраться с генерацией PTX-файлов. Для математических формул это сделать не сложно. Соответственно, загружать после этого на GPU код в виде PTX.
Реализовать в ядре на GPU простой интерпретатор байт-кода. То есть превращать текстовую запись формулы в последовательность команд для своего стекового вычислителя, например, и исполнять эту программу на GPU. Недостаток очевиден — ощутимые потери на интерпретацию. Нужно попробовать сделать прототип и понять, устраивает ли полученная производительность.
И разумеется, для счёта формул на GPU можно взять уже готовые реализации, коих множество, в которых все эти варианты уже помногу раз сделаны.
Берёшь, например, первый попавшийся проект типа
PyCUDA в котором код просто хранится как строчки и смотришь как это у них сделано. Либо вообще сразу его начинаешь использовать.