2013-06-12 4 views
1

GTX Titan을 사용하여 3.5를 계산 중입니다. Windows 8 64 비트 및 CUDA 5 64 비트.64 비트가 아닌 32 비트를 사용하여 레지스터 수를 줄입니다.

3GB의 전역 메모리 사용량을 초과하지 않고 모든 변수가 32 비트 이하를 사용하고 있기 때문에 포인터가 현재 u32가 될 것이라고 가정 할 때 32 비트 커널을 사용하면 레지스터 사용량이 줄어들 것인지 궁금합니다.

  1. 64 비트 포인터가 두 개의 레지스터를 차지합니까?
  2. 아무도 커널을 32 비트로 컴파일하여 레지스터 수를 줄이려고 했습니까? (나는 이것을 시도하지 않았다. 내가 의 CUDA 32 비트 버전을 설치해야한다고 가정하고있다.)
  3. WIN7 64 비트 CUDA 5 일
+0

win7 64 비트 cuda 5에서 몇 가지 프로젝트 설정을 변경하여 32 비트 응용 프로그램이나 64 비트 응용 프로그램을 빌드 할 수 있습니다. 64 비트 cuda 5의 경우 '-m32' 플래그를 컴파일러에 전달하면 [32 비트 장치 코드 작성] (http://docs.nvidia.com/cuda/cuda-c-programming-guide/index)이 표시됩니다. html # sixtyfour-bit-compatibility). 이 변경과 필요한 다른 변경은 프로젝트 유형을'x64'에서'Win32'로 변경할 때 처리됩니다. 예, 64 비트 값은 2 개의 (32 비트) 레지스터를 차지합니다. –

+0

이 답변에 대한 답변이 아닌가요? – KiaMorot

답변

2
  1. , 나는 몇 가지 프로젝트 설정 변경 하여 32 비트 응용 프로그램 또는 64 비트 응용 프로그램을 구축 할 수 있습니다 전달
    • 64 비트 CUDA 5를 컴파일러에 -m32 플래그를 지정하면 에서 build 32 bit device
      code
      으로 변경됩니다.
    • 프로젝트 유형을 x64에서 Win32으로 변경하면이 변경 사항 및 기타 필요한 변경 사항이 처리됩니다.

      `예 2.

, 64 비트 값이 두 개의 (32 비트) 레지스터를 차지한다.

관련 문제