본문 바로가기
게임 공부

게임 관련 공부 키워드(스레드 관련)

by woohyeon 2020. 5. 31.
반응형

 

  • Work stealing
  • Dependency Graph
  • Barrier
  • Context switch를 줄이고 작업을 하는데 주로 스레드를 사용하여 오버헤드를 줄이고 코어 사용률을 높임
  • 각 스레드가 각 단계에서 처리속도가 차이나면? 빨리 작업을 완료한 스레드가 다른 스레드의 work의 일부를 가져오는 로직을 작성하면 된다(Work stealing) 

https://www.youtube.com/watch?v=M1e9nmmD3II

 

게임이란 CPU를 독점해서 최대한의 성능을 내는 프로그램 중 하나이다.

멀티 스레딩을 이용하려면 코어 2개에 각 50%씩 작업량을 적절히 분배해야 함.

정확히 어떤 작업량을 분리해야 하나? -> 일단 게임 운영에 가장 타격이 없는 것을 바꾸어 보자.업데이트와 렌더링 하는 작업을 분리메인 스레드 - 업데이트 후 렌더 스레드에 데이터를 복사 / 렌더 스레드가 그리는 동안 다음 프레임을 업데이트
렌더 스레드 - 업데이트 된 데이터를 그린다. 물론 두 작업량의 시간 차이가 많이 나는 게임도 있음. OK 코어 2개까진 이렇게. 하지만 코어가 2개 이상으로 늘면? 코어가 4개가 되면 25%만 점유를 하게 된다.업데이트, 렌더, 피직스, 오디오 등 이러한 프로세스 및 액션을 분리하지 말고 데이터를 위주로 나누자. 

 




댓글