2014-11-28 8 views
0

np.array 또는 np.zeros 또는 np.empty(shape, dtype)을 사용하여 호스트 내 전역 장치 기능을 작성한 다음 cuda.to_device을 사용하여 복사하는 방법을 알고 있습니다.Numbapro cuda python 배열을 gpu에서 스레드 레지스터로 정의

또한 하나 cuda.shared.array(shape, dtype)

하지만 어떻게 GPU 함수 내부 특정 스레드의 레지스터에 일정한 크기의 배열을 생성하기 위해서, 공유 배열을 선언 할 수있다.

나는 cuda.device_array 또는 np.array을 시도했지만 아무 것도 작동하지 않았습니다.

는 단순히 스레드 내에서이 작업을 수행 할 수 -

x = array(CONSTANT, int32) # should make x for each thread 

답변

0

Numbapro가 스레드 로컬 배열을 정의하는 numba.cuda.local.array(shape, type) 지원합니다.

CUDA C와 마찬가지로 배열보다 로컬 메모리에 정의되거나 레지스터는 배열의 사용 패턴을 기반으로하는 컴파일러 결정입니다. 로컬 배열의 인덱싱 패턴이 정적으로 정의되고 충분한 레지스터 공간이 있으면 컴파일러는 레지스터를 사용하여 배열을 저장합니다. 그렇지 않으면 로컬 메모리에 저장됩니다. 자세한 내용은 this question and answer pair을 참조하십시오.

+0

정말 고마워요 !! – jalatif