SM당 활성 스레드의 개수는 GPU Compute Capability를 통해 확인한다.

nVidia 프로파일러에서 occupancy 항목을 확인한다.

 

GTX280은 1.3이다.

 

Compute Capability는 그냥 그래픽카드가 지원하는 계산능력 버전(?) 뭐 그 정도로 해두자



 요게 바로 Compute Capability 버전에 따른 계산능력 스펙 차이

 

최대 활성 스레드의 수는 1024,

컴파일러 옵션 : -ptxas-options = -v를 통해 커널이 사용하는 레지스터 수와 지역메모리, 공유메모리, 상수메모리 수를 알 수 있다.

  - 의도와 다르게 레지스터 대신 지역메모리가 사용될 수 있기 때문에 컴파일 결과를 통해

    이를 반드시 확인한다.

-maxrregcount : 최대 레지스터 수 제한

  - 레지스터가 의도했던 것 보다 더 많이 사용되어 활성화 비율이 떨어졌을 때

 

GPU성능을 최대한 활용하기 위해서는 활성 워프 수와 블록 수는 자원이 허락하는 한 많을수록 좋다. 블록의 수는 최소 SM 수가 되도록 하고 활성 워프를 많게하여 스레드 동기화나 메모리 지연으로 인한 시간동안 SM이 다른 워프 및 블록을 실행할 수 있도록 한다.

Posted by 긍정왕오킹