cudaMallocArray returns null pointer

Here’s my test code:

#include <stdio.h>

#include <cuda.h>

#include <cutil.h>

int main(int argc, char **argv)



   cudaChannelFormatDesc d1_desc = cudaCreateChannelDesc<float>(); 

   cudaArray *d1=0;

    CUDA_SAFE_CALL(cudaMallocArray(&d1, &d1_desc, 512, 512)); 

   if (d1==NULL)

        printf("NULL POINTER!!!");


   CUT_EXIT(argc, argv);


The problem is cudaMallocArray isn’t setting d1 to anything, it comes back out as a null pointer…

I checked the SDK samples, and all FAILED, if it use cudaMallocArray…

OS: winxp sp2

GPU: 9600 GT

forceware: 175.16

Cuda: 2.0 beta

I installed CUDA 1.1 (Toolkit and SDK), and everything works fine.

I think this is a bug in the beta.

The only driver that supports CUDA 2.0 beta is 174.55

But it does not support 9600 GT, or it really buggy.

(I intalled it, and my computer started freezing/resetting continuously every 1-2 minutes)