Использование C ++ в проекте CUDA C - PullRequest
1 голос
/ 20 мая 2011

Я реализую алгоритмы сортировки и сжатия потока в CUDA C. Однако я только что подумал, что не так просто реализовать эти алгоритмы самостоятельно с хорошей производительностью. Учитывая, что я работаю с матрицами, я не могу использовать CUDPP, поэтому, хотя я избегал этого, мне придется работать с библиотекой Thrust (я ничего не знаю о C ++).

Я программировал на C, и я действительно хочу использовать C ++ для работы с Thrust, поэтому в основном я хочу знать, могу ли я иметь большую часть своего кода на C, а затем иметь небольшие кусочки кода C ++ (я думаю, мне придется использовать «внешнюю» функцию), но я хотел быть уверенным, выполнимо ли это в CUDA.

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 20 мая 2011

Да, может усложнить процесс сборки, но в остальном работает нормально.Мы используем его все время, чтобы обернуть некоторые функции CUDA в класс C ++, которые (и это НАСТОЯЩИЙ кикер) затем обертываются JNI для использования в Java.Если мы можем сделать это, вы можете сделать это!Имейте это!

4 голосов
/ 20 мая 2011

На стороне кода хоста простота интеграции. Даже если вы думаете, что ваш код на стороне хоста в любом файле .cu, который вы компилируете, это C, он все равно скомпилирован с использованием компилятора C ++ (большая часть CUDA внутренне полагается на функции C ++ для компиляции). Итак, вы сейчас работаете в C ++, даже не осознавая этого.

...