정확하게 이야기 하자면, 게임 루프도 병렬화 할 수 있지,
그러나, 동기화를 위하여 크리티컬 섹션이 필요 함
동기화를 위하여 크리티컬 섹션 설정이 필요하고, 아마 대부분의 코드에서 동기화 객체를 사용하게 될 것임.
때문에 병렬로 짜도 락이 걸려서 싱글이랑 별차이가 없게 됨.
그러나, non-bloking 알고리즘을 기반으로한 설계를 아주 잘하면, 성능면에서 엄창난 이득을 얻을 수 있는 것.
전붕이1(crmerry0409)2021-04-18 23:32
답글
ㅇㅇ 동기화땜에 대부분 성능상이득이 많이없는거같음
익명(211.36)2021-04-19 00:29
그룹별로 묶어서 태스크 시스템 잡스레드들 갈군다던가 병렬로 처리할 수 있는 매니저는 별도로 태스크로 달리게 해서 노는 스레드 갈구게 한다던가? 간혹 파이버쓴다던가... 딱히 획기적인건 없는 것 같은데
거의 없지
애초에 병렬화를 위해 엄청나게 준비하지 않은 이상
결국 연산단위 병렬화밖에 없나, 몬헌같은게 cpu잘 갈군다고 유명하던데 뭔 차이이려나
정확하게 이야기 하자면, 게임 루프도 병렬화 할 수 있지, 그러나, 동기화를 위하여 크리티컬 섹션이 필요 함 동기화를 위하여 크리티컬 섹션 설정이 필요하고, 아마 대부분의 코드에서 동기화 객체를 사용하게 될 것임. 때문에 병렬로 짜도 락이 걸려서 싱글이랑 별차이가 없게 됨. 그러나, non-bloking 알고리즘을 기반으로한 설계를 아주 잘하면, 성능면에서 엄창난 이득을 얻을 수 있는 것.
ㅇㅇ 동기화땜에 대부분 성능상이득이 많이없는거같음
그룹별로 묶어서 태스크 시스템 잡스레드들 갈군다던가 병렬로 처리할 수 있는 매니저는 별도로 태스크로 달리게 해서 노는 스레드 갈구게 한다던가? 간혹 파이버쓴다던가... 딱히 획기적인건 없는 것 같은데
딱 그정도인가
획기적인 방법은 없고 update/render 2개 나눠서 듀얼코어 지원정도 하지않나?
찾아서 Epic games 입사하셈