Implementing OpenSHMEM for the Adapteva Epiphany RISC Array Processor

읽는 시간: 7 분
...

📝 원문 정보

  • Title: Implementing OpenSHMEM for the Adapteva Epiphany RISC Array Processor
  • ArXiv ID: 1604.04205
  • 발행일: 2016-04-15
  • 저자: James A. Ross, David A. Richie

📝 초록 (Abstract)

The energy-efficient Adapteva Epiphany architecture exhibits massive many-core scalability in a physically compact 2D array of RISC cores with a fast network-on-chip (NoC). With fully divergent cores capable of MIMD execution, the physical topology and memory-mapped capabilities of the core and network translate well to partitioned global address space (PGAS) parallel programming models. Following an investigation into the use of two-sided communication using threaded MPI, one-sided communication using SHMEM is being explored. Here we present work in progress on the development of an OpenSHMEM 1.2 implementation for the Epiphany architecture.

💡 논문 핵심 해설 (Deep Analysis)

### 매력적인 한글 제목: 에피파니 프로세서를 위한 오픈SHMEM 구현 및 성능 최적화

초록 전체 번역 및 정리:

Adapteva의 에피파니 MIMD 아키텍처는 저렴한 Parallella 플랫폼에 구현되어 있지만, 제한된 코어 메모리와 낮은 오프칩 대역폭 등으로 인해 프로그래밍이 어렵습니다. 이 논문에서는 에피파니 아키텍처의 특징과 OpenSHMEM API를 사용하여 이를 극복하는 방법을 설명합니다. 특히, 제한된 메모리와 효율적인 통신 실행이라는 주요 도전 과제에 대해 다룹니다. OpenSHMEM는 데이터 참조 세마틱스가 개선되고 인터페이스 복잡성이 줄어들어 코드 크기를 줄이고 애플리케이션 성능을 향상시킵니다.

심도 분석:

1. 에피파니 아키텍처의 특징 및 도전 과제

에피파니 MIMD 아키텍처는 저렴한 Parallella 플랫폼에서 구현되어 있지만, 제한된 코어 메모리(32KB)와 낮은 오프칩 대역폭으로 인해 프로그래밍이 어렵습니다. 이는 에피파니 SDK(eSDK)의 멀티코어 라이브러리 인터페이스를 사용하여 병렬 애플리케이션을 작성해야 하며, 이러한 애플리케이션은 다른 플랫폼에서는 재사용이 불가능합니다. 또한 e-lib 인터페이스는 OpenSHMEM 인터페이스의 대부분의 멀티코어 프리미티브를 포함하지 않아 직접 비교가 제한적입니다.

2. 에피파니 아키텍처의 장점

에피파니 아키텍처는 뛰어난 계산 에너지 효율성을 달성합니다. SRAM을 사용하여 오프칩 DRAM 대신 사용함으로써 전력 소비를 줄이고 메모리 지연을 감소시키며, 이는 대칭 멀티프로세서(SMP) 아키텍처에서 발견되는 메모리 장벽 문제를 해결합니다. 대역폭은 코어 수에 비례하여 증가하며, 이는 DRAM 대역폭이 분산 CPU 클러스터의 소켓 수에 비례하는 것과 동일합니다.

3. OpenSHMEM API의 역할

OpenSHMEM API는 에피파니 아키텍처에서 MPI에 비해 데이터 참조 세마틱스가 개선되고 인터페이스 복잡성이 감소하여 코드 크기를 줄이고 애플리케이션 성능을 향상시킵니다. OpenSHMEM의 단순한 명시적 타입 특수화는 제한된 코어 메모리를 효율적으로 사용하는 더 간결한 구현을 가능하게 합니다.

4. 메모리 할당 및 주소 계산

에피니티 아키텍처의 대칭 메모리 관리는 로컬 메모리의 논리적 주소와 물리적 주소 간의 변환이 없기 때문에 가장 도전적인 측면 중 하나입니다. SHMEM 메모리 관리 루틴은 현재 UNIX의 brk/sbrk를 사용하여 선형 순서로 할당하며, 재할당과 해제 순서에 대한 규칙을 적용합니다.

5. 전체 집단적 장벽

에피니티 하드웨어의 wait-on-AND (WAND) 장벽과 인터럽트 서비스 루틴이 전체 집단적 장벽에 사용됩니다. 이는 소프트웨어 장벽보다 성능이 훨씬 높지만, 모든 코어가 사용되지 않는 경우 실용적인 유용성이 제한적입니다. 더 효율적인 집단적 및 스트라이드 장벽 구현은 현재 개발 중입니다.

6. 최적화된 블록 데이터 복사 방법

