cudaMallocArray and 9800GTX


I have a number of systems with 8800GTX or 8800MGTX all running succesfully CUDA 2.0 with driver 174. Windows XP 32bit.

On installing our first 9800GTX system the 174 driver would not install ( hardware not correct for this driver message ) so I have installed driver 175. This system is also Windows XP 32bit.

On running the CUDA sample projects any project that does not use cudaMallocArray works correctly and any project with cudaMallocArray generates an exception cudaError_enum. For example sample project convolutionSeparable works as expected and convolutionTexture generates an exception at the cudaMallocArray call

// Main program
int main(int argc, char **argv){
*h_Kernel, *h_DataA, *h_DataB, *h_ResultGPU;
cudaArray *a_Data;
cudaChannelFormatDesc floatTex = cudaCreateChannelDesc();
float *d_Result;
double gpuTime, L1norm, rCPU, rGPU, sum_delta, sum_ref;
int i, x, y;
unsigned int hTimer;
CUT_SAFE_CALL( cutCreateTimer(&hTimer) );

printf("Initializing data...\n");
    h_Kernel    = (float *)malloc(KERNEL_SIZE);
    h_DataA     = (float *)malloc(DATA_SIZE);
    h_DataB     = (float *)malloc(DATA_SIZE);
    h_ResultGPU = (float *)malloc(DATA_SIZE);

    CUDA_SAFE_CALL( cudaMallocArray(&a_Data, &floatTex, DATA_W, DATA_H) );
    CUDA_SAFE_CALL( cudaMalloc((void **)&d_Result, DATA_SIZE) );

This extract is straight from the convolutionTexture sample.

This is a serious problem for us as 8800GTX cards are becoming differcult to source and expensive ( and as an aside the 512Mbytes memory instead of 768Mb of the 8800GTX is a pain ).

Any suggestions will be gratefully received.