CUDPP 2.1 with CUDA 5.5 solving tridiagonal sytems

Hello everybody,

For solving tridiagonal systems with CUDA, I have always used CUDPP 2.1 library without any problem. However, if I use CUDA 5.5 or higher, I obtain a “glibc detected malloc() memory corruption” error. After checking that the memory allocation is done fine, the body of my code is the following:

CUDPPResult res;    
        CUDPPHandle theCudpp; 
        res=cudppCreate(&theCudpp);
        if (CUDPP_SUCCESS != res)
        {
        printf("Error in cudppCreate()\n");
        exit(-1);
        }


        CUDPPConfiguration config;
        //config.op = CUDPP_ADD;
        config.datatype = CUDPP_FLOAT;
        config.algorithm = CUDPP_TRIDIAGONAL;
        config.options = 0;//CUDPP_OPTION_FORWARD ;//| CUDPP_OPTION_EXCLUSIVE;

        CUDPPHandle tridiplan = 0;
        res = cudppPlan(theCudpp, &tridiplan, config, 0, 0, 0);  

        if (CUDPP_SUCCESS != res)
        {
        printf("Error creating CUDPPPlan\n");
        exit(-1);
        }*/

        // Run 




            res = cudppTridiagonal(tridiplan, d_a, d_b, d_c, d_d, d_x, numElements,numBatches);
            if (CUDPP_SUCCESS != res)
            {
            printf("Error in cudppTridiagonal()\n");
            exit(-1);
            }


       res = cudppDestroyPlan(tridiplan);
        if (CUDPP_SUCCESS != res)
        {
        printf("Error destroying CUDPPPlan\n");
        exit(-1);
        }

        // shut down the CUDPP library
        cudppDestroy(theCudpp);

        cudaDeviceSynchronize();

It is curious that commenting all this code except the cudppHandle creation&destruction works fine in CUDA 5.0 but fails in CUDA 5.5. Does anyone know if there is a bug with CUDA 5.5 and CUDPP 2.1 ?? I haven’t found anything in Google…

Thank you,

After downloading CUDPP 2.2, this code works well with the newest library. However, I need to use the CUDPP 2.1 in my tests. I suspect that it could be a bug… does anyone know something about?