L3 캐시는 Sandy-Bridge E Xeon CPU의 모든 코어에서 공유됩니까?


12

A의 관련 질문 나는 L3 캐시를 두 배로면에서 듀얼 CPU 시스템의 장점에 대해 물었다.

그러나 Xeon E5-2600 시리즈 CPU에는 코어 당 정확히 2.5MB의 L3 캐시가 있습니다.

이로 인해 운영 체제는 코어 당 2.5MB의 L3 캐시를 예약한다고 생각합니다. 그러나 L3 캐시가 모든 코어에서 공유 된다는 모순적인 인상을 받았습니다 . 놀랍게도 이에 대한 정보 나 토론은 거의 없습니다.

저의 주요 관심사는 우선 순위가 낮은 백그라운드 응용 프로그램이 L3 캐시를 "호그"하고 우선 순위가 높은 포 그라운드 응용 프로그램의 성능이 저하되는지 여부입니다. 이 질문에 동기를 부여한 두 가지 성능 문제가 있습니다.

  1. VS 2008에서는 현재 개발 시스템에서 특정 C ++ 프로그램을 컴파일하는 데 25 분이 걸리고 다른 시스템에서는 훨씬 더 빠르며 동일한 설정으로 VS 2008에서 5 분만 소요됩니다. 970 CPU 및 충분한 RAM.

  2. 프로그램이 종종 시스템에서 실행되는 데 최대 20 초가 걸립니다 (예 : 기본 창 표시). 관련 메모에서 Windows 셸은 컨텍스트 메뉴 항목을 제한하려는 시도에도 불구하고 Windows 탐색기 컨텍스트 메뉴를 표시하는 데 최대 10 초가 소요되며 관련 동작도 시간이 오래 걸립니다 (현재 10 개가 넘는 추가 항목이 있음) 기본값).

내 시스템에는 몇 년 동안 설치 및 제거 된 매우 많은 수의 응용 프로그램이 설치되어 있지만 그럼에도 불구하고 시스템을 간소화하기 위해 최선을 다합니다.

또한 우선 순위가 낮은 백그라운드 응용 프로그램이 많이 실행되고 있습니다. 특히 CrashPlan과 같은 중복 클라우드 백업 소프트웨어는 일반적으로이 6 코어 12 스레드 시스템에서 총 CPU 사용률의 약 25 %를 활용합니다.

나는 새로운 컴퓨터를 얻을 것이다. 저는 많은 백그라운드 응용 프로그램을 계속 실행하고 많은 프로그램을 설치 / 제거 할 것임을 알고 있습니다. 코어뿐만 아니라 L3 캐시를 두 배로 늘리는 듀얼 CPU 시스템을 얻는 것이 끔찍한 C ++ 컴파일러 성능과 일반적인 시스템 속도 저하를 극복하는 데 도움이 될 것이라고 생각한다면 기꺼이 그렇게 할 것입니다.

해야 하이 엔드 시스템에도 많은 프로그램 및 배경 응용 프로그램과 함께, 천천히 작동 할 이유는 없습니다. 그러나 시스템에 제공하는 CPU 전력 및 L3 캐시의 양에 관계없이 문제가 발생하면 단순히 많은 프로그램과 백그라운드 응용 프로그램이 설치되어 실행되고 있기 때문에 이중 CPU에서 2,500 달러를 추가로 낭비하고 싶지 않습니다. 내 문제를 해결하는 데 도움이되지 않는 시스템.

특히 L3 캐시가 모든 코어에서 공유되는지 (낮은 우선 순위의 백그라운드 응용 프로그램이 L3 캐시를 호기하거나 우선 순위가 높은 프로그램의 속도가 느려질 수 있음) 또는 개인과 연결되어 있는지에 대한 내 질문에 관한 제안 코어, 감사하겠습니다.


L3이 공유되었다는 인상을 받았다고 말하는 것 외에는 개인적으로 좋은 대답이 없다는 좋은 질문입니다. '제온'이 현재 10 년 동안 인텔 제품이었을 때 왜 지구상에서 '제 2 세대'제온이라고 부르는지 묻습니다. (이것이 Sandy Bridge i3 / 5 / 7 칩과 '2 세대'와 유사하다면 그것은 나쁜 유추입니다)
Shinrai

