2012-07-17 2 views
1

Tesla C2075에서 Polygon Intersection에 대한 하나의 알고리즘을 실행하려고합니다. 그러나이 알고리즘을 컴파일하려고하면 컴파일러에서 오류가 발생합니다 : "Entry Function 'Polygon_Intersection'uses too much local data(0x40e8 bytes,0x4000).Cuda :: Entry 함수가 너무 많은 로컬 데이터를 사용합니다.

내 알고리즘은 약간 복잡하고 커널 내부에 많은 로컬 변수를 사용합니다. 내 질문에,이 문제를 해결할 수있는 방법이 있습니까? 각 커널에 대해 지역 변수 선언에 전역 메모리를 사용할 수 있습니까? 아니면 어떻게 든 공유 메모리를 사용할 수 있습니까?

+0

어떤 GPU를 사용하고 계십니까? Fermi 또는 Kepler 장치가있는 경우에도 동적 힙 메모리를 사용할 수 있습니다. – talonmies

+0

@ talonmies : 필자는 Fermi device 인 Tesla C2075 장치를 사용하고 있습니다. malloc을 사용하여 동적 힙 메모리를 사용했지만 "호스트 함수 'malloc'이 지원되지 않습니다.라는 컴파일 오류가 발생했습니다. –

+0

' arch = sm_20' 해당 GPU – talonmies

답변

2

장치 측 malloc을 활성화하여 스레드 로컬 데이터에 힙 메모리를 사용할 수 있도록 -arch=sm_20으로 컴파일하십시오.

+0

동일한 문제가 있지만 오류가 발생합니다. sh : g ++ : 찾을 수 없습니다. -arch에 대한 정보를 찾지 못했습니다. 정보 나 도움을 줄 수 있습니까? 도 사용했습니다. nvcc -arch = sm_20 main.cu, 맞지 않습니까? :) 감사합니다 안부 –

+0

이것은 같은 문제가 아닙니다. 별도의 질문을 제출해야합니다. 깨진 컴파일러 툴체인 설치. – harrism

+0

Ok, 고맙습니다. :) –