XRManet / Engine

2 stars 0 forks source link

Global Memory Oppressor #7

Open sixzone11 opened 3 years ago

sixzone11 commented 3 years ago

모든 GPU 메모리를 사용하는 Component의 메모리 사용량을 관리하는 시스템을 구축해야 합니다. 메모리 관리 시스템은 할당과 해제에 관한 체계가 중요한데, 리얼 타임 시스템에서는 빈번한 재사용이 일어날 가능성이 있으므로 당장 사용하지 않는다고 해서 바로 해제를 하지 않는 것이 성능상 이득일 수 있습니다. 즉, 해제를 꼭 필요할 때에 효율적으로 잘 하는 것이 중요합니다.

이를 효율적으로 해내기 위한 메모리 압제자를 도입합니다. 이 압제자는 자신의 치하에 놓인 모든 Component들이 맘 놓고 메모리를 낭비하는 꼴을 그대로 용인하지 않습니다. 압제자는 두 팔을 걷어붙이고 다음의 작업들을 수행합니다.

  1. 전체적인 메모리 상황에 따라 수준 별 차압을 시도합니다.
  2. 특정 블록 단위의 메모리를 직접 관리하지는 않습니다.

압제자에 의해 관리되는 Component들은 메모리를 받은 댓가로 다음의 규칙을 따라야 합니다.

  1. 각 Component가 필수로 사용하지 않는 빈 공간이 얼마나 되는지, 재구축에 소모되는 시간적비용은 얼마나 되는지 일괄 질의를 받을 수 있으며, 이에 응답해야 함.
  2. 질의 내용을 토대로 특정 Component들은 재구축 요청을 받을 수 있으며, 이를 처리해야 함.