how much memory will be consumed by cuCtxCreate

I wrote a very simple cuda program and I’m shocked to find that about 90MB memory were consumed by the cuCtxCreate operation and these would be released after cuCtxDetach. My gpu card is GeForce GTX 465 with 1GB memory and OS is ubuntu(64bit). Here is my program code:

int main()
{
char c;
int gpuCount, i;
CUresult res;
CUdevice dev;
CUcontext ctx;

  cuInit(0);

  cuDeviceGetCount(&gpuCount);
  printf("Detected %d GPU\n",gpuCount);

  float* ptmp;

  for (i=0; i<gpuCount; i++)
  {
      cuDeviceGet(&dev,i);
      printf("beforInit:");
      c = getchar();

      cuCtxCreate(&ctx, 0, dev);
      printf("AfterInit:");
      c = getchar();
      cuMemAlloc((CUdeviceptr*)&ptmp,sizeof(float));
      cuCtxDetach(ctx);
      printf("AfterDetach:");
      c = getchar();
  }
return 0;

}

Any ideas?
BTW: I ran this program under WindowsXP(32bit) and found no such huge memory consumption.

I wrote a very simple cuda program and I’m shocked to find that about 90MB memory were consumed by the cuCtxCreate operation and these would be released after cuCtxDetach. My gpu card is GeForce GTX 465 with 1GB memory and OS is ubuntu(64bit). Here is my program code:

int main()
{
char c;
int gpuCount, i;
CUresult res;
CUdevice dev;
CUcontext ctx;

  cuInit(0);

  cuDeviceGetCount(&gpuCount);
  printf("Detected %d GPU\n",gpuCount);

  float* ptmp;

  for (i=0; i<gpuCount; i++)
  {
      cuDeviceGet(&dev,i);
      printf("beforInit:");
      c = getchar();

      cuCtxCreate(&ctx, 0, dev);
      printf("AfterInit:");
      c = getchar();
      cuMemAlloc((CUdeviceptr*)&ptmp,sizeof(float));
      cuCtxDetach(ctx);
      printf("AfterDetach:");
      c = getchar();
  }
return 0;

}

Any ideas?
BTW: I ran this program under WindowsXP(32bit) and found no such huge memory consumption.