.reg
을 사용하여 레지스터를 선언 할 때 .. 그들은 어디에 있습니까?PTX - .reg 레지스터는 어디에 있습니까?
는 말 : I가 전역 (되지 .global
단순히 전역에서 모듈의 .reg
변수를 선언하면 I 함수 레지스터는 각 스레드가 갖는 레지스터 파일에 저장되어있는 장치 .. 그러나 내부 .reg
를 사용하면 범위)?
.reg
을 사용하여 레지스터를 선언 할 때 .. 그들은 어디에 있습니까?PTX - .reg 레지스터는 어디에 있습니까?
는 말 : I가 전역 (되지 .global
단순히 전역에서 모듈의 .reg
변수를 선언하면 I 함수 레지스터는 각 스레드가 갖는 레지스터 파일에 저장되어있는 장치 .. 그러나 내부 .reg
를 사용하면 범위)?
모든 .reg
선언은 상태 공간를 등록 PTX에서 바람. 하드웨어 기능에 대한 맵은 어셈블러에 의해 결정되지만 레지스터 또는 로컬 메모리의 일반적인 규칙은 사실입니다. 모듈 스코프에서 레지스터 상태 공간 선언은 PTX 1.x 및 2.x 코드에서만 지원되며 CUDA ABI에서는 사용할 수 없습니다. 너무 큰 문서는 참고 :
레지스터가없는 즉, 완전히 어드레싱 레지스터의 어드레스를 참조 할 수 없다는 점에서 다른 상태 공간 다르다. 응용 프로그램 바이너리 인터페이스 (ABI)을 사용하도록 컴파일 할 때 레지스터 변수는 함수 범위로 제한되며 모듈 범위에서 을 선언 할 수 없습니다. 모듈 범위 .REG 변수를 포함 (3.0 버전 이전의 ISA)를 기존 PTX 코드를 컴파일 할 때 컴파일러는 자동으로 ABI의 사용을 비활성화합니다.
당신이 "여기서"가상 머신의 상태 공간의 맥락에서 "위치"에 의해 무엇을 의미합니까? – talonmies
어디서 할당 했습니까? 스레드의 파일을 등록 하시겠습니까? 전역 범위에 .reg 이름을 선언하고 커널 내부에 선언하지 않더라도? –
가상 머신의 레지스터 상태 공간에 "할당 됨"(이는 CUDA가 아닌 ABI PTX 코드에서만 허용됨). – talonmies