KR20240020539A - 분산 연산을 위한 상호연결 네트워크 구조 - Google Patents

분산 연산을 위한 상호연결 네트워크 구조 Download PDF

Info

Publication number
KR20240020539A
KR20240020539A KR1020220098712A KR20220098712A KR20240020539A KR 20240020539 A KR20240020539 A KR 20240020539A KR 1020220098712 A KR1020220098712 A KR 1020220098712A KR 20220098712 A KR20220098712 A KR 20220098712A KR 20240020539 A KR20240020539 A KR 20240020539A
Authority
KR
South Korea
Prior art keywords
data
processors
subnetworks
processor
distributed computing
Prior art date
Application number
KR1020220098712A
Other languages
English (en)
Inventor
김종민
김상표
안정호
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020220098712A priority Critical patent/KR20240020539A/ko
Publication of KR20240020539A publication Critical patent/KR20240020539A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Multi Processors (AREA)

Abstract

분산 연산 장치 및 그 제어 방법이 개시된다. 일 실시예에 따른 분산 연산 장치의 제어방법에 있어서, 다차원 데이터를 제1 차원의 크기에 기초하여 제1 데이터 집합들로 나누는 단계, 제1 프로세서 집합에 제1 데이터 집합들을 할당하는 단계, 제1 프로세서 집합의 프로세서들 각각은 상기 할당된 제1 데이터 집합에 포함된 데이터들에 대해 분산 연산을 수행하는 단계, 복수의 제1 방향의 서브 네트워크들을 이용하여, 복수의 제1 방향의 서브 네트워크들 각각에 연결된 프로세서들끼리 분산 연산이 수행된 데이터를 교환하여, 제2 프로세서 집합에 제2 데이터 집합들을 매핑하는 단계 및 제2 프로세서 집합의 프로세서들 각각은 매핑된 제2 데이터 집합에 포함된 데이터들에 대해 분산 연산을 수행하는 단계를 포함하고, 제2 데이터 집합들은 다차원 데이터를 제2 차원의 크기에 기초하여 나누어 생성된다.

Description

