FPGA 기반 3차원 토러스 네트워크 설계와 구현

FPGA 기반 3차원 토러스 네트워크 설계와 구현
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 최신 FPGA에 구현된 3차원 토러스 네트워크(TNW)의 구조와 동작 방식을 소개한다. CPU와 PCI‑e 인터페이스를 통해 연결된 네트워크 프로세서(NWP)는 6개의 10 Gbit/s 물리 링크를 제어하며, 가상 채널을 이용해 다중 코어 간의 근접 이웃 통신을 효율적으로 지원한다. Pput와 Nget 두 가지 전송 방식과 Linux 드라이버·라이브러리를 제공하고, QPACE와 AuroraScience 시스템에 적용한 성능 결과를 보고한다.

상세 분석

논문은 먼저 대규모 과학 계산에서 가장 중요한 요소 중 하나인 통신 인프라의 설계 목표를 제시한다. Lattice‑QCD와 같은 미세 입자 물리 시뮬레이션은 정밀한 근접 이웃 교환이 빈번히 발생하므로, 전통적인 스위치 기반 네트워크보다 낮은 지연과 높은 대역폭을 제공하는 토러스 토폴로지가 선호된다. 저자들은 이러한 요구를 충족시키기 위해 상용 멀티코어 CPU와 FPGA 기반 네트워크 프로세서를 결합한 하이브리드 구조를 설계하였다.

핵심 하드웨어는 Xilinx Virtex‑5 혹은 Altera Stratix IV FPGA에 구현된 NWP이며, 각 노드당 6개의 전송 채널을 갖는다. 각 채널은 32 bit 버스로 외부 PHY(PMC Sierra PM8358a)와 연결되고, 8/10b 부호화를 이용해 0.91 GB/s의 실효 전송율을 달성한다. 데이터는 128 Byte 페이로드와 32 bit 헤더, CRC를 포함한 패킷 형태로 전송되며, 송신 측은 txFIFO에 데이터를 적재하고, 수신 측은 가상 채널별 rxFIFO에 복원한다. 가상 채널은 현재 8개가 구현되어 있어, 다중 스레드 혹은 코어가 동일 링크를 공유하면서도 충돌 없이 독립적인 스트림을 유지할 수 있다.

CPU와 NWP 간 인터페이스는 PCIe Gen2 x8을 사용한다. 전송 방식은 크게 두 가지로 나뉜다. Pput 방식에서는 CPU가 직접 메모리 매핑된 injection buffer에 데이터를 기록하고, 이때 쓰기 결합(Write‑Combining) 버퍼를 활용해 64 Byte 단위의 burst 전송을 수행한다. 이는 짧은 메시지에 대해 낮은 레이턴시를 제공하지만, 버퍼 플러시 시점이 비동기적이므로 재정렬 로직이 필요하다. Nget 방식은 NWP가 DMA 제어를 담당해 백프레셔 관리가 용이하고, 비차단 전송이 가능하지만 구현 복잡도가 높다. 현재 AuroraScience에서는 Pput 방식을 기본으로 사용하고, Nget은 실험 단계에 있다.

소프트웨어 스택은 Linux 커널 드라이버와 사용자 공간 라이브러리로 구성된다. 드라이버는 injection buffer를 WC 메모리로 매핑하고, 각 가상 채널에 대한 수신 버퍼를 연속 메모리로 할당한다. API는 tnwSend, tnwCredit, tnwPoll 등으로 구성돼 SPMD 패턴에서 x+, x‑ 방향으로의 전송·수신을 직관적으로 호출할 수 있다.

성능 평가에서는 이론적 최대 0.91 GB/s 대비 실제 0.83 GB/s(≈90 %)를 달성했으며, 128 Byte 메시지의 평균 레이턴시는 1.67 µs였다. Nget 방식에서는 0.76 GB/s와 2.16 µs 레이턴시가 측정되었다. PCIe 전송 지연(≈0.2 µs)과 PHY 지연(≈0.24 µs)을 포함한 전체 소프트웨어 오버헤드는 0.70.8 µs 수준으로, 매우 낮은 수준이다. 실제 응용으로 2D Lattice‑Boltzmann 유체 시뮬레이션을 16노드에서 실행했을 때, 노드당 피크 성능의 3639 %를 달성했다. 이는 토러스 네트워크가 과학 계산에 필요한 미세 입자 수준의 통신을 효율적으로 지원함을 입증한다.

향후 과제는 Nget 방식을 최적화하고, 더 높은 전송 속도와 낮은 전력 소비를 위한 최신 링크 기술(예: 25 Gbit/s SERDES) 적용, 그리고 범용 통신 패턴을 지원하는 기능 확장이다. 또한 오픈소스화 계획을 통해 다른 연구 그룹이 손쉽게 채택하고 확장할 수 있도록 할 예정이다.


댓글 및 학술 토론

Loading comments...

의견 남기기