본문 바로가기
study/computer graphics

Thread Identification System values

by foooo828 2021. 8. 13.

 

스레드 ID란 ?

컴퓨트 쉐이더는 자료구조를 입력받아서 자료구조를 출력하는데, 스레드 ID 는 그런 자료구조들을 다양한 방식으로 indexing (색인을 지정해서 특정 요소에 접근하는 것) 하는데 사용된다.

 

SV_GroupID

각 스레드 그룹에 배정된 ID (group ID)
G₁ × G₂ ×  G₃ 이면 그 범위는 ( 0 , 0 , 0 ) 에서 ( G₁-1, G₂-1,G₃-1) 가 된다.

지역 저장소 메모리를 색인화하는데 사용

 

SV_GroupThreadID

스래드 그룹 안의 각 스레드에 배정된 ID (group thread ID)

스레드 그룹의 크기가 X × Y × Z  라고 할때 ID 범위는 ( 0 , 0 , 0 ) 에서 ( X-1, Y-1, Z-1) 이 된다.

 = 한 스레드 그룹 안의 특정 스레드 하나를 식별하는 값

 

SV_DispatchThreadID

Dispatch()로 배분 호출이 일어나면 스레드 그룹들이 배분되고

배분된 스레드 들은 고유한 dispatch thread ID 가 배정된다.

 = 한 배분 호출의 모든 thread group의 모든 thread 중 특정 스레드 하나를 식별하는 값

 

dispatch thread ID 구하는공식

dispatchThreadID.xyz = groupID.xyz * ThreadGroupSize.xyz + groupThreadID.xyz

 

 

 

 

group thread ID  : ( 3 , 3 , 0 )

group ID  : ( 0 , 1 , 0 )

dispatch thread ID  : ( 0 , 1 , 0 ) × ( 6 , 6 , 0 ) + ( 3 , 3 , 0 ) = ( 3 , 9 , 0 )

 

 

 

 

 

참고 : DirectX 12를 이용한 3D 게임 프로그래밍 입문

'study > computer graphics' 카테고리의 다른 글

GPGPU 개념정리  (0) 2021.12.27

댓글