немного ненужной истории.
пишу я на CUDA. и хочу я писать на C#. и думаю - а не сделать ли мне библиотечку? нехай кудовский код будет на крестах, а нормальные удобные вещи я буду писать на шарпе. и начался гугл, и было его тысячи, и через многие сотни времени у меня всё ж таки была dll с кодом на CUDA. и работала она. вот только к шарпу не подключалась.
файлик Hello.cu сиречь cpp
Скрытый текст:
#include "Hello.h"
__global__ void MyCUDA(int a, int b, int *c)
{
*c = a + b;
}
namespace nmspace
{
extern "C" _declspec(dllexport) int myclass::Summ(int a, int b)
{
int c;
int *dev_c;
cudaMalloc((void**)&dev_c,sizeof(int));
cudaMemcpy(dev_c, &c, sizeof(int), cudaMemcpyHostToDevice);
MyCUDA<<<1, 1>>>(a, b, dev_c);
cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost);
cudaFree(dev_c);
return c;
}
}
файлик Hello.h
код шарпа
и при тыке на кнопку он выдаёт вот такую ошибку:
Цитата:
|
Unable to find an entry point named 'Summ' in DLL 'P:\study\course work 2013\asonsite\HelloWorld\Debug\HelloWorldCuda.dll' .
|
что же мне делать? я что-то читал про то, какие некошерные имена функций получаются в dll, которые лишь отдалённо похожи на оригинальные, и что нучжо что-то сделать, чтоб имена получались хорошими, годными. это так?