분산 연산을 위한 상호연결 네트워크 구조{AN INTERCONNECTION NETWORK ORGANIZATION FOR DISTRIBUTED COMPUTATION}
아래 실시예들은 분산 연산 장치 및 그 제어 방법에 관한 것으로, 보다 구체적으로는 분산 연산 장치를 이용하여 다차원적 FFT 연산에 특화된 상호연결 네트워크 구조에 관한 것이다.
이산 푸리에 변환(DFT; Discrete Fourier Transform,)은 신호처리, 암호학, 과학적 연산 등 다양한 수학 및 공학적 응용에서 널리 쓰이는 수학적 이론이고 정수론적 변환(NTT; Number Theoretic Transform,) 등의 다양한 변종(variant)들을 가지고 있다. 이산 푸리에 변환의 계산을 위해 다양한 응용 프로그램에서 고속 푸리에 변환(FFT; Fast Fourier Transform)을 사용하고 있다.
실시예들은 분산 연산 장치의 상호 연결 네트워크 구성을 고안하고자 한다.
실시예들은 분산 연산 장치에서 다차원적 FFT 연산 및 가변 크기 배치(batch)를 활용하여 분산 연산 장치의 쓰루풋(throughput)을 향상시켜 분산 연산 장치의 성능 향상을 제안한다.
다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.
일 실시예에 따른 분산 연산 장치의 제어방법에 있어서, 다차원 데이터를 제1 차원의 크기에 기초하여 제1 데이터 집합들로 나누는 단계, 제1 프로세서 집합에 상기 제1 데이터 집합들을 할당하는 단계, 상기 제1 프로세서 집합의 프로세서들 각각은 상기 할당된 제1 데이터 집합에 포함된 데이터들에 대해 분산 연산을 수행하는 단계, 복수의 제1 방향의 서브 네트워크들을 이용하여, 상기 복수의 제1 방향의 서브 네트워크들 각각에 연결된 프로세서들끼리 상기 분산 연산이 수행된 데이터를 교환하여, 제2 프로세서 집합에 제2 데이터 집합들을 매핑하는 단계 및 상기 제2 프로세서 집합의 프로세서들 각각은 상기 매핑된 제2 데이터 집합에 포함된 데이터들에 대해 분산 연산을 수행하는 단계를 포함하고, 상기 제2 데이터 집합들은 상기 다차원 데이터를 제2 차원의 크기에 기초하여 나누어 생성된다.
상기 제1 프로세서 집합은 상기 제1 데이터 집합들과 동일한 차원 및 크기를 갖고, 상기 제2 프로세서 집합은 상기 제2 데이터 집합들과 동일한 차원 및 크기를 가질 수 있다.
상기 제1 데이터 집합들은 상기 제1 차원의 크기에 대응하는 원소들을 가질 수 있다.
상기 분산 연산은 1차원 FFT 연산을 포함할 수 있다.
상기 매핑하는 단계는 상기 복수의 제1 방향의 서브 네트워크들 각각이 치환(permutation) 패턴으로 데이터 교환을 하는 단계를 포함하고, 상기 치환 패턴은 상기 제1 프로세서 집합의 데이터들을 제2 프로세서 집합의 데이터로 전치(transpose)할 수 있다.
일 실시예에 따른 분산 연산 장치는 분산 연산을 수행하는 복수의 프로세서들 및 상기 복수의 프로세서들 간의 데이터 교환을 수행하는 복수의 서브 네트워크들을 포함하고, 상기 복수의 서브 네트워크들은 복수의 제1 서브 네트워크들 및 복수의 제2 서브 네트워크들을 포함하고, 상기 복수의 프로세서들은 그리드(grid) 형태로 배치되고, 상기 그리드의 각 행에 위치한 프로세서들은 상기 복수의 제1 서브 네트워크들 각각과 연결되고, 상기 그리드의 각 열에 위치한 프로세서들은 상기 복수의 제2 서브 네트워크들 각각과 연결된다.
3차원 데이터를 2차원의 크기에 기초하여 데이터 집합들로 나누고, 상기 복수의 프로세서들에 상기 데이터 집합들을 할당하는 메모리 컨트롤러를 더 포함할 수 있다.
상기 복수의 프로세서들은 상기 데이터 집합들 각각과 동일한 차원 및 크기를 갖는 프로세서의 집합들로 분배될 수 있다.
상기 복수의 서브 네트워크들은 제1 방향으로 분산 연산이 수행된 데이터를 교환하여, 제2 방향의 프로세서 집합들로 데이터를 매핑할 수 있다.
상기 복수의 제1 서브 네트워크들 각각이 치환(permutation) 패턴으로 데이터 교환하고, 상기 치환 패턴은 상기 제1 방향의 프로세서 집합의 데이터들을 상기 제2 방향 프로세서 집합의 데이터로 전치(transpose)하는 복수의 서브 네트워크들을 더 포함할 수 있다.
실시예들은 분산 연산 장치에서 다차원적 FFT 연산 및 가변 크기 배치(batch)를 활용하여 분산 연산 장치의 쓰루풋(throughput)을 향상시켜 분산 연산 장치의 성능 향상을 제안한다.
도 1은 일 실시예에 따른 분산 연산 장치의 네트워크의 구성을 개략적으로 도시한 것이다.
도 2a는 일 실시예에 따른 분산 연산 장치의 네트워크가 분산 연산을 수행하는 일련의 동작을 개략적으로 도시한 것이다.
도 2b는 일 실시예에 따른 분산 연산 장치의 제어 방법을 설명하기 위한 순서도이다.
도 3은 일 실시예에 따른 분산 연산 장치의 배치(Batch) 다차원적 FFT 연산을 개략적으로 도시한 것이다.
도 4는 일 실시예에 따른 분산 연산 장치의 가변 크기 배치(Variable-sized Batch) 다차원 FFT 연산을 개략적으로 도시한 것이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 분산 연산 장치의 네트워크의 구성을 개략적으로 도시한 것이다.
일 실시예에 따른 분산 연산 장치는 여러 개의 프로세서와 이들을 연결하는 상호연결 네트워크로 구성될 수 있다. 각각의 프로세서는 CPU, GPU, FPGA, ASIC등의 하나의 장치가 될 수도 있고, CPU와 CPU로 구성된 복수의 구성과 같은 다수의 장치일 수도 있으며, CPU내부의 코어(core)와 같이 하나 또는 다수의 장치 내부에 있는 프로세싱 요소(processing element)일 수도 있다. 네트워크는 이들 프로세서 간의 통신을 담당하는 매개체로서 어떠한 프로세서를 사용하는지에 따라 서로 다른 구조와 특성을 가진 네트워크를 사용할 수 있으며, 프로세서가 장치 내부에 있는 프로세싱 요소인 경우, 네트워크 또한 장치 내부에 존재할 수 있다. 서로 다른 프로세서들은 네트워크를 통해 필요한 정보의 통신을 수행한다.
일 실시예에 따른 분산 연산 장치는 다른 구성요소를 포함할 수 있으며, 프로세서 또한 다른 기능을 수행하는 구성요소를 포함할 수 있고, 복수의 네트워크가 사용될 수도 있다.
도 1을 참조하면, 일 실시예에 따른 분산 연산 장치에서, 2차원 네트워크(100)는 복수의 프로세서(processor)(110)들, 행 방향(예를 들어, 제1 방향)의S1 서브 네트워크(sub-network)(120) 및 열 방향(예를 들어 제2 방향)의 S2 서브 네트워크(130)를 포함한다.
일 실시예에 따른 2차원 네트워크(100)는 X·Y개의 프로세서(110)가 열의 그리드(grid) 형태로 배열될 수 있다. 네트워크(100)는 Y개의 행과 X개의 열로 구성될 수 있다. 네트워크(100)는 각 행의 모든 프로세서(110)들을 연결하는 Y개의 행 방향 S1 서브 네트워크(120)와 각 열의 모든 프로세서(110)들을 연결하는 X개의 열 방향 S2 서브 네트워크(130)을 포함할 수 있다.
도 1은 3차원 FFT를 수행할 수 있는 2차원 네트워크를 예시로 나타낸 것으로 본 개시가 3차원에 한정되는 것은 아니고, 임의의 2 이상의 정수 D에 대해 D차원 FFT를 수행할 수 있는 D-1차원 네트워크를 구성하는 것으로 확장될 수 있다. 이하 후술할 설명에서는 3차원 FFT를 수행하는 2차원 네트워크를 예시로 들어 설명한다.
일 실시예에 따른 프로세서(110)는 공통적으로 연산을 하는 논리 유닛(logic unit)과 메모리(memory)를 가질 수 있다. 분산 연산 장치에서 각 프로세서(110)는 내부에 존재하는 메모리에서 데이터를 읽을 수 있고, 네트워크를 통해 외부에서 데이터를 읽을 수도 있다. 프로세서(110)는 다수의 논리 게이트들의 어레이로 구현될 수도 있고, 범용적인 마이크로 프로세서와 이 마이크로 프로세서에서 실행될 수 있는 프로그램이 저장된 메모리의 조합으로 구현될 수도 있다. 또한, 다른 형태의 하드웨어로 구현될 수도 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
일 실시예에 따른 프로세서(110)는 분산 연산을 수행할 수 있다. 분산 연산의 예로, 이산 푸리에 변환(Discrete Fourier Transform, DFT)은 신호처리, 암호학, 과학적 연산 등 다양한 수학 및 공학적 응용에서 널리 쓰이는 수학적 이론이고 정수론적 변환(Number Theoretic Transform, NTT) 등의 다양한 변종(variant)들을 가질 수 있다. 컴퓨터에서 이산 푸리에 변환과 다양한 변종들의 빠른 연산을 위해 변환 고속 푸리에 변환(FFT, Fast Fourier Transform)과 같이 잘 알려진 알고리즘(algorithm)을 이용할 수 있다. FFT도 세부적으로 다양한 변종이 존재할 수 있다. 예를 들어, 2의 거듭제곱인 자연수 N에 대해 길이가 N인 배열 A의 가장 기본적인 형태의 잘 알려진 FFT 알고리즘인 래딕스-2 쿨리-투키 FFT 알고리즘(radix-2 Cooley-Tukey FFT Algorithm)은 아래 수학식 1과 같다.
상술한 알고리즘에서 인풋(Input)은 배열(array) A, A는 N개의 원소 A[0] ~ A[N-1]를 가지고, Output은 이산 푸리에 변환이 적용된 배열 A이며, 이고 을 만족하는 상수이다.
알고리즘에서 처음 배열 A의 데이터의 순서를 비트 리버싱(bit-reversing)이라는 과정을 통해서 바꾸어 주는 것이 일반적이고, 그러한 데이터의 재배열은 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
상술한 알고리즘은 FFT 가 아니더라도, 변종들과 비슷한 연산 패턴을 가지는 다양한 연산들에서 널리 사용될 수 있다. 예를 들어, 행렬곱, 행렬벡터곱, 큰 수의 곱셈 등의 연산 등에 FFT와 비슷한 연산 알고리즘이 사용될 수 있다. 본 개시의 실시예들은 다양한 적용에 폭넓게 적용될 수 있다. 또, FFT의 역변환인 Inverse FFT(IFFT)도 FFT와 거의 유사한 알고리즘을 사용해 계산할 수 있다.
일 실시예에 따른 네트워크(100)는 다차원적 FFT 연산을 수행할 수 있다. 다차원적 FFT는 아래와 같은 방법으로 수행할 수 있다.
예를 들어, 데이터를 D 차원으로 정렬할 수 있다고 가정하면, 입력(Input)은 크기의 배열 과 같은 식으로 배열 에 들어있는 데이터를 인덱싱(indexing)을 할 수 있고, 아웃풋(Output)은 DFT가 적용된 배열 A로 계산될 수 있다.
프로세서(110)들은 각각의 차원에 대해 각각의 축방향으로 1차원 FFT를 수행할 수 있다. 숫자가 낮은 차원부터 FFT를 수행한다고 하면, 먼저 A의 원소들을 개의 의 데이터 집합으로 나눌 수 있다.
프로세서(110)들은 각각의 집합의 N1개의 원소에 대해 1차원 FFT를 수행할 수 있고, 상술한 과정을 모든 차원에 대해 반복할 수 있다.
즉, d'번째 차원에 대해서도 FFT를 수행한다고 하면, 배열 A의 원소들을 개의 인 데이터의 집합으로 나눠질 수 있고, 각각의 집합의 Nd개의 원소에 대해 1차원 FFT를 수행할 수 있다.
일 실시예에 따른 복수의 프로세서(110)들 각각에는 고유한 좌표를 부여할 수 있다. 네트워크(100)에서, S1 서브 네트워크(120)는 x를 제외한 다른 좌표값들이 같은 프로세서들을 연결할 수 있고, S2 서브 네트워크(130)는 y를 제외한 다른 좌표값들이 같은 프로세서들을 연결할 수 있다.
일 실시예에 따른 복수의 서브 네트워크들(120,130) 각각은 서브 네트워크에 연결된 임의의 프로세서에서 또 다른 임의의 프로세서로의 경로를 제공할 수 있고, 서로 다른 형태로 구성될 수 있다. 서브 네트워크들(120, 130) 각각은 FFT연산을 효율적으로 수행하기 위해 네트워크(100)상에서 임의의 치환(permutation)형태의 데이터 교환을 수행할 수 있다. 예를 들어, 서브 네트워크들(120, 130)은 크로스바 네트워크(crossbar network)와 같은 논블로킹(non-blocking) 네트워크를 포함할 수 있다. 치환 형태의 데이터 교환이란 네트워크에 연결된 프로세서들이(예를 들어, 송신 프로세서) 동시에 데이터 패킷을 네트워크를 통해 특정 프로세서로 전송을 하는데(예를 들어, 수신 프로세서), 이 때 패킷 간의 송신 프로세서와 수신 프로세서가 중복되지 않는 데이터 교환의 패턴을 말한다.
일 실시예에 따른 분산 연산 장치는 메모리 컨트롤러를 포함할 수 있다. 메모리 컨트롤러는 외부의 데이터를 저장하고 네트워크의 프로세서 및 서브 네트워크에 데이터를 할당할 수 있고, 프로세서 및 서브 네트워크를 통해 연산된 데이터 결과물을 저장할 수 있다.
상술한 네트워크의 구조를 임의의 D차원 FFT를 수행할 수 있는 D-1차원 네트워크를 구성하는 것으로 확장하는 경우, 개의 프로세서가 배열의 그리드 형태로 배치(dispose)되며, 상기 그리드의 각각의 차원(축) 방향으로 개의 Sd 서브 네트워크를 두어 D-1차원 네트워크를 구성할 수 있다(d = 1, 2, ..., D-1).
도 2a는 일 실시예에 따른 분산 연산 장치의 네트워크가 분산 연산을 수행하는 일련의 동작을 개략적으로 도시한 것이다.
도 2a를 참조한 설명은 도 1을 참조한 설명에도 동일하게 적용될 수 있고, 중복되는 내용은 생략될 수 있다. 도 1의 프로세서(110) 및 서브 네트워크들(120, 130)은 도 2a에서 간략하게 표현되거나 생략될 수 있다.
도 2a를 참조하면, 일 실시예에 따른 2차원 네트워크(200)는 배열 A(210)에 대해 3차원 FFT를 수행할 수 있다. 네트워크(200)는 배열 A(210)에 대해 제1 차원 방향의 제1 FFT연산(220), 제1 전치(transpose) 동작(230), 제2 차원 방향의 제2 FFT연산(240), 제2 전치 동작(250) 및 제3 차원 방향의 제3 FFT연산(260)을 포함할 수 있다.
일 실시예에 따른 배열 A(210)는 N1, N2 및 N3의 크기 가질 수 있고, 를 만족할 수 있다. 다만, 본 개시의 배열 A(210)는 임의의 데이터이고, 3차원 이상의 데이터로 확장될 수 있으며, 이에 한정되지 않는다.
제1 FFT연산(220)에서, 분산 연산 장치는 그리드에서 (x, y) 좌표에 있는 프로세서(110)들에 제1 데이터 집합(예를 들어, )을 할당할 수 있다. 상기 제1 데이터 집합이 할당된 프로세서들을 제1 프로세서 집합이라고 할 수 있다. 제1 프로세서 집합의 프로세서들은 제1 차원 방향으로 가지고 있는 N1개의 데이터에 대해 1차원 FFT연산을 수행할 수 있다.
제1 전치 동작(230)에서, 분산 연산 장치는 제1 방향의 서브 네트워크(120)을 이용하여, 제1 방향으로 연결된 프로세서(110)들끼리 데이터를 교환하여, 그리드에서 (x, y) 좌표에 있는 프로세서(110)들에 제2 데이터 집합()을 매핑할 수 있다. 상기 제2 데이터 집합이 매핑된 프로세서들을 제2 프로세서 집합이라고 할 수 있다.
제1 프로세서 집합은 제1 데이터 집합들과 동일한 차원 및 크기를 갖고, 제2 프로세서 집합은 제2 데이터 집합들과 동일한 차원 및 크기를 가질 수 있다.
제2 FFT연산(240)에서, 분산 연산 장치의 제2 프로세서 집합의 프로세서들은 제2 차원 방향으로 가지고 있는 N2개의 데이터에 대해 1차원 FFT연산을 수행할 수 있다.
제2 전치 동작(250)에서, 분산 연산 장치는 제2 방향의 서브 네트워크(130)을 이용하여, 제2 방향으로 연결된 프로세서(110)들끼리 데이터를 교환하여, 그리드에서 (x, y) 좌표에 있는 프로세서(110)들에 제3 데이터 집합()을 매핑할 수 있다. 상기 제3 데이터 집합이 매핑된 프로세서들을 제2 프로세서 집합이라고 할 수 있다.
제3 FFT연산(260)에서, 분산 연산 장치의 제3 프로세서 집합의 프로세서들은 제3 차원 방향으로 가지고 있는 N3개의 데이터에 대해 1차원 FFT연산을 수행할 수 있다.
전술한 과정에서, N1, N2, N3의 크기에 따라, 분산 연산 장치의 일부 프로세서들이 동작하지 않을 수 있다.
도 2b는 일 실시예에 따른 분산 연산 장치의 제어 방법을 설명하기 위한 순서도이다.
도 2b를 참조하면, 단계들(221 내지 241)은 도 1 내지 2a를 참조하여 설명한 분산 연산 장치에 의해 수행될 수 있고, 도 2b의 동작은 도시된 순서 및 방식으로 수행될 수 있지만, 도시된 실시예의 사상 및 범위를 벗어나지 않으면서 일부 동작의 순서가 변경되거나 일부 동작이 생략될 수 있다. 도 2b에 도시된 다수의 동작은 병렬로 또는 동시에 수행될 수 있다.
일 실시예에 따른 분산 연산 장치의 제1 FFT 연산(220) 동작은 단계들(221 내지 223)을 거쳐 수행될 수 있다.
단계(221)에서, 분산 연산 장치는 다차원 데이터를 제1 차원 크기에 기초하여 제1 데이터 집합들로 나눌 수 있다.
단계(222)에서, 분산 연산 장치는 제1 프로세서 집합에 제1 데이터 집합들을 할당한다.
단계(223)에서, 분산 연산 장치의 제1 프로세서 집합의 프로세서들 각각은 할당된 제1 데이터 집합에 포함된 데이터들에 의해 분산 연산을 수행한다.
일 실시예에 따른 분산 연산 장치의 제1 전치 동작(230)은 단계(231)을 거쳐 수행될 수 있다.
단계(231)에서, 분산 연산 장치는 복수의 제1 방향 서브 네트워크(120)들을 이용하여, 복수의 제1 방향의 서브 네트워크들 각각에 연결된 프로세서들끼리 분산 연산이 수행된 데이터를 교환하여, 제2 프로세서 집합에 제2 데이터 집합들을 매핑할 수 있다.
일 실시예에 따른 분산 연산 장치의 서브 네트워크들은 전치(transpose)를 수행할 수 있다. 예를 들어, 각각의 서브 네트워크와 프로세서들은 임의의 치환(permutation) 형태의 데이터 교환을 수행할 수 있다. 분산 연산 장치는 D차원 FFT를 크기의 배열 A에 대해 수행할 수 있다. (D-1)차원 그리드에서 좌표에 있는 프로세서는 d번째 차원 방향으로 1차원 FFT연산을 수행한 후, 의 데이터를 포함할 수 있다. 프로세서가 의 데이터를 할당 받도록 전치를 수행하기 위하여, d번째 차원(축) 방향 Sd 서브 네트워크는 같은 서브 네트워크 내에 있는 프로세서 간의 데이터 교환을 진행해야 한다. Sd 서브 네트워크는 인 프로세서들과 연결될 수 있다. 상기 Sd 서브 네트워크들 중 하나와 연결되어 있는 프로세서들의 좌표는 로 표현할 수 있다. 분산 연산 장치의 전치 과정에서 프로세서는 프로세서에 대해 의 데이터를 보내야 한다.
일 실시예에 따른 분산 연산 장치의 전치는 후술하는 연산 과정으로 모델링 될 수 있다.
s mod t 라는 표기는 정수 s를 정수 t로 나눈 나머지를 [0, t -1] 범위에서 구하는 연산이고 s // t = (s - (s mod t)) / t로 표현할 수 있다.
분산 연산 장치는 인 경우와 인 경우로 나누어서 전치를 수행할 수 있다.
예를 들어, 인 경우 인 모든 ik = 1에 대해 프로세서 에서 프로세서의 데이터를 보낼 수 있고, k = 2, 3, ..., Nd에 대해 반복할 수 있다.
예를 들어, 인 경우 인 모든 jk = 1에 대해 프로세서 에서 프로세서의 데이터를 보낼 수 있고, k = 2, 3, ..., Nd+1에 대해 반복할 수 있다.
일 실시예에 따른 분산 연산 장치는 상술한 모델링된 방식으로 전치를 수행하면, 데이터의 송신 프로세서(sender processor)가 중복되거나, 데이터의 수신 프로세서(receiver processor)가 중복되지 않는다. 분산 연산 장치는 각각의 Sd 서브 네트워크에서 데이터를 일련의 치환 패턴의 데이터 교환을 하는 것을 통해 전체 전치 과정을 수행할 수 있다.
상술한 도 2b의 동작 방법은 D차원 FFT 연산을 수행하기 위해 여러 번 반복 될 수 있다.
도 3은 일 실시예에 따른 분산 연산 장치의 배치(Batch) 다차원적 FFT 연산을 개략적으로 도시한 것이다.
도 1 내지 도 2b를 참조한 설명은, 도 3에도 동일하게 적용될 수 있고, 중복되는 내용은 생략될 수 있다. 전술한 네트워크(100, 200), 프로세서들 및 서브 네트워크들은 도 3의 네트워크(300)와 동일한 기능과 구조를 가질 수 있다.
도 3을 참조하면, 일 실시예에 따른 분산 연산 장치의 2차원 네트워크(300)는 작업 공간을 다중(예를 들어, 310 내지 360)으로 분배할 수 있다. 예를 들어, 분산 연산 장치는 일 때, 6개의 배열 A0, A1, A2, A3, A4 및 A5의 배치(batch)를 네트워크(300)에 분배할 수 있다. 전체 그리드가 6개의 구역으로 분배될 수 있고, 다차원 FFT를 수행할 수 있다. 이하 후술에서는 6개의 배치(batch)의 다차원적 FFT 수행방법에 대해 상세히 설명한다.
일 실시예에 따른 분산 연산 장치는 의 크기를 가지는 개의 배열 의 배치(batch)를 가질 수 있다. 이고, 를 만족할 수 있다.
분산 연산 장치는 그리드에서 (x, y) 좌표에 있는 프로세서에 대해 이라면, 의 데이터를 할당할 수 있다.
각 프로세서들은 제1 차원 방향으로 가지고 있는 개의 데이터에 대해 1차원 FFT 연산을 수행할 수 있다.
복수의 제1 방향의 서브 네트워크들을 이용하여, 복수의 제1 방향 서브 네트워크들과 연결되어 있는 프로세서들끼리 데이터 교환을 하여, 그리드에서 (x, y) 좌표에 있는 프로세서에 대해 이라면, 의 데이터를 매핑할 수 있다.
각 프로세서들은 제2 차원 방향으로 가지고 있는 개의 데이터에 대해 1차원 FFT를 수행할 수 있다.
복수의 제2 방향 서브 네트워크를 이용하여, 복수의 제2 방향 서브 네트워크들과 연결되어 있는 프로세서들끼리 데이터 교환을 하여, 그리드에서 (x, y) 좌표에 있는 프로세서에 대해 이라면, 의 데이터를 매핑할 수 있다.
각 프로세서들은 제3차원 방향으로 가지고 있는 개의 데이터에 대해 1차원 FFT를 수행할 수 있다.
상술한 다중 작업 방법은 여러 개의 배열의 배치(batch)에 대해서 동시에 다차원적 FFT 연산을 수행하는 것으로, 도 1 내지 도 2b에서 설명한 방법을 적용하여 적은 데이터에 대해 다중 작업을 할 수 있다.
도 4는 일 실시예에 따른 분산 연산 장치의 가변 크기 배치(Variable-sized Batch) 다차원 FFT 연산을 개략적으로 도시한 것이다.
도 1 내지 도 3을 참조한 설명은 도 4에도 적용될 수 있고, 중복되는 내용은 생략될 수 있다. 전술한 네트워크(100, 200), 프로세서들 및 서브 네트워크들은 도 4의 네트워크(400)와 동일한 기능과 구조를 가질 수 있다.
도 4는 이고 일 때의 해당 연산을 수행하는 예시이다. 분산 연산 장치는 프로세서들의 배치(batch)의 배분을 통해 네 개의 배열의 집합에 대해 동시에 수행을 할 수 있다.
도 4를 참조하면, 일 실시예에 따른 분산 연산 장치는 네트워크(400)에서 동작하는 프로세서들의 집합을 가변적으로 변경할 수 있다. 네트워크(400)는 의 데이터의 크기에 따라 N1 프로세서 집합(410) , N2 프로세서 집합(420) 및 N3 프로세서 집합(430) 으로 분배하여 프로세서들을 동작할 수 있다.
예를 들어, 일 실시예에 따른 분산 연산 장치는 크기의 그리드 구역에서 길이의 배열에 대해 3D FFT연산을 수행할 수 있다. 후술하는 알고리즘에서는 추가적으로 임을 가정한다. 다차원적 FFT 연산에서 각 차원의 크기를 임의로 설정할 수 있기 때문에 상기와 같은 가정을 하여도 활용성에는 지장이 되지 않는다.
일 실시예에 따른 분산 연산 장치에서, 네트워크(400)는 개의 배열의 배치(batch) 를 포함할 수 있다. 각각의 프로세서들의 좌표는 로 표현될 수 있다.
일 실시예에 따른 분산 연산 장치에서 가변 크기 배치(batch) 다차원적 FFT연산 과정은 아래에서 상세히 설명한다.
분산 연산 장치는 그리드에서 (x, y) 좌표에 있는 N1 프로세서 집합(410)에 의 데이터를 할당할 수 있다.
각 프로세서들은 집합에 있는 각 가 제1 차원 방향으로 가지고 있는 개의 데이터에 1차원 FFT 연산을 수행할 수 있다.
복수의 제1 방향의 서브 네트워크들을 이용하여, 복수의 제1 방향의 서브 네트워크들과 연결되어 있는 프로세서들끼리 데이터 교환을 하여, 그리드에서 (x, y) 좌표에 있는 N2 프로세서 집합(420)에 의 데이터를 매핑할 수 있다.
각 프로세서들은 집합에 있는 각 가 제2 차원 방향으로 가지고 있는 개의 데이터에 1차원 FFT 연산을 수행할 수 있다.
복수의 제2 방향의 서브 네트워크들을 이용하여, 복수의 제2 방향의 서브 네트워크들과 연결되어 있는 프로세서들끼리 데이터 교환을 하여, 그리드에서 (x, y) 좌표에 있는 N3 프로세서 집합(430)에 의 데이터를 매핑할 수 있다.
각 프로세서들은 제3 차원 방향으로 가지고 있는 개의 데이터에 대해 1차원 FFT 연산을 수행할 수 있다.
상술한 분산 연산 장치의 동작 방법은 D차원으로 확장될 수 있고, 각 차원 방향으로 배열된 배치(batch)의 개수를 가변적으로 사용하여 프로세서를 최대한 가용하여 효율적으로 수행할 수 있는 방법이다. 프로세서들이 각각의 차원 방향으로 1차원 FFT 연산을 수행할 때, 제1 차원 방향, 제2 차원 방향 및 제3 차원 방향의 프로세서에서 비슷한 양의 데이터를 처리한다는 추가적인 이점도 있을 수 있다.
일 실시예에 따른 분산 연산 장치가 가변 크기 배치(batch) 다차원적 FFT연산 과정에서 데이터 교환을 하는 전치(transpose) 방법에 대하여 아래에서 상세히 설명한다.
예를 들어, 분산 연산 장치는 D차원 FFT 연산을 크기의 데이터가 개 들어있는 집합 에 대해 수행할 수 있다. 분산 연산 장치는 (D-1)차원 그리드 구역에서 좌표에 있는 프로세서가 d번째 차원 방향으로 1차원 FFT 연산을 수행한 후,
의 데이터를 할당 받은 상황에서,
의 데이터를 할당 받도록 전치를 수행할 수 있다. 분산 연산 장치는 전치를 수행하기 위하여, d 번째 차원 방향 서브 네트워크들을 통해 같은 서브 네트워크와 연결된 프로세서들 간의 데이터 교환을 진행할 수 있다.
각각의 서브 네트워크들을 인 프로세서와 연결되어 구성될 수 있다. 서브 네트워크와 연결되어 있는 프로세서의 로 표현할 수 있다.
일 때, 프로세서 는 프로세서 에 대해 의 데이터를 보낼 수 있다.
분산 연산 장치는 인 모든 jk = 1에 대해 에서 의 데이터를 보낼 수 있고, 상기 과정을 에 대해 반복할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (11)

  1. 다차원 데이터를 제1 차원의 크기에 기초하여 제1 데이터 집합들로 나누는 단계;
    제1 프로세서 집합에 상기 제1 데이터 집합들을 할당하는 단계;
    상기 제1 프로세서 집합의 프로세서들 각각은 상기 할당된 제1 데이터 집합에 포함된 데이터들에 대해 분산 연산을 수행하는 단계;
    복수의 제1 방향의 서브 네트워크들을 이용하여, 상기 복수의 제1 방향의 서브 네트워크들 각각에 연결된 프로세서들끼리 상기 분산 연산이 수행된 데이터를 교환하여, 제2 프로세서 집합에 제2 데이터 집합들을 매핑하는 단계; 및
    상기 제2 프로세서 집합의 프로세서들 각각은 상기 매핑된 제2 데이터 집합에 포함된 데이터들에 대해 분산 연산을 수행하는 단계
    를 포함하고,
    상기 제2 데이터 집합들은
    상기 다차원 데이터를 제2 차원의 크기에 기초하여 나누어 생성되는 분산 연산 장치의 제어 방법.
  2. 제1항에 있어서,
    상기 제1 프로세서 집합은
    상기 제1 데이터 집합들과 동일한 차원 및 크기를 갖고,
    상기 제2 프로세서 집합은
    상기 제2 데이터 집합들과 동일한 차원 및 크기를 갖는, 분산 연산 장치의 제어 방법.
  3. 제1항에 있어서,
    상기 제1 데이터 집합들은
    상기 제1 차원의 크기에 대응하는 원소들을 갖는, 분산 연산 장치의 제어 방법.
  4. 제1항에 있어서,
    상기 분산 연산은
    1차원 FFT 연산을 포함하는, 분산 연산 장치의 제어 방법.
  5. 제1항에 있어서,
    상기 매핑하는 단계는
    상기 복수의 제1 방향의 서브 네트워크들 각각이 치환(permutation) 패턴으로 데이터 교환을 하는 단계
    를 포함하고,
    상기 치환 패턴은 상기 제1 프로세서 집합의 데이터들을 제2 프로세서 집합의 데이터로 전치(transpose)하는, 분산 연산 장치의 제어 방법.
  6. 하드웨어와 결합되어 제1항 내지 제5항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  7. 분산 연산을 수행하는 복수의 프로세서들; 및
    상기 복수의 프로세서들 간의 데이터 교환을 수행하는 복수의 서브 네트워크들
    을 포함하고,
    상기 복수의 서브 네트워크들은
    복수의 제1 서브 네트워크들; 및
    복수의 제2 서브 네트워크들
    를 포함하고,
    상기 복수의 프로세서들은
    그리드(grid) 형태로 배치되고,
    상기 그리드의 각 행에 위치한 프로세서들은 상기 복수의 제1 서브 네트워크들 각각과 연결되고,
    상기 그리드의 각 열에 위치한 프로세서들은 상기 복수의 제2 서브 네트워크들 각각과 연결되는, 분산 연산 장치.
  8. 제7항에 있어서,
    3차원 데이터를 2차원의 크기에 기초하여 데이터 집합들로 나누고, 상기 복수의 프로세서들에 상기 데이터 집합들을 할당하는 메모리 컨트롤러
    를 더 포함하는, 분산 연산 장치.
  9. 제8항에 있어서,
    상기 복수의 프로세서들은
    상기 데이터 집합들 각각과 동일한 차원 및 크기를 갖는 프로세서의 집합들로 분배되는, 분산 연산 장치.
  10. 제7항에 있어서,
    상기 복수의 서브 네트워크들은
    제1 방향으로 분산 연산이 수행된 데이터를 교환하여, 제2 방향의 프로세서 집합들로 데이터를 매핑하는, 분산 연산 장치.
  11. 제10항에 있어서,
    상기 복수의 제1 서브 네트워크들 각각이 치환(permutation) 패턴으로 데이터 교환하고,
    상기 치환 패턴은 상기 제1 방향의 프로세서 집합의 데이터들을 상기 제2 방향의 프로세서 집합의 데이터로 전치(transpose)하는 복수의 서브 네트워크들을 더 포함하는, 분산 연산 장치.

