티스토리 뷰

동급 대비 40% 빠르다는 AWS 그라비톤2 프로세서
(동급 기준은 코어 개수)를 살펴보았다.
64개 ARM N1 프로세서를 박아버린 그라비톤2! 링크에 그림을 보면 대충 상상이 간다.

https://www.nextplatform.com/2021/03/17/can-graviton-win-a-three-way-compute-race-at-aws/

 

Can Graviton Win A Three-Way Compute Race At AWS?

One of the main tenets of the hyperscalers and cloud builders is that they buy what they can and they only build what they must. And if they are building

www.nextplatform.com

NUMA(Non-Uniform Memory Access) 구조에 관계없이 구성되어 있어 빠르다는 그런 이야기를 한다.

NUMA는 고릿적에 많이 들어보았는데, https://brunch.co.kr/@dreaminz/4 요기에 설명이 자세히 나왔다. 이걸 간단히 말하면,

  1. 여러 씨피유(SMT)에서 메모리 접근할 때에 I/O를 공유한다.
    따라서 동일한 위치의 메모리에 접근할 때에 한 씨피유만 접근 가능하다.
  2. 이것을 풀기 위해서 NUMA 노드라는 캐쉬같은 메모리 장비를 달았다.
    코어마다 사용하는 NUMA 노드가 다르다.
  3. 그런데 다른 씨피유가 사용하는 메모리 즉, 다른 NUMA 노드에서 관리하는 메모리를 접근(remote)하면,
    씨피유가 자기가 소유한 NUMA 노드의 메모리(local)를 접근하는 것보다 느리다.
    이건 캐쉬 일관성(cache-coherent NUMA)이란 방식으로 하드웨어 동기화

그니까, 요새 CPU와 Core 개수가 많아져서 메모리 접근이 많아 I/O 병목이라 나온 거네.
메모리 전송이 많이 이뤄지는 연산을 할 때에, NUMA에 의한 영향도 많이 받겠구만.

여하간, 다시 돌아와서, 그라비톤2에서 NUMA 구조에 관계없이 그런 이야기는 아래와 같이 적혀 있는데,

No NUMA concerns, meaning every core sees the same latency to every other core and to DRAM.

같은 레이턴시, 같은 경로를 갖는다? 걍 NUMA 노드가 1개 겠구나! 했는데, 아난드텍을 보니 진짜 1개라고

NUMA Nodes : 1

결론은 NUMA 고려하지 않아도 되네, 어짜피 1개니까... 이걸 보고 드는 생각은?

  1. 그간 기술적으로 1개의  NUMA 노드는 불가능했나?
    그 동안 이게 가능했다면, AWS는 콜롬부스의 달걀과 같은 재미난 접근을 했구만?
    그런데 잘 보니, Graviton2 는 모든 vCPU(그니까 코어)가 물리 코어란다. 
    Every vCPU is a physical core
       No simultaneous multithreading(SMT)
    그래서, 물리코어로 NUMA랑 연결되었으니, 전용 도로를 쓴 셈이고, 늦어질 코어가 없다.
    N1 물리 코어 자체가 싸게 나오니까, NUMA도 1개로 할 수 있었고, 이런식의 확장이 가능하네!
    인텔이 얼마나 비싸게 해 먹은 건가...
  2. NUMA를 고려한 프로그래밍은 어떻게 하는 거지?
    ccNUMA를 이용하더라도, NUMA 노드간에 동기화가 자주 일어나면 늦어질 수 밖에 없다. 따라서, 원격 메모리를 사용하는 녀석을 줄이고, 로컬 메모리를 사용하도록 최적화한다. 인접하지 않은 혹은 대량의 메모리 접근은 일부 코어(혹은 스레드 혹은 프로세스)가 담당하도록 하는 것이다.
  3. 그간 나온 NUMA관련 처리방법은 다 산으로 가나?
    아마도? 하드웨어 종속적인 구현은 산으로 간다? 고고?
  4. 그러면 그라비톤2에 어떻게 최적화하지?
    컴파일러 스위치 바꾸고, 작업을 해야겠지만, 여기 자세히 나와있다. 하드웨어 종속된 구현은 산으로 가지만, 일단 싸고 좋으니 쓰는게 낫지 않을까 ㅋㅋ
  5. CPU가 다르면, 최대 메모리도 다르지 않을까? NUMA 노드도 1개 뿐인데?
    뭔가 있지 않을까 싶지만... 이건 나중에
  6. 암튼 AWS는 Intel과 AMD에 종속받지 않겠네... 전용 하드웨어로 인해서, 엄청난 비용 절감을 하겠군요.
    Nitro 하이퍼바이저부터 아마존 큰 그림이 부럽군요. 진짜 수직 계열화!
    사실 여기만 아니라 구글도 ML/AI용으로 TPU를 만들고, 이젠 유튜브는 동영상 인코더 장비도 만드는 세상이네요.

헐... 다 쓰고 보니, 클래스 메소드에서 언급을 했군요.
지난 2020 리인벤트에서 이야기되었던 그라비톤2 프로세서이지만... 광고하고 챌린지도 하고, 매니지드 서비스를 그라비톤2로 기반으로 바꾸는 걸 보면, 충분히 안정화되어서 요새 본격적으로 쓰나 봅니다.

댓글