2P by GN⁺ | ★ favorite | 댓글 1개
  • Hot Chips 2023에서 공개된 이 연구용 칩은 DARPA HIVE의 초희소 데이터 처리를 겨냥해, 8코어로 총 528개 하드웨어 스레드를 제공함
  • 워크로드 분석 결과 병렬성은 크지만 캐시 라인 활용과 긴 out-of-order 파이프라인 효율이 낮아, 일반 서버 CPU와 다른 설계가 필요했음
  • 프로세서는 x86이 아닌 RISC ISA 기반이며, 코어당 66개 스레드와 멀티스레드 파이프라인으로 대규모 동시성을 처리함
  • 칩 간 통신은 실리콘 포토닉스 기반 직접 mesh-to-mesh 광 패브릭으로 연결되며, 스위치와 NIC 없이 섀시 밖 코어와도 직접 통신할 수 있음
  • 구현은 TSMC 7nm 8코어 75W CPU이며, 전력의 절반 이상을 광 연결에 쓰는 만큼 아직 연구실 단계의 실험적 설계로 남아 있음

DARPA HIVE를 겨냥한 528스레드 CPU

  • Hot Chips 2023에서 인텔은 일반 서버 칩과 별도로 direct mesh-to-mesh optical fabric 기술을 전시함
  • 설계의 중심 목표는 DARPA HIVE 프로그램에서 요구하는 초희소 데이터 처리임
  • 인텔의 워크로드 프로파일링 결과는 일반 CPU 설계와 맞지 않는 특성을 보였음
    • 대규모 병렬성이 존재함
    • 캐시 라인 활용이 낮음
    • 긴 out-of-order 파이프라인 구조가 충분히 활용되지 않음
  • 이에 맞춰 프로세서는 8코어 소켓 구성으로 설계됨
    • 코어당 66개 하드웨어 스레드
    • 528개 스레드
    • x86이 아닌 RISC ISA
    • 각 코어는 멀티스레드 파이프라인을 사용함

실리콘 포토닉스로 칩 사이를 직접 연결

  • 이 칩은 16개 소켓을 단일 OCP 컴퓨트 트레이에 넣고 광 네트워킹으로 묶는 구성을 사용함
  • 고속 I/O 칩은 전기 신호와 광 기능 사이를 연결함
  • 온다이 네트워크에는 라우터가 배치되며, 16개 라우터 중 절반은 고속 I/O에 더 많은 대역폭을 제공하는 역할을 맡음
  • 패키지 내부 물리 연결 계층에는 EMIB가 사용됨
  • 오프다이 연결에서는 각 칩이 실리콘 포토닉스를 통해 광 네트워킹을 구동함
    • 코어 간 연결이 칩 사이에서 직접 이뤄질 수 있음
    • 같은 섀시에 있지 않아도 스위치와 NIC 없이 연결 가능함
  • 전체 칩은 EMIB 기반 멀티칩 패키지로 구성됨
  • 실리콘 포토닉스 엔진을 넣으면서 패키지에서 광섬유 가닥으로 이어지는 부분에 추가 과제가 생김
  • 전력 측면에서는 8코어 75W CPU 구현이며, 전력의 절반 이상이 실리콘 포토닉스에 사용됨
  • 실제 다이 사진으로 TSMC 7nm 공정 사용이 확인됐고, 작업은 연구실에서 계속 진행 중임
  • 광 연결 부분은 Ayar Labs의 도움을 받았음
  • 인텔이 Innovation 2022에서 공개했던 플러그형 커넥터는 이 구현에 사용되지 않았음

댓글과 토론