개발된 최적화된 블록 데이터 복사 방법은 에피니티 하드웨어 루프 기능을 활용하고, 이중 단어 로드 및 저장 을 펼쳐서 eSDK보다 더 높은 대역폭과 낮은 지연 시간을 달성합니다. ARL OpenSHMEM 블록 데이터 복사 방법은 eSDK의 동기식 DMA 복사 방법에 비해 모든 전송 크기 및 데이터 유형에서 2.1-9.9배의 속도 향상을 제공합니다.

7. 다중 코어 잠금

eSDK와 ARL OpenSHMEM 모두 test-and-set 명령을 사용하여 다중 코어 잠금을 구현하므로 성능 차이는 거의 없습니다. 그러나 eSDK는 원자 연산이나 감소 인터페이스를 제공하지 않습니다.

8. SHMEM 구현 및 소프트웨어 스택

SHMEM 구현은 스레드형 코프로세서 작업으로 실행되며, COPRTHR 소프트웨어 스택을 통해 에피니티를 지원합니다. 최근 COPRTHR-2 개발 작업은 호스트 애플리케이션 공동 개발 없이도 스레드형 응용 프로그램을 직접 실행할 수 있는 능력을 보여주었습니다.

9. 에피파니 프로세서를 위한 오픈SHMEM의 이점

포터블 SHMEM 코드는 명시적인 호스트 코드 없이 실행될 수 있어, 에피파니 프로세서 사용에 적합합니다. COPRTHR-2 메모리 관리 기능은 현재 SHMEM 메모리 관리에 사용되는 UNIX brk/sbrk 호출을 대체하여 운영 순서에 대한 제한을 제거할 것입니다.

이 논문은 에피파니 아키텍처의 도전 과제를 해결하기 위한 OpenSHMEM API의 구현과 성능 최적화 방법을 상세히 설명합니다. 이를 통해 에피파니 프로세서의 효율적인 사용 및 애플리케이션 개발에 대한 새로운 가능성을 제시하고 있습니다.

📄 논문 본문 발췌 (Excerpt)

## 에피파니 아키텍처 및 오픈SHMEM 구현 상태

Adapteva의 에피파니 MIMD 아키텍처[1]는 저렴한 Parallella 플랫폼에 현재 구현되어 있지만, 여전히 프로그래밍하기 어려운 과제를 안고 있습니다. 제한된 코어 메모리(32KB의 공유 명령 및 데이터), 낮은 오프칩 대역폭, 익숙하지 않은 소유 소프트웨어 스택, 그리고 현재 호스트 시스템 콜을 접근할 수 없는 비대칭 하이브리드 플랫폼 구조가 주요 원인입니다. 에피파니 아키텍처의 개요는 그림 1에 제시되어 있습니다.

에피파니 SDK(eSDK)에서 제공한 멀티코어 라이브러리 인터페이스는 온칩 듀얼 채널 DMA 엔진 및 2D NoC 토폴로지 등 기본 하드웨어 기능을 활용하기 위해 병렬 애플리케이션을 다시 작성해야 합니다. 그러나 이러한 애플리케이션은 다른 플랫폼에서는 재사용이 불가능합니다. 또한 e-lib 인터페이스는 OpenSHMEM 인터페이스의 대부분의 멀티코어 프리미티브를 포함하지 않아 직접 비교가 제한적입니다.

에피파니와 같은 컴퓨터 아키텍처는 뛰어난 계산 에너지 효율성을 달성합니다. SRAM을 사용하여 오프칩 DRAM 대신 사용함으로써 전력 소비를 줄이고 메모리 지연을 감소시키며, 이는 대칭 멀티프로세서(SMP) 아키텍처에서 발견되는 메모리 장벽 문제를 해결합니다. 대역폭은 코어 수에 비례하여 증가하며, 이는 DRAM 대역폭이 분산 CPU 클러스터의 소켓 수에 비례하는 것과 동일합니다. 아키텍처는 타일링을 통해 추가 프로세서를 회로판에 배치하고 연결함으로써 더 큰 코프로세서를 만들 수 있습니다.

에피파니 코어를 효과적으로 사용하기 위한 가장 큰 도전 과제는 제한된 SRAM과 효율적인 인터프로세서 통신 실행입니다. 이전 연구에서는 표준 병렬 프로그래밍 API를 사용하여 에피파니 아키텍처에서 고성능을 달성하기 위해 스레드 MPI 구현을 보여주었습니다[2], [3]. OpenSHMEM 1.2 표준은 에피파니에서 SPMD 방식으로 실행될 때 적합한 우수한 일방식 통신 루틴을 제공합니다. OpenSHMEM API는 에피파니 아키텍처에서 MPI에 비해 데이터 참조 세마틱스가 개선되고 인터페이스 복잡성이 감소하여 코드 크기를 줄이고 애플리케이션 성능을 향상시킵니다.

