저는 Compute_Capability 2.0 장치 (GTX460)와 함께 CUDA 4.0 arch.를 사용합니다. 'cubin'과 'ptx'파일의 차이점은 무엇입니까? cubin이 gpu의 기본 코드이므로이 코드가 arch라고 생각합니다. ptx는 JIT 컴파일을 통해 Fermi 기기 (예 : Geforce GTX 460)에서 실행되는 중간 언어입니다. cu 소스를 컴파일 할 때 ptx 또는 cubin 대상 중에서 선택할 수 있습니다. 큐빈 파일을 원한다면 "code = sm_20"을 선택합니다. 하지만 ptx 파일을 원한다면 "code = compute_20"을 사용합니다. 맞습니까?NVIDIA NVCC 및 CUDA : Cubin 대 PTX
11
A
답변
17
대상을 지정할 장치 (-code
)를 제어하는 옵션과 함께 컴파일 단계 (-ptx
및 -cubin
)를 선택하는 옵션이 혼합되어 있으므로 설명서를 다시 읽어야합니다.
NVCC는 NVIDIA 컴파일러 드라이버입니다. -ptx
및 -cubin
옵션은 위상 지정 옵션없이 편집의 특정 단계를 선택하는 데 기본적으로 사용됩니다. nvcc는 입력에서 실행 파일을 생성하려고 시도합니다. 대부분의 사람들은 -c
옵션을 사용하여 nvcc가 나중에 기본 플랫폼 링커가 실행 파일에 링크 할 객체 파일을 생성하도록합니다. -ptx
및 -cubin
옵션은 드라이버 API를 사용하는 경우에만 유용합니다. 중간 단계에 대한 자세한 내용은 CUDA Toolkit을 설치할 때 설치된 nvcc 매뉴얼을 참조하십시오.
- 출력은
-ptx
에서 일반 텍스트 PTX 파일입니다. PTX는 NVIDIA GPU를위한 중간 어셈블리 언어로 아직 완전히 최적화되지 않았고 나중에 장치 고유 코드로 어셈블됩니다 (예 : 다른 장치의 레지스터 수가 다르므로 완벽하게 최적화 된 PTX가 잘못 될 수 있음). -cubin
의 출력은 하나 이상의 장치 별 이진 이미지와 (선택적으로) PTX를 포함 할 수있는 굵은 이진 파일입니다.
귀하가 참조한 -code
인수는 완전히 다른 목적을 가지고 있습니다. 몇 가지 예제가 들어있는 nvcc 문서를 확인해 보시기 바랍니다. 일반적으로 -gencode
옵션을 사용하는 것이 좋습니다. 더 많은 제어가 가능하고 여러 장치를 하나의 바이너리로 타겟팅 할 수 있기 때문입니다. 계산 능력이 xx 모든 장치를 (즉, arch=
비트의) 대상으로 최종 지방 바이너리로 sm_yy 및 sm_zz에 대한 PTX (code=compute_xx
)뿐만 아니라 장치 특정 바이너리를 포함 할
-gencode arch=compute_xx,code=\'compute_xx,sm_yy,sm_zz\'
원인 NVCC : 빠른 예를 들어 .
관련 문제
- 1. nvcc (CUDA)의 증분 컴파일
- 2. CUDA 컴파일러 (nvcc) 매크로
- 3. Nvidia Tesla 대 CUDA 프로그래밍을위한 480
- 4. Learn Nvidia CUDA
- 5. NVIDIA CUDA : 개발자 드라이버는 무엇입니까?
- 6. CUDA : 내 자신의 PTX 기능을 주입하고 있습니까?
- 7. PCI 인터페이스가있는 GPU의 nVidia CUDA
- 8. Cuda 커널 코드는 nvidia GPU에서 어디에 있습니까?
- 9. nvidia cuda 머신의 모든 코어 사용
- 10. NVidia CUDA : L2 및 여러 커널 호출 캐시
- 11. Matlab에서 CUDA 시작하기
- 12. CUDA 및 STL 벡터
- 13. CUDA 메모리는
- 14. NVIDIA CUDA SDK 예제 컴파일 지원되지 않는 아키텍처 'compute_20'
- 15. NVIDIA CUDA 4.0, 런타임 API로 메모리 페이지 잠금
- 16. CUDA 대 CuBlas 메모리 관리
- 17. coalescence 대 은행 충돌 (Cuda)
- 18. CUDA, MySQL 및 CMake
- 19. autoconf로 nvcc 컴파일을 검사 할 수 있습니까?
- 20. CUDA 이론상의 대역폭 대 유효 대역폭
- 21. NVIDIA Parallel Nsight 및 OpenCL
- 22. NVIDIA GPUs 및 PhysX 엔진
- 23. nvidia GTS 450의 스레드 수는
- 24. Tesla 어댑터의 CUDA 및 다른 NVIDIA 어댑터의 전체 화면 DX 창
- 25. Linux 및 일반 OS의 Nvidia Information Disclosure/Memory 메모리 보안
- 26. Cuda cudaMemcpy 및 cudaMalloc
- 27. CUDA 및 링커 오류
- 28. CUDA 커널 사용
- 29. RealLegal의 .PTX 파일 형식을 구문 분석
- 30. CUDA warps and occupancy
'.cubin'은 CUDA 바이너리이며'.ptx'는'ptxas' 어셈블러에 전달되는 CUDA 어셈블러 소스 (텍스트)입니다. –