Никто не писал плагинов на CUDA?
Я нашел похожий пример в CUDA SDK: matrixMulDynlinkJIT
.Я сделал небольшое исправление в коде.В частности, в файле cuda_drvapi_dynlink.c
я исправил cuInit()
функцию:
CUDADRIVER CudaDrvLib = NULL;
CUresult CUDAAPI cuInit(unsigned int Flags)
{
//CUDADRIVER CudaDrvLib;
CUresult result;
int driverVer;
if (CudaDrvLib != NULL) {
dlclose (CudaDrvLib);
CudaDrvLib = NULL;
}
.......
}
А в файле matrixMulDynlinkJIT.cpp
я добавил цикл в функцию main()
:
int main(int argc, char** argv)
{
printf("[ %s ]\n", sSDKsample);
while (1) {
// initialize CUDA
CUfunction matrixMul = NULL;
cutilDrvSafeCallNoSync(initCUDA(&matrixMul, argc, argv));
.....
}//while (1)
cutilExit();
}
Итак, у меня та же проблема, что и в моей программе (после некоторого времени выполнения): «NVIDIA: не удалось открыть файл устройства / dev / nvidia0 (слишком много открытых файлов)». Но когда я закомментируюdlclose()
в файле cuda_drvapi_dynlink.c
- все отлично работает
Я не могу понять это поведение ... Есть идеи?