nvcc 컴 파일 러 파라미터
3930 단어 CUDA
참고:http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html https://www.cnblogs.com/shrimp-can/p/5567518.htm
nvcc 는 cuda 프로그램의 컴 파일 러 로 그 관건 적 인 매개 변 수 를 이해 하 는 것 이 우리 가 더욱 여 유 롭 고 자신의 CUDA 프로젝트 를 더욱 정확하게 구축 하 는 데 유리 하 다.모든 컴 파 일 러 파 라미 터 는 공식 사이트 의 문 서 를 참고 하여 다음 과 같은 파 라미 터 를 예시 하고 중점적으로 토론 할 수 있다.
1. 컴 파일 단 계 를 지정 할 때 주로 컴 파일 단 계 를 지정 하 는 것 이 가장 기본 적 인 컴 파일 매개 변수 입 니 다.
-cuda -cubin -fatbin -gpu -E -ptx:parallel thread execution (PTX)
- c: 가장 자주 사용 합 니 다. 각각 c / cc / cpp / cxx / cu 입력 파일 을 object 파일 - dc - dw - dlink - link - link - lib 로 컴 파일 합 니 다. 모든 입력 파일 을 object 파일 로 컴 파일 하고 결 과 를 지정 한 library 출력 파일 - run 에 추가 합 니 다.
2. 파일 과 경로 설정 - o: 출력 파일 의 위치 와 이름 을 지정 합 니 다 - include: 예 처리 와 컴 파일 을 지정 할 때 패키지 L 소문 자 파일 - l (L 소문 자): 링크 를 지정 할 때 필요 한 라 이브 러 리 파일 - D: 지정 한 예 처 U: 매크로 정의 취소 - I (대문자 I): 파일 을 포함 하 는 검색 경 로 를 지정 합 니 다 - isystem: 시스템 에 포 함 된 참조 파일 의 검색 경 로 를 지정 합 니 다 - L: 라 이브 러 리 파일 의 검색 경 로 를 지정 합 니 다 - odir: 출력 파일 을 지정 하 는 디 렉 터 리 - ccbin: host 컴 파 일 러 가 있 는 경 로 를 지정 합 니 다 - cdart: CUDA runtime library 사용 유형 (none, shared, static) 을 지정 합 니 다. - stat – x {c | c + + | cu}컴 파 일 러 가 파일 이름 접미사 에 따라 기본 값 을 선택 하도록 입력 파일 의 언어 를 지정 합 니 다.이 옵션 의 허용 값 입 니 다.c,c ++,cu。 -ldir: libdevice 라 이브 러 리 파일 디 렉 터 리 포함 지정
3. 컴 파일 러, 커 넥 터 를 지정 하 는 행위 - pg - g: 변조 가능 코드 생 성, 디 버 깅 모드 에서 필요 한 - G: 변조 가능 한 장치 코드 생 성 - line info: 장치 코드 에 행 number 정보 생 성 - O: 최적화 코드 생 성, O0, O1, O2, O3 포함,서로 다른 명령 집합 - fttemplate - backtrace - limit - shared - x - std - nohdinitlist - nohdmoveforward - expt - relaxed - constexpr - m: 지정 한 플랫폼 구조 32 vs 64
4. 컴 파일 도구 내부 옵션 - Xcopiler - Xlinker - Xarchive - Xptxas - Xnvlink - Xptxas - v: 코드 생 성 통계 표시 - Xptxas - dlcm = cg: L1cache - Xptxas - dlcm = ca 닫 기: L1cache 를 48KB (기본 값 16KB, shared memory 와 총 64KB)
5. 컴 파일 구동 가이드 옵션 - noprof - dryrun - v: nvcc 에서 발생 하 는 컴 파일 명령 을 보 여 줍 니 다. 실행 에 영향 을 주지 않 습 니 다 - keep: 각 단계 에서 발생 하 는 중간 파일 을 유지 하고 디 버 깅 - keep - dir - save - temps - clean: nvcc 를 반전 시 키 는 행위 - run - args idp - dp - dp - dp - MT - nodlink
6. CUDA 컴 파일 방식 옵션
-default-stream
7. GPU 의 서로 다른 세대 코드 생 성 을 조작 하 는 옵션 - arch: NVIDIA 가상 GPU 구조 류 의 이름 을 지정 하고 nvcc 는 지정 한 실제 시스템 구조 와 가장 가 까 운 가상 시스템 구 조 를 효과 적 인 시스템 구조 값 으로 사용 합 니 다.
- code 는 PTX 를 조합 하고 최적화 하기 위해 NVIDIA GPU 의 이름 을 지정 합 니 다.
- gencode: 같은 가상 화 시스템 - arch 를 사용 하여 생 성 코드 를 서로 다른 실제 GPU 에 할당 합 니 다. -rdc - e - maxrregcount: GPU 함 수 를 지정 하여 사용 할 수 있 는 최대 레지스터 수량 - usefast_math -ftz -prec-div -prec-sqrt-fmad
8. 유 니 버 설 도구 옵션
- res - usage: 레지스터 나 메모리 와 같은 GPU 코드 의 자원 사용 상황 을 표시 합 니 다.– relocatable - device - code = true 일 때 – nvlinkoptions = – verbose 그렇지 않 으 면 – ptxasoptions = – verboe. -optf: 파일 에서 명령 행 인 자 를 포함 합 니 다.
예시
nvcc 에서 사용 하 는 중요 한 매개 변 수 는 가상 프레임 워 크 (유 니 버 설 가상 시스템 구 조 는 하나 이상 의 GPU 에 실행 가능 한 코드, - arch) 와 실제 GPU 의 매개 변수 (- code) 입 니 다.예 를 들 어 제 컴퓨터 는 Pascal 구조 이기 때문에 compute 를 사용 할 수 있 습 니 다.60:
nvcc x.cu --gpu-architecture=compute_60 --gpu-code=sm_61,sm_62
도 간략하게 nvcc x.cu -arch=compute_60 -code=sm_61,sm_62
로 쓸 수 있다.sm_xy 는 GPU 의 명명 규범 이 고 x 는 GPU 의 코드 이 며 y 는 버 전 번호 입 니 다. -arch 는 가상 화 된 프레임 워 크 입 니 다. - code 는 실제 기 존 GPU 입 니 다.code 는 arch 버 전의 높 은 버 전 (높 은 세대) 보다 높 은 GPU 는 낮은 버 전의 가상 프레임 워 크 를 호 환 할 수 있 습 니 다. 예 를 들 어 nvcc x. cu - arch = coptute60 -code=sm_60 고 버 전의 GPU 는 저 버 전의 GPU 를 호 환 할 수 있 지만, (컴퓨터 50 을 명시 적 으로 추가): nvcc x. cu - arch = compute50 -code=sm_50,compute_50 개의 sm (sm 61, sm 62) 버 전 은 공동 최적화 의 의미 입 니 다. - arch, - code 는 하나 이상 의 GPU 가 하나의 공 통 된 가상 화 프레임 워 크 를 사용 하 는 것 을 표시 합 니 다. - arch, - encode 는 분포 식 GPU 클 러 스 터 명령 입 니 다.
nvcc x.cu
는 가장 간단 한 컴 파일 러 명령 입 니 다. nvcc x.cu --gpu-architecture=compute_30 --gpucode=sm_30,compute_30
의 기본 형식 입 니 다. nvcc x.cu -O3
의 -O3
은 기본 컴 파일 러 최적화 방식 입 니 다. g + 등 컴 파일 러 도 이 매개 변수 가 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ProxmoxVE로 Ubuntu18.04 + KVM + CUDA 환경을 만듭니다.ProxmoxVE에 PCI-Passthrouph는 할 수 있는 상태가 되어 있는 전제에 전진한다. 아래 참조 UbuntuServer18.04 LTS를 설치합니다. Windows와 마찬가지로 PCI-Passthroug...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.