Hacker News 의견들
  • 코어당 66스레드라면 다른 무엇보다 배럴 프로세서에 가까워 보임
    각 스레드가 빠르리라고 기대하긴 어렵지만, 프로세서에 일이 충분히 있다면 메모리를 기다리는 대신 대부분의 시간에 유용한 작업을 할 수 있을 것이라 볼 수 있음

    • Intel이 또 다른 배럴 프로세서를 시도할 의욕이 있는지는 모르겠음
      배럴 프로세서의 주된 약점은 사람 쪽에 있음. 잠재력을 제대로 끌어내는 코드를 설계할 줄 아는 사람이 극소수뿐임. 일반 코드도 그럭저럭 돌아가니 코드 수준에서는 익숙해 보이지만, CPU용 코드만 써본 사람에게는 매우 이상해 보이는 방식으로 짜지 않으면 성능이 잘 안 나옴
      데이터 구조와 알고리즘을 설계하기에 특이한 아키텍처이고, 배럴 프로세서용 알고리즘 설계 문헌도 많지 않음
      예전 Tera 시스템부터 여러 배럴 프로세서 아키텍처용 코드를 설계해봤고 꽤 잘하게 됐는데, 제대로 아는 사람이 쓰면 비슷한 실리콘 예산의 범용 컴퓨팅에서는 거의 어떤 아키텍처보다 계산 효율이 높을 수 있다고 봄
      다만 효율적인 코드를 쓰려면 CPU용 동등 코드보다 머릿속에 훨씬 복잡한 모델을 유지해야 함. 경제성은 평균적인 엔지니어도 적당한 효율을 낼 수 있는 CPU 같은 아키텍처에 유리함
      순수 계산 효율 면의 장점에도 불구하고, 이제는 주류 배럴 프로세서를 보게 될 거라는 기대를 접었음
    • 66개 중 64개 스레드는 느린 스레드이고, 16개 스레드씩 한 묶음이 실행 유닛 한 세트를 공유하며 64개 전체가 스크래치패드 메모리와 캐시를 공유함
      이 코어의 해당 부분은 기존 GPU와 매우 비슷함
      이 실험적 Intel CPU에서 다른 점은, GPU 같은 부분과 별개로 각 코어가 매우 빠른 스레드 2개도 포함한다는 것임. 이 2개는 비순차 실행을 하고 느린 스레드보다 훨씬 높은 클럭으로 동작하며, 각각 공유하지 않는 실행 유닛을 가짐
      2개의 빠른 스레드와 64개의 느린 스레드는 따로 보면 예전 CPU나 GPU와 비슷하지만, 공유 스크래치패드 메모리와 캐시를 가진 단일 코어 안에 결합한 점이 새로움
    • 원조 동시 멀티스레딩인 Tera가 떠오름. 1990년에 코어당 128스레드였음
      https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d...
      이 연구를 지원한 DARPA 프로젝트는 Tera가 Cray를 살 만큼의 돈을 받게 만든 그 3글자 약어 관심 계보와 같은 쪽일 것에 돈을 걸 수 있음
    • 프로그래밍 언어 쪽의 비동기 처리와도 좀 비슷하게 느껴짐
      "메모리를 기다림"을 "입출력을 기다림"으로 바꾸면 거의 같은 그림임
    • 반드시 배럴 프로세서를 뜻한다고 보지는 않음. CPU 성능이 CPU와 메모리 대역폭에 비해 높아진 탓에 동시 멀티스레딩 수를 더 늘린 것에 가까울 수 있음
      느린 가져오기가 일어나는 동안 시스템이 다른 스레드의 명령을 병렬로 더 실행할 수 있음
  • Marvell은 768 Threads Per Node를 내세운 SMT8 ARM CPU를 만들었음
    https://www.servethehome.com/marvell-thunderx3-arm-server-cp...
    기억하기로는 데이터베이스 작업부하를 겨냥했고, 핵심 논리도 같았음. 코어가 보통 RAM을 기다리며 놀고 있다면 그사이에 다른 스레드를 처리하면 된다는 것임
    IBM과 Zen4C가 어느 정도 이 수요를 충족하긴 하지만, 이런 낮은 명령어 처리율 작업부하를 명시적으로 겨냥한 SMT16 클라우드 인스턴스가 더 많아지면 좋겠음

    • Niagara, 즉 UltraSPARC T1/T2도 같은 일을 했음
      이런 배럴 프로세서식 설계에서는 CMT8/SMT8이 적당한 지점처럼 보임
    • "mind as well"이라고 쓰거나 말하는 건 처음 봄. 사는 지역에서는 흔한 표현인가? 지금까지는 "might as well"만 들어봤음
  • 전기 신호를 광 신호로 바꾸는 데 드는 다이 비용과 속도 손실을 상각할 수 있다면, 광 인터커넥트에서 사실상 거리와 무관한 속도를 좋은 효율로 얻을 수 있다는 제안처럼 보임
    물론 완전히 그렇지는 않겠지만, 단일 섀시 안의 칩 캐리어 거리 정도로 한정하면 간섭이 적고 광 가이드의 굽힘 반경 안에서 배선도 자유로움
    내가 잘못 읽었을 수도 있음. 광학 부품은 다이 적층 같은 다른 목적일 수도 있고, 슈퍼 캐리어 위에 칩 격자를 만들고 광 인터커넥트로 연결하려는 것일 수도 있음

    • 코어들을 떨어뜨려 놓는 것만으로도 열 방출에는 큰 도움이 됨
    • 1997년에 내가 거기 있을 때 이미 복셀이 있었음. 목표는 층을 쌓고 수직 스택 안에서 복셀을 쓰는 것이었음
  • 실제 다이 사진과 TSMC 7nm에서 만들었다는 확인이라니, Intel 입장에서는 꽤 아픈 장면임
    이런 것을 위해 경쟁사의 팹을 써야 한다면 칩 제조사로서는 꽤 낮은 순간일 듯함

    • Intel에는 Nvidia가 이미 테스트하고 좋게 말한 1.8nm 시제품 노드가 있음
      다만 10nm 노드는 Intel에 재앙이었고, 칩 제조 사업에서 회사를 5~10년쯤 뒤처지게 만들었음
    • TSMC 공정은 사용하기 더 쉽고, Intel 내부 공정에는 없는 IP 생태계가 주변에 잘 갖춰져 있음
      연구 프로젝트라면 TSMC를 선호하는 모습을 쉽게 상상할 수 있음
    • Intel 팹에서는 논리 CPU가 아닌 거의 모든 것이 2등 시민 취급을 받음
      이런 특이한 물건들이 TSMC로 가는 이유를 설명해줌. 예를 들어 Silicon Photonics 자체도 죽어가던 사이트였던 Albuquerque에서 진행되고 있음
    • Intel은 PC용이 아닌 프로세서에는 아마 15년쯤 전부터 TSMC를 써왔음
      Google에서 2001~2010년으로 기간을 걸고 검색하면 관련 뉴스를 찾을 수 있음
      HN 이용자들이 반도체를 잘 모르는 이유가 뭔가 있을 것임. 아마 주로 소프트웨어 쪽 독자라서일 듯함. 이 사이트에서는 자신감 대비 해설 품질 비율이 가장 높은 분야 같음
    • Nvidia와 AMD는 이미 Intel의 옹스트롬급 파운드리 서비스 사용 계약을 맺었으니 상상 못 할 일도 아님
      AMD도 GlobalFoundries를 포기했을 때 같은 일을 했고, 이것이 Intel을 앞서나가게 된 주된 이유였다고도 볼 수 있음
      어차피 모두 ASML 노광 장비를 쓰고 있으니, 누가 웨이퍼를 기계에 넣느냐는 다소 부차적임
  • 이건 판매 가능한 제품이라기보다 개념 증명 CPU에 더 가까워 보임
    매우 특화되어 있고, 어떤 문제와 작업부하를 해결할지는 아직 찾아야 하는 단계임
    앞으로 범용 컴퓨팅에도 광자가 도입될 것으로 예상함. 최소한 커지는 초과 발열 문제를 다루기 위해서라도 그럴 것임. 특히 눈에 띄는 건 10nm에서 7nm로 가는 공정 변화임

  • Sun도 오래전에 비슷한 걸 했지만 이후 UltraSPARC CPU에서는 포기했음
    스레드가 굶주렸던 걸까? 코어 수를 줄이고 더 빠르게 만드는 편이 낫다고 판단한 걸까? 자세한 내용을 찾기 어렵음
    HN의 bcantrill이 내부 사정을 알려주면 좋겠음

    • 전성기에 그 시스템을 써봤음. 어떤 작업부하에서는 훌륭했지만, 단일 코어 성능이 필요한 것은 고생했음
      성능을 내려면 매개변수를 훨씬 많이 조정하거나 다시 컴파일해야 하는 경우도 많았음
      나에게는 SSL 사용 필요가 크게 늘어난 시기와도 겹쳤는데, SSL은 x86에는 잘 최적화되어 있었지만 Sparc에는 그렇지 않았음. 그래서 SSL 오프로딩 카드나 리버스 프록시 같은 복잡성까지 다뤄야 했음
      결국 몇몇 틈새 영역 밖에서는 잘 동작하게 만들기가 너무 까다로웠음
      큰 요인은 아니었을 수 있지만, 시스템 관리자 입장에서도 번거로웠음. 우리가 해야 하는 작업 상당수가 직렬적이고 단일 코어 중심이었기 때문임. 즉 보통 벤더 결재를 승인하는 집단에게 최악의 면을 보여준 셈임
  • 이것은 그래프 축약과 데이터플로 프로그래밍에 완벽해 보임
    실제 생산에 들어간다면 이런 것으로 꽤 멋진 것들을 만들 수 있을 듯함

  • 8코어에 528스레드라니 계산이 어떻게 되는 거지? 512라고 생각했다가 다시 읽어야 했음

    • 기사에 따르면 Intel은 소켓당 8코어, 코어당 66스레드 프로세서를 갖고 있음. 합치면 528스레드임
      작업부하 때문에 캐시는 잘 활용되지 않는 것으로 보이며, 이건 x86이 아니라 RISC 명령어 집합임
    • 간단함. 528 = 8 * (2 + 64)임
      여기서 2는 현재 CPU 같은 느린 스레드 수이고, 64는 GPU 스레드에 더 가까움
      이 아키텍처는 GPU 통합의 다음 단계일 수 있음. 표준 수학 라이브러리의 효율적인 구현을 잘 작성해내길 바람. 한 패키지 안의 별도 CPU+GPU보다 더 빠를 수 있음
    • "코어당 66스레드인 8코어 프로세서"라는 뜻임. 66*8 = 528임
      왜 66인지는 설명되어 있지 않음
    • 코어당 66개는 좀 이상해 보임. 아마 2개는 라우팅이나 메타데이터용일 수도 있음
  • 이제 모든 코드를 이벤트 구동, io_uring 등으로 다시 쓰는 일을 끝낼 때임

    • 이런 아키텍처에서는 보통 비동기성은 하드웨어에 맡기는 편이 더 성과가 좋음
      다른 사람들이 언급한 Tera MTA는 이를 위해 메모리 시스템에 하드웨어 동기화가 있었거나 있음
      인터럽트는 없고, 누군가 깨워주기를 기다리는 스레드만 있었음
  • 기사를 제대로 읽은 걸까? 칩 위에 32GB DRAM이 있다는 뜻인가, 아니면 그냥 표준 DIMM을 쓴 건가?

    • 온칩은 아니고 여전히 DDR5 DIMM
      흥미로운 점은 커스텀 DIMM과 메모리 컨트롤러를 써서 8바이트 단위 접근을 한다는 것임. 게다가 다이 사진에서 보이듯 각 코어마다 자체 메모리 컨트롤러가 있음
      각 메모리 컨트롤러가 4GB DRAM을 관리한다면 칩당 32GB를 설명할 수 있음
    • [수정: 내가 틀린 것 같음!] 같은 기판 위의 HBM, 즉 고대역폭 메모리라고 거의 확신했음: https://en.wikipedia.org/wiki/High_Bandwidth_Memory
      더 자세히 설명하는 자료도 있고, Nvidia도 Grace Hopper에서 이렇게 하고 있는 듯하며 Apple도 M 시리즈 칩에서 비슷하게 함
      업데이트: 이 경우에는 그냥 DDR5, 정확히는 "custom DDR5-4400 DRAM"인 것 같음
    • 일반 DDR5