2013-01-10 6 views
0

gst_inst_128bit 명령을 사용하고 싶습니다. 동일한 프로그램에서 nvvp는 많은 gst_inst_128bit 명령을 실행합니다. nsight의 프로파일 러에서 4 배의 gst_inst_32bit 명령어를 얻습니다. 동일한 프로그램이어야합니다. 어떻게 이런 상황이 발생할 수 있습니까?nvvp와 nsight의 프로파일 러는 다른 결과를 줍니까?

실험 리눅스, CUDA 5.0, GTX 580 프로그램에 시도에만 커널 함수에서 다른 하나 개의 배열에서 데이터를 복사한다 : 를 메인에서 :

cudaMalloc((void**)&dev_a, NUM * sizeof(float)); 
cudaMalloc((void**)&dev_b, NUM * sizeof(float)); 
kernel<<<grid,block>>>((uint4 *)dev_a, (uint4 *)dev_b); 

커널 :

__global__ void kernel(uint4 *a, uint4 *b){ 
     unsigned int id = blockIdx.x * THREAD_NUM + threadIdx.x; 
     for(unsigned int i = 0;i < LOOP/4;i++){ 
       b[id + i * GRID_NUM * THREAD_NUM] = a[id + i * GRID_NUM * THREAD_NUM]; 
     } 
     return; 
+0

이 리눅스인가요? nsight는 릴리스 버전 대신 코드의 디버그 버전을 빌드 중일 수 있습니다. nvcc 명령 줄이 nvvp 용 독립 실행 형을 빌드 할 때 수행중인 작업과 일치하는지 확인하기 위해 nsight가 어떻게 구축되고 있는지주의 깊게 확인해야합니다. 코드의 디버그 버전은 대개 -g -G 스위치를 추가하여 후드 아래에서 코드를 크게 변경할 수 있습니다. –

+0

릴리스 버전 코드입니다. 나는 nsight를 사용하여 내 프로그램을 처음으로 프로파일 링 한 다음 nvvp를 프로파일 링합니다. 동일한 실행 파일이어야합니다. – worldterminator

+0

Windows 사용자입니까? – Eugene

답변

1

Linux의 Nsight EE 및 독립형 비주얼 프로파일 러의 프로파일 러는 동일한 코드베이스를 기반으로합니다. 확인하십시오 :

  1. 동일한 실행 파일을 사용하고 있습니다.
  2. 환경 변수 값에 차이가 없습니다 (예 : LD_LIIBRARY_PATH).

Nsight EE 시작 UI가 약간 혼란 스러울 수 있습니다. 디버그 빌드를 디버깅 한 후 "프로필"을 클릭하면 실제로 사용자가 실행할 수있는 모든 사용자 지정 실행 설정 (예 : 명령 줄 인수, 작업 폴더 등)을 유지하려고하는 디버그 실행 파일에서 프로파일 링을 실행할 수 있습니다. 메인 메뉴에서 을 클릭하십시오. ->프로파일 구성 ...을 클릭하면 Nsight가 응용 프로그램을 프로파일 링 할 때 사용하는 설정을 볼 수 있습니다.