2013-04-02 74 views
4

當我想用nsight調試程序時,此消息顯示:「Value can not be null。Parameter name:pSrcNativeVariant」。當我重建項目這個錯誤沒有顯示。但我必須反覆執行此操作以進行調試程序。此前此操作不需要。錯誤:VS2010中的「Value can not be null。Parameter name:pSrcNativeVariant」

error message

這是我的代碼:

#include "cuda_runtime.h" 
#include "device_launch_parameters.h" 

#include <stdio.h> 
#include <iostream> 
using namespace std; 


#define COLUMNS 3 
#define ROWS 2 

__global__ void add(int *a, int *b, int *c) 
{ 
*a=345678; 
int x = blockIdx.x; 
int y = blockIdx.y; 
int i = (COLUMNS*y) + x; 
c[i] = a[i] + b[i]; 
} 

int main() 
{ 
int a[ROWS][COLUMNS], b[ROWS][COLUMNS], c[ROWS][COLUMNS]; 
int *dev_a, *dev_b, *dev_c; 
int *x; 
int r; 
x=&r; 
cudaMalloc((void **) &dev_a, ROWS*COLUMNS*sizeof(int)); 
cudaMalloc((void **) &dev_b, ROWS*COLUMNS*sizeof(int)); 
cudaMalloc((void **) &dev_c, ROWS*COLUMNS*sizeof(int)); 

for (int y = 0; y < ROWS; y++) // Fill Arrays 
    for (int x = 0; x < COLUMNS; x++) 
    { 
     a[y][x] = x; 
     b[y][x] = y; 
    } 

    cudaMemcpy(dev_a, a, ROWS*COLUMNS*sizeof(int), 
     cudaMemcpyHostToDevice); 
    cudaMemcpy(dev_b, b, ROWS*COLUMNS*sizeof(int), 
     cudaMemcpyHostToDevice); 
    dim3 grid(COLUMNS,ROWS); 

    add<<<grid,1>>>(dev_a, dev_b, dev_c); 

    cudaMemcpy(c, dev_c, ROWS*COLUMNS*sizeof(int), 
     cudaMemcpyDeviceToHost); 
    for (int y = 0; y < ROWS; y++) // Output Arrays 
    { 
     for (int x = 0; x < COLUMNS; x++) 
     { 
      printf("[%d][%d]=%d ",y,x,c[y][x]); 
     } 
     printf("\n"); 
    } 
    return 0; 
} 
+0

將您的代碼發佈到包含pSrcNativeVariant的地方。 – BizApps

+0

'pSrcNativeVariant'是作爲參考而不是指針嗎?因爲引用必須具有值並且不能爲空。 – hubs

+0

@BizApps:pSrcNativeVariant不在我的代碼中。我發佈了我的代碼,但每個cuda程序顯示此錯誤。 – mahdimb

回答

2

我遇到了一模一樣的問題。在嘗試了很多事情之後,我發現這個問題可以通過在管理模式下只運行一次Visual Studio來解決。在管理員模式下,運行nsight調試器,然後解決問題。稍後不需要管理員模式。至少這對我有用,祝你好運。

2014年5月12日添加: 今天又發生了這個問題。這次我通過將平臺從Win32切換到X64解決了問題,然後切換回

2014年5月22日添加: 它再次發生,我之前嘗試過的所有內容都沒有工作。最後,解決這樣:

I fixed this by deleting the visual studio solution user options file (.suo).

NuGet Package restore failed for project Miscellaneous Files: Value cannot be null or an empty string. Parameter name: root. 0 0

0

它與NuGet包有問題。 解決方案:它,如果

  1. 更新是出於過期(重啓)。
  2. 卸載並重新安裝(重新啓動)。
  3. 打開「工具/ NuGet軟件包管理器/軟件包管理器控制檯」下的「軟件包管理器控制檯」,鍵入任何命令以確保其正常工作。

問題應該解決。

相關問題