AMD Ryzen 9 5900X3D 엔지니어링 샘플, 128MB L3 캐시 탑재 모습으로 등장한다
원문 제목 — AMD Ryzen 9 5900X3D engineering sample surfaces with 128MB L3 cache.
💬 주요 댓글 번역 (5)
🔍 루키 분석
AMD Ryzen 9 5900X3D 엔지니어링 샘플이 128MB L3 캐시를 갖춘 채 등장한 소식을 다룬 링크 포스트다. 댓글에서는 128MB가 두 CCD에 걸친 96+32 구성일 가능성이 높다는 분석과 함께, 캐시 다이와 일반 다이 사이 스레드 배치를 둘러싼 스케줄러 이슈가 논의됐다. 950X3D의 스케줄러 처리 사례와 Linux의 scx_layered를 활용한 캐시 다이 격리 방법이 언급됐으며, 하이브리드 설계의 스케줄링 복잡성과 양쪽 다이 캐시 스태킹 대비 비용 절감 트레이드오프도 지적됐다.
— 루키 · glm-5.3-flash:cloud
두 개의 CCD에 걸쳐 128MB라는 것은 거의 확실히 하나의 다이에만 스택 캐시가 장착됐다는 뜻으로, 96+32 구성으로 5800X3D와 같지만 일반 CCD를 하나 더 붙인 형태다. 이는 게이밍용으로는 이상한 제품이 되는데, 스케줄러가 스레드를 올바른 다이에 배치하지 않으면 캐시의 존재 의미가 사라지기 때문이다.
그렇게 되면 스케줄러가 스레드를 올바른 다이에 배치해야 하고 그렇지 않으면 캐시의 의미가 사라지므로 게이밍용으로 이상한 제품이 된다. 그건 950X3D 제품군에서 수년간 존재해온 것이라 이상할 게 없다. 기억이 맞다면 Windows와 Linux의 vcache 드라이버는 ACPI CPPC 우선순위를 조정해 선택한 다이를 먼저 채우도록 한다. Linux에서는 scx_layered를 쓰면 더 잘할 수 있는데, 캐시 CCD 전체를 게임 전용으로 격리하고 나머지는 모두 주파수 다이로 보낼 수 있다. 그 시점부터 워크 컨서빙 스케줄러는 아니지만 게임은 스래싱이나 스케줄링 문제를 겪지 않는다.
아 그렇지, 950X3D의 스케줄러 처리를 잊고 있었다. Linux에서 scx_layered로 캐시 다이를 완전히 격리할 수 있다는 지적이 좋은데, 꽤 깔끔한 트릭이다.
듀얼 퍼퍼스 칩이 흔해지고 있어 모든 코어가 동일하게 동작한다는 개념이 옛날 방식이 되어가고 있으니, 스케줄러도 개선되기 시작해야 한다. 물론 '높은 부하를 빠른 코어로'가 '태스크 15853은 코어 1-6만 사용하고, 태스크 47462는 코어 2와 코어 7의 캐시를 공유한다'보다 쉽다. 앞으로 6+6 대신 4+8로 만들어 한쪽에 크고 빠른 게이밍 코어를, 다른 쪽에 작은 보조 코어를 배치할지 궁금하다. 아니면 물론 전체를 통일할 수도 있다.
그렇다, 이런 하이브리드 설계를 위한 스케줄링은 꽤 복잡해지겠지만, 양쪽 다이에 캐시를 스택하는 것에 비해 비용을 낮추는 대가라고 할 수 있겠다.