title: cuda file error "Invalid device function"
body: <p>I have a GPU card GeForce GTX 295 and visual studio 2012 and cuda with version 6.5. I run a simple  code  like</p>
  
  <pre><code>#include "stdafx.h" 
  #include &lt;stdio.h&gt; 
  #include &lt;cuda.h&gt; 
  // Kernel that executes on the CUDA device
   __global__ void square_array(float *a, int N)
   { 
    int idx = blockIdx.x * blockDim.x + threadIdx.x; 
    if (idx&lt;N) a[idx] = a[idx] * a[idx]; } 
   // main routine that executes on the host
   int main(void)
   {   float *a_h, *a_d;  // Pointer to host &amp; device arrays   
  const int N = 10;  // Number of elements in arrays   
  size_t size = N * sizeof(float);  
   a_h = (float *)malloc(size);        // Allocate array on host   
  cudaMalloc((void **) &amp;a_d, size);   // Allocate array on device   // Initialize host array and copy it to CUDA device  
   for (int i=0; i&lt;N; i++) a_h[i] = (float)i;   
  cudaMemcpy(a_d, a_h, size, cudaMemcpyHostToDevice);   // Do calculation on device:   
  int block_size = 4;  
   int n_blocks = N/block_size + (N%block_size == 0 ? 0:1);   
  square_array &lt;&lt;&lt; n_blocks, block_size &gt;&gt;&gt; (a_d, N);  
  
  // Retrieve result from device and store it in host array   
  cudaMemcpy(a_h, a_d, sizeof(float)*N, cudaMemcpyDeviceToHost); 
    // Print results  
   for (int i=0; i&lt;N; i++) 
  printf("%d %f\n", i, a_h[i]);  
   // Cleanup  
   free(a_h); 
  cudaFree(a_d); } 
  </code></pre>
  
  <p>In this code ,when I use command   cudaGetLastError (void) after calling the kernel, at console window an error display "<strong>Invalid device function</strong>" .How can I get rid of it? 
  Sample codes of cuda kit 6.5 are being run successfully with visual studio 2012.<code>enter code here</code></p>