eSDK는 칩 내 코어의 행과 열을 나타내는 2차원 식별자를 사용합니다. 이 API 선택은 애플리케이션이 직사각형 칩 섹션만 사용할 수 있도록 제한하며, 이는 임의의 또는 이상적인 작업 그룹 크기를 허용하지 않습니다. 가상 프로세스 식별자와 물리 도메인 사이에 추상화가 없기 때문에 향후 아키텍처에서 코어가 손상되거나 비활성화된 경우 문제가 발생할 수 있습니다. OpenSHMEM API는 1차원 가상 계산 토폴로지가 물리 위치와 메모리 주소를 추상화하므로 코어 내 작업 그룹의 물리적 주소 계산을 단순한 논리 및 정수 연산으로 수행할 수 있습니다.

API 간의 직접 비교가 어려운 이유는 eSDK 라이브러리 코드에 OpenSHMEM에서 사용되는 모든 루틴이 포함되지 않기 때문입니다. 원격 주소 계산, 글로벌 바리어, 블록 데이터 메모리 복사, 그리고 멀티코어 락과 같은 기능만 포함되어 있습니다.

이전 에피파니 아키텍처에 대한 MPI 연구와 비교하여 OpenSHMEM의 단순한 명시적 타입 특수화는 제한된 코어 메모리를 효율적으로 사용하는 더 간결한 구현을 가능하게 합니다. 또한 일방식 통신과 약화된 동기화 요구 사항은 명시적인 양방향 스레드 MPI 루틴 사용에 비해 애플리케이션의 효과적인 코드 크기를 줄입니다. OpenSHMEM은 또한 전체 구현을 구축하기 위해 필요한 전문 루틴의 수가 적습니다. MPI 사양은 대칭성에 대한 가정을 하지 않지만, 에피파니와 같은 비대칭 아키텍처에서는 추가적인 고려가 필요합니다.

에피니티(Epiphany) 아키텍처를 위한 SHMEM 구현 및 성능 최적화

메모리 할당 및 주소 계산:

에피니티 아키텍처의 대칭 메모리 관리는 로컬 메모리의 논리적 주소와 물리적 주소 간의 변환이 없기 때문에 가장 도전적인 측면 중 하나입니다. 또한 추적 기능도 없습니다. 이러한 특성 때문에 원격 주소 계산을 단순화하고 다른 코어 간의 조정이 필요하지 않습니다. SHMEM 메모리 관리 루틴은 현재 UNIX의 brk/sbrk를 사용하여 선형 순서로 할당하며, 재할당과 해제 순서에 대한 규칙을 적용합니다. 향후 개발을 통해 전통적인 malloc과 일관된 할당 회계 시스템을 구현할 계획입니다.

전체 집단적 장벽:

에피니티 하드웨어의 wait-on-AND (WAND) 장벽과 인터럽트 서비스 루틴이 전체 집단적 장벽에 사용됩니다. 이는 소프트웨어 장벽보다 성능이 훨씬 높지만, 모든 코어가 사용되지 않는 경우 실용적인 유용성이 제한적입니다. 또한, 1000개 이상의 코어를 갖춘 제안된 프로세서의 경우, 효율성을 위해 소프트웨어에서 토폴로지에서 비활성화된 코어를 제거해야 합니다. 따라서 효율적이고 확장 가능한 소프트웨어 장벽 개발이 매우 중요합니다. 더 효율적인 집단적 및 스트라이드 장벽 구현은 현재 개발 중입니다. WAND 장벽과 선형 소프트웨어 장벽은 각각 0.1μs와 2.0μs (20배 속도 향상)로 완료됩니다.

최적화된 블록 데이터 복사 방법:

우리는 빠른 코어 간 데이터 전송을 위해 최적화된 블록 데이터 복사 방법을 개발했습니다. 이 방법은 에피니티 하드웨어 루프 기능을 활용하고, 이중 단어 로드 및 저장 을 펼쳐서 eSDK보다 더 높은 대역폭과 낮은 지연 시간을 달성합니다. eSDK는 DMA 엔진을 사용하고, DMA 상태 레지스터를 회전하여 완료를 기다립니다. 상태 레지스터를 회전하는 것은 성능 저하를 초래합니다. DMA 엔진은 설정 비용이 커서 작은 전송은 비효율적이며, 하드웨어는 피크 성능 달성을 제한합니다. ARL OpenSHMEM 블록 데이터 복사 방법은 eSDK의 동기식 DMA 복사 방법에 비해 모든 전송 크기 및 데이터 유형에서 2.1-9.9배의 속도 향상을 제공합니다.

…(본문이 길어 생략되었습니다. 전체 내용은 원문 PDF를 참고하세요.)…

Reference

이 글은 ArXiv의 공개 자료를 바탕으로 AI가 자동 번역 및 요약한 내용입니다. 저작권은 원저자에게 있으며, 인류 지식 발전에 기여한 연구자분들께 감사드립니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키