KR1020220098712A 2022-08-08 2022-08-08 분산 연산을 위한 상호연결 네트워크 구조 KR20240020539A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220098712A KR20240020539A (ko) 2022-08-08 2022-08-08 분산 연산을 위한 상호연결 네트워크 구조

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220098712A KR20240020539A (ko) 2022-08-08 2022-08-08 분산 연산을 위한 상호연결 네트워크 구조

Publications (1)

Publication Number Publication Date
KR20240020539A true KR20240020539A (ko) 2024-02-15

Family

ID=89899114

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220098712A KR20240020539A (ko) 2022-08-08 2022-08-08 분산 연산을 위한 상호연결 네트워크 구조

Country Status (1)

Country Link
KR (1) KR20240020539A (ko)

Similar Documents

Publication Publication Date Title
Nicol Rectilinear partitioning of irregular data parallel computations
US7315877B2 (en) Efficient implementation of a multidimensional fast fourier transform on a distributed-memory parallel multi-node computer
Johnsson Solving tridiagonal systems on ensemble architectures
Attia et al. Cygraph: A reconfigurable architecture for parallel breadth-first search
US10678479B1 (en) Registers for restricted memory
GB2405298A (en) Network topology having nodes interconnected by extended diagonal links.
JP5826471B2 (ja) 自律的サブシステムアーキテクチャー
Bisseling et al. Two-dimensional approaches to sparse matrix partitioning
Sorokin et al. Conflict-free parallel access scheme for mixed-radix FFT supporting I/O permutations
KR20240020539A (ko) 분산 연산을 위한 상호연결 네트워크 구조
US20230094933A1 (en) Connecting processors using twisted torus configurations
Yamazaki et al. On partitioning and reordering problems in a hierarchically parallel hybrid linear solver
Ziavras et al. Pyramid mappings onto hypercubes for computer vision: Connection machine comparative study
US9600446B2 (en) Parallel multicolor incomplete LU factorization preconditioning processor and method of use thereof
Baumslag et al. Embeddings of shuffle-like graphs in hypercubes
US11983128B1 (en) Multidimensional and multiblock tensorized direct memory access descriptors
Pechanek et al. An introduction to an array memory processor for application specific acceleration
Prakash et al. Managing HBM Bandwidth on Multi-Die FPGAs with FPGA Overlay NoCs
TWI753728B (zh) 運算單元架構、運算單元叢集及卷積運算的執行方法
Pěgřímek et al. Hamiltonian laceability of hypercubes without isometric subgraphs
Pascual et al. Analyzing the performance of allocation strategies based on space-filling curves
Ewerbring et al. Almost linear time matrix operations on the Connection Machine
Hou et al. Optimal processor mapping for linear-complement communication on hypercubes
Herault et al. Determining the optimal redistribution for a given data partition
Filgueira et al. Optimization and evaluation of parallel I/O in BIPS3D parallel irregular application

Legal Events

Date Code Title Description
E902 Notification of reason for refusal