인텔은 i7-2600 CPU 라인을 "2 세대"( ark.intel.com/products/family/59136/… )라고합니다. "2 세대 Xeon"은 2012 년 3 월 6 일에 Xeon Sandy-Bridge E 아키텍처 CPU의 동등한 릴리스를 의미합니다 ( en.wikipedia.org/wiki/… ).
Dan Nissenbaum

1
그것은 내가 당신이 생각하는 비유입니다. 그것은 나쁜 것입니다 (2 세대 i7이지만 이것들은 2 세대 제온은 아닙니다), 나는 제목 IMO를 바꿀 것입니다 ... 12 세 프로세서에 관한 질문을 기대하고 있었고 많은 사람들을 유지할 수 있습니다 여기를 클릭하십시오. '2 세대'를 'Sandy Bridge-E'로 변경하십시오.
Shinrai

답변:


13

이러한 CPU에서 각 물리적 코어에는 자체 L2 캐시가 있습니다. L3 캐시는 모든 코어에서 공유되며 포괄적입니다. 즉, 코어의 L2 캐시에있는 모든 데이터도 L3 캐시에 있습니다.

이것은 L3 공간을 낭비하는 것처럼 보일 수 있지만 실제로 L3을 코어 간 메모리 작업을 가속화하는 데 매우 중요합니다. L3 캐시의 주요 목적은 코어의 스위치 보드 및 스테이징 영역으로 작동하는 것입니다. 예를 들어, 한 코어가 메모리 영역이 다른 코어에 의해 캐시 될 수 있는지 알고 싶다면 L3 캐시를 검사 할 수 있습니다. 한 코어에서 정보를 처리하고 다른 코어에서 정보를 처리해야하는 경우 느린 오프 칩 메모리가 아니라 L3 캐시를 통해 정보를 전달합니다. 그 외에도 성능에 미치는 영향은 비정상적인 알고리즘을 제외하고는 크지 않습니다. L2 캐시는 작은 것에는 충분하고 L3 캐시는 너무 큰 것에는 작습니다.

따라서 각 코어에는 고유 한 256KB L2 캐시가 있고 효과적으로 L3 캐시에 256KB가 예약되어 있지만 모든 코어가 균형을 공유합니다. 다른 코어에서 덜 중요한 활동은 L3 공간을 사용하여 얻는 더 중요한 작업의 성능을 저하시킬 수 있습니다. 그러나 내가 언급 한 이유로, 실제로는 실제로 큰 영향을 미치지 않으며 캐시 오염을 최소화하기 위해 "대량 데이터"작업 (예 : 압축 및 스캔)을 최적화하는 것 이상을 걱정할 필요가 없습니다. (예를 들어, 비 시간적 조작 사용)


0

모든 수준의 캐시가 칩에서 직접 구현되고 L2와 L3이 동일하다는 점을 이해하고 있습니다 (인텔 만이 차이점을 인식하고 AMD가 결합 함) 이를 염두에두고 CPU의 L3 캐시가 이중 소켓 마더 보드의 CPU간에 공유되지 않는다고 생각합니다. 또한 CPU 당 RAM에 별도의 메모리 채널을 보는 것이 일반적이라는 점을 명심해야합니다.

내가 틀렸다면 누군가 나를 교정합니다.


L2와 L3은 전혀 같지 않습니다. 최근 인텔 디자인에서 L1 / L2는 코어 단위로 작고 (32k L1 I $ & D $ / 256k 통합 L2) L3은 GPU와 모든 코어에서 포함되어 공유됩니다. L1 / L2는 물리적으로 분리되어 있지만 유사한 용도로 사용됩니다 (예 : 단일 코어의 메모리 액세스 속도를 높이는 것). 포괄적 인 L3의 또 다른 목적은 코어와 GPU 간의 일관성입니다. @DavidSchwartz의 답변을 참조하십시오.
Peter Cordes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.