cudaMallocArray returns null pointer

Here’s my test code:

#include <stdio.h>

#include <cuda.h>

#include <cutil.h>

int main(int argc, char **argv)

{

    CUT_DEVICE_INIT(argc,argv);

   cudaChannelFormatDesc d1_desc = cudaCreateChannelDesc<float>(); 

   cudaArray *d1=0;

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

   if (d1==NULL)

        printf("NULL POINTER!!!");

   CUDA_SAFE_CALL(cudaFreeArray(d1)); 

   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 http://forums.nvidia.com/index.php?showtopic=65067

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)