KR102621139B1 - 프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치 - Google Patents

프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치 Download PDF

Info

Publication number
KR102621139B1
KR102621139B1 KR1020210159700A KR20210159700A KR102621139B1 KR 102621139 B1 KR102621139 B1 KR 102621139B1 KR 1020210159700 A KR1020210159700 A KR 1020210159700A KR 20210159700 A KR20210159700 A KR 20210159700A KR 102621139 B1 KR102621139 B1 KR 102621139B1
Authority
KR
South Korea
Prior art keywords
matrix
frame
encoding
matrices
node
Prior art date
Application number
KR1020210159700A
Other languages
English (en)
Other versions
KR20230072962A (ko
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 KR1020210159700A priority Critical patent/KR102621139B1/ko
Priority to PCT/KR2021/017368 priority patent/WO2023090502A1/ko
Publication of KR20230072962A publication Critical patent/KR20230072962A/ko
Application granted granted Critical
Publication of KR102621139B1 publication Critical patent/KR102621139B1/ko

Links

Images

Classifications

    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치에 관한 것으로, 프레임 양자화에 기반한 부호화 컴퓨팅을 이용하여 복수의 연산 노드에서 분산 행렬 곱 연산을 수행하는 방법 및 장치를 제공한다. 이로써 고차원 행렬 곱 처리 성능이 개선된다.

Description

프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치{METHOD AND APPARATUS FOR DISTRIBUTED MATRIX MULTIPLICATION BAED ON FRAME QUANTIZATION}
본 발명은 프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치에 관한 것으로, 프레임 양자화에 기반한 부호화 컴퓨팅(code computing)을 이용하여 복수의 연산 노드에서 분산 행렬 곱 연산을 수행하는 방법 및 장치에 관한 것이다.
이하에서 기술되는 내용은 본 발명의 실시예와 관련되는 배경 정보를 제공할 목적으로 기재된 것일 뿐이고, 기술되는 내용들이 당연하게 종래기술을 구성하는 것은 아니다.
빅데이터 분석, 증강현실, 촉감통신 등 네트워크(또는 구체적으로 사물인터넷)의 지능화를 필요로 하는 고지능 어플리케이션들을 실생활에서 가능케 하기 위해서는 고차원의 행렬 연산이 필수적이다.
이와 같은 큰 부하의 연산을 단일 장치에서 수행하기는 시간이 오래 걸리기 때문에, 이를 분산해서 여러 개의 엣지 장치에 나눠서 통신을 하는 형태로 성능을 개선하는 분산 컴퓨팅 연구가 활발하다. 분산 컴퓨팅은 6G의 대표 키워드 중 하나로 제시되고 있다.
분산 컴퓨팅을 이용한 행렬 곱 연산은 각 노드에게 연산을 할당하고 연산 결과를 받는 과정에서 연산 및 통신 부하량의 정체 현상, 연산 속도, 및 정확도 면에서 한계가 있다.
분산 컴퓨팅 환경에서 고차원 행렬 곱을 효율적으로 수행할 수 있는 방법이 필요하다.
한편, 전술한 선행기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명의 일 과제는 고차원 행렬 곱을 분산하여 효율적으로 수행할 수 있는 분산 행렬 곱 연산 방법 및 장치를 제공하는 것이다.
본 발명의 일 과제는 일부 부호화 행렬 곱 연산 결과로 원래 행렬 곱 연산 결과를 복원가능한 분산 행렬 곱 연산 방법 및 장치를 제공하는 것이다.
본 발명의 목적은 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
본 발명의 일 실시예에 따른 분산 행렬 곱 연산 방법은 제 1 입력 행렬을 분할한 복수의 제 1 부분 행렬 및 제 2 입력 행렬을 분할한 복수의 제 2 부분 행렬을 생성하는 단계, 상기 복수의 제 1 부분 행렬 및 상기 복수의 제 2 부분 행렬을 각각 부호화하여 복수의 연산 노드의 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬을 생성하는 단계, 상기 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬을 각 연산 노드로 분배하는 단계, 상기 복수의 연산 노드의 적어도 일부로부터 상기 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬에 기반한 적어도 하나의 부호화 행렬 곱 결과를 획득하는 단계 및 상기 적어도 하나의 부호화 행렬 곱 결과에 기반하여 상기 제 1 입력 행렬 및 상기 제 2 입력 행렬에 대한 행렬 곱 결과를 복원하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 분산 행렬 곱 연산 장치는, 적어도 하나의 명령어를 저장한 메모리 및 프로세서를 포함하고, 상기 적어도 하나의 명령어는 상기 프로세서에 의하여 실행될 때 상기 프로세서로 하여금, 제 1 입력 행렬을 분할한 복수의 제 1 부분 행렬 및 제 2 입력 행렬을 분할한 복수의 제 2 부분 행렬을 생성하고, 상기 복수의 제 1 부분 행렬 및 상기 복수의 제 2 부분 행렬을 각각 부호화하여 복수의 연산 노드의 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬을 생성하고, 상기 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬을 각 연산 노드로 분배하고, 상기 복수의 연산 노드의 적어도 일부로부터 상기 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬에 기반한 적어도 하나의 부호화 행렬 곱 결과를 획득하고, 상기 적어도 하나의 부호화 행렬 곱 결과에 기반하여 상기 제 1 입력 행렬 및 상기 제 2 입력 행렬에 대한 행렬 곱 결과를 복원하도록 구성될 수 있다.
전술한 것 외의 다른 측면, 특징, 및 이점이 이하의 도면, 청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
실시예에 의하면, 일부 부호화 행렬 곱 연산 결과로 원래 행렬 곱 연산 결과를 복원할 수 있다.
실시예에 의하면, 고차원 행렬 곱 연산 성능이 제고된다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 실시예에 따른 분산 행렬 곱 연산 환경의 예시도이다.
도 2는 실시예에 따른 분산 행렬 곱 연산 장치의 블록도이다.
도 3은 실시예에 따른 분산 행렬 곱 연산 방법의 흐름도이다.
도 4는 예시적인 부호화 프레임 집합을 보여준다.
도 5는 실시예에 따른 분산 행렬 곱 연산을 위한 복호화 중 일 과정을 예시적으로 설명하기 위한 도면이다.
도 6은 실시예에 의한 노드 수에 따른 평균 에러 확률을 보여주는 그래프이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시 예들에 한정되지 않는다. 이하 실시 예에서는 본 발명을 명확하게 설명하기 위해서 설명과 직접적인 관계가 없는 부분을 생략하지만, 본 발명의 사상이 적용된 장치 또는 시스템을 구현함에 있어서, 이와 같이 생략된 구성이 불필요함을 의미하는 것은 아니다. 아울러, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조번호를 사용한다.
이하의 설명에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 되며, 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 또한, 이하의 설명에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하의 설명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
부호화 컴퓨팅은 분산 컴퓨팅에서 각 노드에게 연산을 할당하고 연산 결과를 받을 때, 연산의 정확도, 속도, 연산 및 통신 부하량 등의 정체 현상을 해결하기 위해, 모든 노드로부터 연산 결과를 받지 않고도 원 연산을 복원하도록 추가적인 연산을 할당하는 방법이다.
부호화 컴퓨팅은 부호화 이론(coding theory)에 기초한 컴퓨팅 방법이다. 부호화 컴퓨팅을 이용한 분산 행렬 곱에서 전체 시스템의 성능, 즉 전체 시스템의 연산 속도, 정확도 및 부하량은 각 엣지 장치에 쪼갠 행렬들을 부호화하는 방법에 따라 달라질 수 있다.
예를 들어, 곱하고자 하는 두 행렬을 각각 m x p 부분행렬, p x n 부분행렬로 쪼개는 경우, 최소 pmn+p-1개의 엣지 장치가 있으면 원래 원하는 행렬 연산을 복구할 수 있다고 알려져 있다(Q. Yu, M. A. Maddah-Ali, and A. S. Avestimehr, “Straggler mitigation in distributed matrix multiplication: Fundamental limits and optimal coding,” IEEE Transactions on Information Theory, vol. 66, no. 3, pp. 1920-1933, 2020 참조).
본 발명에서는 프레임 양자화 이론을 기반으로 하는 부호화 컴퓨팅 방식을 이용한 분산 행렬 곱 연산 방법 및 장치를 제안한다. 본 발명의 실시예에 의하면 노드 수가 매우 적은 환경에서도 일정 수준 이하의 에러율을 보장하는 분산 행렬 곱 연산이 가능하다.
이하 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 실시예에 따른 분산 행렬 곱 연산 환경의 예시도이다.
실시예에 따른 분산 행렬 곱 연산은 복수의 연산 노드(N1, N2, N3, N4)를 포함하는 분산 처리 환경에서 실행될 수 있다. 분산 처리 환경은 분산 처리를 제어하는 중앙 노드(N0)를 포함할 수 있다. 예를 들어 중앙 노드(N0)는 복수의 연산 노드(N1, N2, N3, N4) 중 하나이거나 또는 별개의 노드일 수 있다.
중앙 노드(N0) 및 복수의 연산 노드(N1, N2, N3, N4)는 각각 도 2를 참조하여 후술할 분산 행렬 곱 연산 장치(100)의 일 예이다. 도 1에는 4 개의 연산 노드(N1, N2, N3, N4)를 도시하였으나 이는 예시적인 것이고 분산 처리 환경은 더 적은 또는 더 많은 연산 노드를 포함할 수 있다.
중앙 노드(N0)는 분산 행렬 곱 연산을 복수의 연산 노드(N1, N2, N3, N4)에게 분배하고 복수의 연산 노드(N1, N2, N3, N4)로부터 연산 결과를 수신하고 이를 종합하여 행렬 곱 연산의 결과를 제공할 수 있다.
일 예에서 중앙 노드(N0)는 복수의 연산 노드(N1, N2, N3, N4)의 적어도 일부 노드로부터 연산 결과를 수신하고 이로부터 행렬 곱 연산의 결과를 생성할 수 있다.
중앙 노드(N0)는 두 개 또는 그 이상의 입력 행렬 간의 행렬 곱을 실행하기 위하여 입력 행렬을 복수의 부분 행렬(submatrix)로 분할할 수 있다. 중앙 노드(N0)는 입력 행렬을 분할한 복수의 부분 행렬에 기반하여 입력 행렬을 부호화할 수 있다.
일 예에서 중앙 노드(N0)는 입력 행렬을 부호화 파라미터를 계수(coefficient)로 하는 복수의 부분 행렬의 선형 합으로 매핑하는 선형 함수(linear mapping)를 이용하여 입력 행렬을 부호화할 수 있다.
예를 들어 두 개의 입력 행렬(A, B)에 대하여 중앙 노드(N0)는 입력 행렬(A, B)을 부호화하여 얻은 부호화 행렬()을 연산 노드(Nw)에게 전송한다. 예를 들어 중앙 노드(N0)는 연산 노드(N1)에게 부호화 행렬()을 전송한다.
복수의 연산 노드(N1, N2, N3, N4)는 각각 부호화 행렬 간 곱셈을 실행하고 그 결과를 중앙 노드(N0)로 전송한다. 중앙 노드(N0)는 복수의 연산 노드(N1, N2, N3, N4)의 적어도 일부 노드로부터 부호화 행렬 곱 결과를 수신한다.
중앙 노드(N0)는 수신한 부호화 행렬 곱 결과로부터 입력 행렬에 대한 행렬 곱 결과, 즉 원(original) 연산 결과를 복원한다.
일 예에서 중앙 노드(N0)는 입력 행렬의 복호화를 위한 프레임을 이용하여 수신한 부호화 행렬 곱으로부터 원 연산 결과를 복원할 수 있다.
도 2는 실시예에 따른 분산 행렬 곱 연산 장치의 블록도이다.
실시예에 따른 분산 행렬 곱 연산 장치(100)는 프로세서(110) 및 메모리(120)를 포함할 수 있다.
실시예에 따른 분산 행렬 곱 연산 장치(100)는 프로세서(110) 및 메모리(120)를 포함한다.
프로세서(110)는 일종의 중앙처리장치로서, 메모리(120)에 저장된 하나 이상의 명령어를 실행하여 실시예에 따른 분산 행렬 곱 연산 방법을 실행할 수 있다. 프로세서(110)는 데이터에 대한 연산을 처리할 수 있는 모든 종류의 장치를 포함할 수 있다.
프로세서(110)는 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로서, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit; CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 및 그래픽 처리 유닛(Graphics Processing Unit; GPU) 등의 처리 장치를 망라할 수 있으나, 이에 한정되는 것은 아니다.
프로세서(110)는 하나 이상의 프로세서를 포함할 수 있다. 예를 들어 프로세서(110)는 CPU 및 GPU를 포함할 수 있다. 예를 들어 프로세서(110)는 복수 개의 GPU를 포함할 수 있다. 프로세서(110)는 적어도 하나의 코어를 포함할 수 있다.
메모리(120)는 분산 행렬 곱 연산 장치(100)가 실시예에 따른 병렬 LU 분해 제공 방법을 실행하기 위한 명령 등을 저장할 수 있다. 메모리(120)는 실시예에 따른 분산 행렬 곱 연산 방법을 구현한 하나 이상의 명령을 생성 및 실행하는 실행가능한(executable) 프로그램을 저장할 수 있다.
프로세서(110)는 메모리(120)에 저장된 프로그램 및 명령어들에 기반하여 실시예에 따른 분산 행렬 곱 연산 방법을 실행할 수 있다.
메모리(120)는 내장 메모리 및/또는 외장 메모리를 포함할 수 있으며, DRAM, SRAM, 또는 SDRAM 등과 같은 휘발성 메모리, OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND 플래시 메모리, 또는 NOR 플래시 메모리 등과 같은 비휘발성 메모리, SSD, CF(compact flash) 카드, SD 카드, Micro-SD 카드, Mini-SD 카드, Xd 카드, 또는 메모리 스틱(memory stick) 등과 같은 플래시 드라이브, 또는 HDD와 같은 저장 장치를 포함할 수 있다. 메모리(120)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 이에 한정되는 것은 아니다.
추가적으로 분산 행렬 곱 연산 장치(100)는 통신부(130)를 더 포함할 수 있다.
통신부(130)는 유무선 통신 기술을 이용하여 분산 행렬 곱 연산 장치(100)와 추가적인 분산 행렬 곱 연산 장치(100)를 비롯한 외부 장치 간에 송수신 신호를 패킷 데이터 행태로 제공하는 통신 인터페이스를 제공한다. 또한 통신부(130)는 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호 등을 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함한 장치일 수 있다.
통신부(130)는 복수의 연산 노드(100)로 구성된 컴퓨터 클러스터를 위한 고속 통신 인터페이스를 제공할 수 있다. 예를 들어 통신부(130)는 메시지 전달 인터페이스(Message Passing Interface; MPI), 병렬 가상 머신(Parallel Virtual Machine; PVM), MPICH, Open MPI 등을 제공할 수 있다.
분산 행렬 곱 연산 장치(100)는 실시예에 따른 분산 행렬 곱 연산 방법을 실행한다. 이를 위하여, 메모리(120)에 저장된 적어도 하나의 명령어는 프로세서(110)에 의하여 실행될 때 프로세서(110)로 하여금, 제 1 입력 행렬을 분할한 복수의 제 1 부분 행렬 및 제 2 입력 행렬을 분할한 복수의 제 2 부분 행렬을 생성하고, 복수의 제 1 부분 행렬 및 복수의 제 2 부분 행렬을 각각 부호화하여 복수의 연산 노드의 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬을 생성하고, 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬을 각 연산 노드로 분배하고, 복수의 연산 노드의 적어도 일부로부터 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬에 기반한 적어도 하나의 부호화 행렬 곱 결과를 획득하고, 적어도 하나의 부호화 행렬 곱 결과에 기반하여 제 1 입력 행렬 및 제 2 입력 행렬에 대한 행렬 곱 결과를 복원하도록 구성될 수 있다.
메모리(120)에 저장된 적어도 하나의 명령어는 프로세서(110)에 의해 실행될 때 프로세서(110)로 하여금, 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬을 생성하기 위하여, 각 연산 노드의 제 1 부호화 프레임 및 복수의 제 1 부분 행렬에 기반하여 각 연산 노드의 제 1 부호화 행렬을 생성하고, 각 연산 노드의 제 2 부호화 프레임 및 복수의 제 2 부분 행렬에 기반하여 각 연산 노드의 제 2 부호화 행렬을 생성하도록 구성될 수 있다.
일 예에서, 제 1 부호화 프레임은 제 1 입력 행렬의 분할 차수에 따른 제 1 행렬 공간(vector space)의 등각 프레임(equiangular tight frame)이고, 제 2 부호화 프레임은 제 2 입력 행렬의 분할 차수에 따른 제 2 행렬 공간의 등각 프레임으로 구성될 수 있다.
일 예에서, 제 1 부호화 프레임은 각각의 제 1 부분 행렬에 대응하는 제 1 부호화 파라미터를 행렬성분으로 하는 행렬이고, 제 2 부호화 프레임은 각각의 제 2 부분 행렬에 대응하는 제 2 부호화 파라미터를 행렬성분으로 하는 행렬로 구성될 수 있다.
메모리(120)에 저장된 적어도 하나의 명령어는 프로세서(110)에 의해 실행될 때 프로세서(110)로 하여금, 연산 노드별 제 1 부호화 행렬 및 제 2 부호화 행렬을 생성하기 위하여, 제 1 부호화 파라미터 및 제 1 부호화 파라미터에 대응하는 제 1 부분 행렬에 기반한 선형 함수에 의해 제 1 부호화 행렬을 생성하고, 제 2 부호화 파라미터 및 제 2 부호화 파라미터에 대응하는 제 2 부분 행렬에 기반한 선형 함수에 의해 제 2 부호화 행렬을 생성하도록 구성될 수 있다.
메모리(120)에 저장된 적어도 하나의 명령어는 프로세서(110)에 의해 실행될 때 프로세서(110)로 하여금, 원 행렬 곱 결과를 복원하기 위하여, 부호화 행렬 곱 결과를 연산한 연산 노드의 노드 인덱스 집합에 기반하여 제 1 입력 행렬에 대한 제 1 복호화 프레임 및 제 2 입력 행렬에 대한 제 2 복호화 프레임을 결정하고, 제 1 복호화 프레임, 제 2 복호화 프레임 및 부호화 행렬 곱 결과에 기반하여 원 행렬 곱 결과를 결정하도록 구성될 수 있다.
메모리(120)에 저장된 적어도 하나의 명령어는 프로세서(110)에 의해 실행될 때 프로세서(110)로 하여금, 제 1 입력 행렬에 대한 제 1 복호화 프레임 및 제 2 입력 행렬에 대한 제 2 복호화 프레임을 결정하기 위하여, 부호화 행렬 곱 결과를 연산한 연산 노드의 노드 인덱스 집합을 생성하고, 제 1 프레임 인덱스 집합 및 제 2 프레임 인덱스 집합의 직접 곱이 노드 인덱스 집합의 부분 집합이 되는 제 1 프레임 인덱스 집합 및 제 2 프레임 인덱스 집합을 결정하고, 제 1 프레임 인덱스 집합 및 제 2 프레임 인덱스 집합에 기반하여 제 1 복호화 프레임 및 제 2 복호화 프레임을 결정하도록 구성될 수 있다.
실시예에 따른 분산 행렬 곱 연산 방법을 살펴보기에 앞서 본 발명을 개략적으로 설명한다.
실시예에 따른 분산 행렬 곱 연산 시스템은 예를 들어 분산 행렬 곱 연산 장치(100), 즉 단일 중앙 장치(또는 노드)에서 두 행렬 를 곱하여 연산 결과인 를 제공하는 엣지 프로세싱 시스템일 수 있다.
이를 위하여 분산 행렬 곱 연산 장치(100), 즉 중앙 노드는 행렬 AT와 B를 분할한 부분 행렬들을 각각 부호화하고 N개의 연산 노드(즉, 엣지 노드)에게 나눠 연산을 수행하도록 한 다음에 결과를 받아서 복원한다.
보다 구체적으로, 분산 행렬 곱 장치(100)는 전체 행렬 AT와 B을 다음과 같은 pm 개와 pn 개의 부분 행렬(submatrix)로 분할한다.
여기서,이다. 이는 도 3을 참조하여 단계(S1)에 대응한다.
다음으로 분산 행렬 곱 연산 장치(100)는 부분 행렬을 부호화한다.
여기서, 는 각각 부호화 파라미터로서, 연산 노드마다 다르며, 원 결과인 C를 효과적으로 복원할 수 있도록 분산 행렬 곱 연산 장치(100)에서 결정한다. 이에 대하여는 도 3을 참조하여 단계(S2)에서 후술한다.
후속하여, 분산 행렬 곱 연산 장치(100)는 ω번째 연산 노드에 를 전송한다 (ω는 N 이하의 자연수). 이는 도 3을 참조하여 단계(S3)에서 살펴본다.
각 연산 노드는 분산 행렬 곱 연산 장치(100)로부터 수신한 부분 행렬을 서로 곱한다. 즉, ω번째 연산 노드는 를 곱한다.
분산 행렬 곱 연산 장치(100)는 연산 노드의 연산 결과인 를 N' < N 개의 연산 노드로부터 수신한다. 이는 도 3을 참조하여 단계(S4)에서 살펴본다.
분산 행렬 곱 연산 장치(100)는 다음의 단계에 따라 원 결과 를 복원한다. 분산 행렬 곱 연산 장치(100)가 연산 결과 를 수신한 연산 노드의 인덱스 집합을 로 표기한다.
의 i번째 행, j번째 열의 성분을 연결한 형태(concatenated version)의 벡터(vector)를 로 표기한다. 즉, 다음과 같은 수학식으로 표현한다.
여기서 는 해당 행렬의 i번째 행, j번째 열의 성분을 나타낸다.
각 연산 노드에서 연산할 부분행렬 곱인 꼴을 다음과 같은 열 벡터(column vector)로 정의한다.
분산 행렬 곱 연산 장치(100)는 자신의 부호화 과정 및 부호화 파라미터를 알고 있기 때문에 사이의 관계에 대한 수학식은 다음과 같다.
따라서, 분산 행렬 곱 연산 장치(100)는 P-1(즉, P의 역행렬)를 에 곱하여 , 즉 를 얻을 수 있고, 이로부터 원래 구하고자 한 행렬 곱 결과인 를 구할 수 있다. 이와 같은 복원 과정에 대하여는 도 3을 참조하여 단계(S5)에서 살펴본다.
한편, 실시예에서 분산 행렬 곱 문제는 텐서 곱(Tensor Product) 형태로 재표현된다. 즉, 행렬 곱의 복잡도를 낮추기 위하여 제 1 입력 행렬(AT)와 제 2 입력 행렬(B)을 각각의 부분행렬들과 기저(base)의 텐서 곱의 합 형태로 재표현할 수 있다.
여기서, 는 각각 m x p 행렬 공간(vector space)과 p x n 행렬 공간을 구성하는 프레임이며, 프레임은 기저의 선형독립성 조건(linear independent condition)을 완화한 집합 구조를 의미한다. 는 실시예에 따른 분산 행렬 곱 연산 방법에서 각각 제 1, 제 2 복호화 프레임에 대응한다.
nA와 nB는 각각 제 1, 제 2 복호화 프레임 집합 의 원소 개수이다. 또한, 는 다음과 같이 각각 부분행렬 의 선형 합으로 표현되는 선형 함수 (linear mapping)이다.
선형 함수 의 계수(coefficient) 값이 i행 j열이 되는 행렬들의 집합을 로 표현한다.
본 발명에서는 행렬 집합 의 값과 선형 함수 의 계수(coefficient) 를 결정하는 방법을 제안한다. 이를 위해 해당하는 값들을 전이 행렬(transition matrix)로 다음과 같이 정의한다.
이와 같은 조건 하에서, 실시예에 따른 분산 행렬 곱 연산 방법은 프로세서(110)에 의해 부호화 프레임 행렬 집합 을 구성한다. 이 때 부호화 프레임, 즉 의 모든 경우의 수가 총 연산 노드의 수(N) 보다 작도록(즉, ) 부호화 프레임 행렬 집합 을 결정한다.
이에 기초하여 곱셈을 수행할 대상인 제 1 입력 행렬(AT)과 제 2 입력 행렬(B)을 다음의 수학식 9에 따라 부호화한다.
이와 같이 생성된 노드별 부호화 행렬 를 노드 ω에게 전송한다. 여기서 ω는 주어진 행렬의 행 인덱스 e1과 열 인덱스 e2에 기초하여 해당 행렬의 모든 행렬 요소를 사전식 순서에 따라 하나씩 탐색하도록 하는 인덱스로서, ω = nB(e1 - 1) + e2이다.
각 연산 노드는 수신한 노드별 부호화 행렬에 대한 행렬 곱셈을 수행한다. 즉, ω번째 연산 노드는 곱셈 를 수행한다.
중앙 노드는 주어진 시간 기한에서 연산 노드로부터 부분 곱 결과를 수신한다. 수신된 결과 에 대한 연산 노드 인덱스 집합을 표현하기에 앞서, 발생할 수 있는 서로 다른 모든 프레임 행렬 집합의 인덱스 (e1, e2)을 다음과 같이 표기한다.
수신된 결과 에 대한 연산 노드 인덱스 집합 I'는 I의 부분집합으로 다음과 같이 표현될 수 있다.
수신된 결과 에 해당하는 연산 노드 인덱스 집합에 따른 프레임 행렬 을 유동적으로 구성한다. 즉, 원 결과를 복원하기 위해서, 먼저 수신된 결과 에 해당하는 연산 노드 인덱스 집합의 부분집합들 중 의 직접곱(direct product)으로 표현이 되는 를 찾는다. 는 다음의 수학식을 만족하는 인덱스 집합으로 I'의 부분 집합이다.
을 활용하여, 프레임 행렬 를 구성한다.
후속하여, 프레임 행렬 을 이용하여 행렬 곱의 원 연산 결과 C(즉, )를 복원한다. 앞서 구한 프레임 행렬 을 통해서 중앙 노드에서 최종적으로 다음의 수학식에 의해 원 연산 결과를 복원한다.
한편, 본 발명은 실시예에 따른 분산 행렬 곱 연산을 수행하기 위한 부호화 프레임과 복호화 프레임을 디자인하였다. 즉, 본 발명에서 부호화 프레임과 복호화 프레임은 다음과 같은 2단계로 구성된다.
먼저 주어진 부호화 프레임에 따라 최적의 복호화 프레임은 다음과 같이 결정된다.
주어진 인덱스 집합 로부터의 연산 결과 와 부호화 프레임 에 해당하는 전이행렬 에 대해서, 연산 에러율을 최소로 하는 최적의 복호화 프레임 에 해당하는 전이 행렬 는 다음의 수학식에 따라 결정된다.
마지막으로 실시예에 따른 분산 행렬 곱 연산 방법은 등각 프레임(equiangular tight frame)에 기반하여 부호화 프레임 을 생성할 수 있다. 이와 같은 부호화 프레임을 이용하여 입력 행렬(AT, B)을 부호화할 경우, 부호화 행렬()이 입력 행렬(AT, B)의 행렬 공간에 균등하게 분배된다.
즉, 제 1 입력 행렬(AT)의 제 1 부호화 행렬()과 제 2 입력 행렬(B)의 제 2 부호화 행렬()이 각각 m x p 행렬 공간과 p x n 행렬 공간에 균등하게 분배되어, 임의의 제 1, 제 2 입력 행렬 AT와 B에 대해서도 편향없이 원 행렬 C(즉, )를 복원할 수 있다.
예시적인 등각 프레임으로 하다마드 프레임(Hadamard frame), 조화 프레임(Harmonic frame) 외에도 커크만 프레임(Kirkman frame), 슈타이너 프레임(Steiner frame) 등이 있으며 실시예에 따른 분산 행렬 곱 연산 방법은 이에 제한되지 않고 다양한 종류의 등각 프레임을 사용가능하다.
이하에서 실시예에 따른 분산 행렬 곱 연산 장치(100)에 의한 분산 행렬 곱 연산 방법을 도면을 참조하여 살펴본다.
도 3은 실시예에 따른 분산 행렬 곱 연산 방법의 흐름도이다.
실시예에 따른 분산 행렬 곱 연산 방법은 제 1 입력 행렬(AT)을 분할한 복수의 제 1 부분 행렬()및 제 2 입력 행렬(B)을 분할한 복수의 제 2 부분 행렬()을 생성하는 단계(S1), 복수의 제 1 부분 행렬() 및 복수의 제 2 부분 행렬()을 각각 부호화하여 복수의 연산 노드의 연산 노드별 제 1 부호화 행렬() 및 제 2 부호화 행렬()을 생성하는 단계(S2), 연산 노드별 제 1 부호화 행렬() 및 제 2 부호화 행렬()을 각 연산 노드로 분배하는 단계(S3), 복수의 연산 노드의 적어도 일부로부터 연산 노드별 제 1 부호화 행렬() 및 제 2 부호화 행렬()에 기반한 적어도 하나의 부호화 행렬 곱 결과()를 획득하는 단계(S4), 및 적어도 하나의 부호화 행렬 곱 결과()에 기반하여 제 1 입력 행렬(AT) 및 제 2 입력 행렬(B)에 대한 행렬 곱 결과()를 복원하는 단계(S5)를 포함한다.
단계(S1)에서 프로세서(110)는, 메모리(120)에 저장된 명령어를 실행하여, 제 1 입력 행렬(AT)을 분할한 복수의 제 1 부분 행렬() 및 제 2 입력 행렬(B)을 분할한 복수의 제 2 부분 행렬()을 생성한다.
단계(S1)에서 프로세서(110)는 수학식 1을 참조하여 제 1 입력 행렬(AT)을 pm개의 제 1 부분 행렬()로 분할하고 및 제 2 입력 행렬(B)을 pn개의 제 2 부분 행렬()로 분할한다(p, m, n은 각각 자연수).
단계(S2)에서 프로세서(110)는 복수의 제 1 부분 행렬() 및 복수의 제 2 부분 행렬()을 각각 부호화하여 복수의 연산 노드의 연산 노드별 제 1 부호화 행렬() 및 제 2 부호화 행렬()을 생성한다.
단계(S2)는 프로세서(110)에 의해 각 연산 노드의 제 1 부호화 프레임 및 복수의 제 1 부분 행렬()에 기반하여 각 연산 노드의 제 1 부호화 행렬()을 생성하는 단계 및 각 연산 노드의 제 2 부호화 프레임 및 복수의 제 2 부분 행렬()에 기반하여 각 연산 노드의 제 2 부호화 행렬()을 생성하는 단계를 포함할 수 있다.
예를 들어 제 1 부호화 프레임은 제 1 부호화 프레임 집합()의 원소 중 하나로 결정된다. 예를 들어 제 2 부호화 프레임은 제 2 부호화 프레임 집합()의 원소 중 하나로 결정된다. 부호화 프레임 집합 및 부호화 프레임에 대하여는 도 4를 참조하여 후술한다.
일 예에서, 제 1 부호화 프레임은 제 1 입력 행렬(AT)의 분할 차수(예를 들어 p x n)에 따른 제 1 행렬 공간(vector space)의 등각 프레임(equiangular tight frame)이고, 제 2 부호화 프레임은 제 2 입력 행렬(B)의 분할 차수(예를 들어 p x m)에 따른 제 2 행렬 공간의 등각 프레임으로 구성될 수 있다.
일 예에서 제 1 부호화 프레임은 각각의 제 1 부분 행렬()에 대응하는 제 1 부호화 파라미터()를 행렬성분으로 하는 행렬이고, 제 2 부호화 프레임은 각각의 제 2 부분 행렬()에 대응하는 제 2 부호화 파라미터()를 행렬성분으로 하는 행렬로 구성될 수 있다.
일 예에서 단계(S2)는 프로세서(110)에 의해 제 1 부호화 파라미터() 및 제 1 부호화 파라미터()에 대응하는 제 1 부분 행렬()에 기반한 선형 함수()에 의해 제 1 부호화 행렬()을 생성하는 단계 및 제 2 부호화 파라미터() 및 제 2 부호화 파라미터()에 대응하는 제 2 부분 행렬()에 기반한 선형 함수()에 의해 제 2 부호화 행렬()을 생성하는 단계를 포함할 수 있다. 이는 수학식 7 내지 수학식 9 및 전술한 설명을 참조하여 수행된다.
단계(S3)에서 프로세서(110)는 단계(S2)에서 생성된 연산 노드별 제 1 부호화 행렬() 및 제 2 부호화 행렬()을 각 연산 노드로 분배한다.
단계(S3)에서 프로세서(110)는 통신부(130)를 통해 전술한 수학식 10과 관련 설명에 기반하여 사전식 순서에 따른 인덱스를 이용하여 w번째 연산 노드에게 제 1 부호화 행렬() 및 제 2 부호화 행렬()을 전송한다.
단계(S4)에서 프로세서(110)는 복수의 연산 노드의 적어도 일부로부터 연산 노드별 제 1 부호화 행렬() 및 제 2 부호화 행렬()에 기반한 적어도 하나의 부호화 행렬 곱 결과()를 획득한다.
예를 들어 프로세서(110)는 전체 N개의 연산 노드에게 연산 노드별 제 1 부호화 행렬() 및 제 2 부호화 행렬()를 전송하고 M개의 연산 노드로부터 적어도 하나의 부호화 행렬 곱 결과()를 획득할 수 있다. 여기서 M은 N이하의 자연수이다.
단계(S5)에서 프로세서(110)는 적어도 하나의 부호화 행렬 곱 결과()에 기반하여 제 1 입력 행렬(AT) 및 제 2 입력 행렬(B)에 대한 행렬 곱 결과()를 복원한다.
단계(S5)는 프로세서(110)에 의해 부호화 행렬 곱 결과()를 연산한 연산 노드의 노드 인덱스 집합(I')에 기반하여 제 1 입력 행렬(AT)에 대한 제 1 복호화 프레임() 및 제 2 입력 행렬(B)에 대한 제 2 복호화 프레임()을 결정하는 단계 및 프로세서(110)에 의해 제 1 복호화 프레임, 제 2 복호화 프레임 및 부호화 행렬 곱 결과()에 기반하여 행렬 곱 결과를 결정하는 단계를 포함할 수 있다.
단계(S5)의 제 1 입력 행렬(AT)에 대한 제 1 복호화 프레임() 및 제 2 입력 행렬에 대한 제 2 복호화 프레임()을 결정하는 단계는, 프로세서(110)에 의해, 부호화 행렬 곱 결과를 연산한 연산 노드의 노드 인덱스 집합(I')을 생성하는 단계, 제 1 프레임 인덱스 집합(I1) 및 제 2 프레임 인덱스 집합(I2)의 직접 곱(direct product)이 노드 인덱스 집합(I')의 부분 집합이 되는 제 1 프레임 인덱스 집합(I1) 및 제 2 프레임 인덱스 집합(I2)을 결정하는 단계 및 제 1 프레임 인덱스 집합(I1) 및 제 2 프레임 인덱스 집합(I2)에 기반하여 상기 제 1 복호화 프레임() 및 제 2 입력 상기 제 2 복호화 프레임()을 결정하는 단계를 포함한다. 이는 수학식 11 내지 수학식 14과 연계하여 전술한 설명에 따라 수행될 수 있다.
도 4는 예시적인 부호화 프레임 집합을 보여준다.
제 1 부호화 프레임 집합()은 nA 개의 제 1 부호화 프레임 행렬을 원소로 포함하는 집합이다. 여기서 제 1 부호화 프레임 행렬은 각각 제 1 입력 행렬(AT)의 분할차수(예를 들어 p x m) 만큼의 제 1 부호화 파라미터()를 행렬원소로 하는 행렬이다. 여기서 e1은 제 1 부호화 프레임 집합()에 포함된 제 1 부호화 프레임 행렬의 인덱스를 나타낸다.
예를 들어, 첫번째 제 1 부호화 프레임 행렬은 제 1 부호화 파라미터()를 i 행 j열의 행렬원소로 하는 행렬이다.
마찬가지로, 제 2 부호화 프레임 집합()은 nB 개의 제 2 부호화 프레임 행렬을 원소로 포함하는 집합이다. 여기서 제 2 부호화 프레임 행렬은 각각 제 2 입력 행렬(B)의 분할차수(예를 들어 p x n) 만큼의 제 2 부호화 파라미터()를 행렬원소로 하는 행렬이다. 여기서 e2은 제 2 부호화 프레임 행렬 집합()에 포함된 제 2 부호화 프레임 행렬의 인덱스를 나타낸다.
예를 들어, 첫번째 제 2 부호화 프레임 행렬은 제 2 부호화 파라미터()를 i 행 j열의 행렬원소로 하는 행렬이다.
도 5는 실시예에 따른 분산 행렬 곱 연산을 위한 복호화 중 일 과정을 예시적으로 설명하기 위한 도면이다.
여기서 e1은 제 1 복호화 프레임 집합()의 프레임 인덱스이고 e2는 제 2 복호화 프레임 집합()의 프레임 인덱스를 나타낸다.
예를 들어 도 3을 참조하여 단계(S4)에서 연산 노드 1(w=1), 연산 노드 2(w=2), 연산 노드(w=3), 연산 노드(w=4) 및 연산 노드(w=6)로부터 각각 부호화 행렬 곱 결과를 수신했다고 가정한다.
이 경우 수학식 13과 연계하여 전술한대로 수신된 결과 에 해당하는 연산 노드 인덱스 집합의 부분집합들 중 의 직접곱(direct product)으로 표현이 되는 를 찾는다.
결과적으로 도 5에 도시된 예시에서 연산 노드(w=5)로부터 부호화 행렬 곱 결과를 수신하지 못하였으므로, 연산 노드(w=2)는 제외된다. 즉, I1 = {1, 2}이고 I2 = {1, 3}이 되며, 는 {1, 3, 4, 6}으로 결정된다.
도 6은 실시예에 의한 노드 수에 따른 평균 에러 확률을 보여주는 그래프이다.
일 예에서 실시예에 따른 방법에 의해 다음의 수학식과 같이 원 행렬 크기 대비 복원된 연산 행렬의 오차의 비율을 복원된 행렬 곱 결과의 정규화 오차(normalized error)로 결정할 수 있다.
여기서 은 Frobenius norm을 뜻한다.
도 6에서 여러 가지 기법들에 대해서 수학식 16에 따른 오차를 비교하였다. 시뮬레이션 환경은 다음과 같다.
계산하고자 하는 원 행렬은 임의의 값을 가진 300x300 행렬 A와 300x300 행렬 B이며 각각을 pm개와 pn개의 부분행렬로 분할한다. 각 연산 노드가 동일한 컴퓨팅 능력을 사용하도록, 모든 시뮬레이션에서 동일한 크기의 행렬을 곱하도록 하였다. 분할 정도에 대한 파라미터는 p=m=n=2로 결정하였다.
또한, 등각 프레임의 여러 종류 중 하다마드 프레임(Hadamard frame)과 조화 프레임(Harmonic frame)을 사용하여 시뮬레이션 하였다.
시뮬레이션 결과, 정규화된 오차는 도 6의 그래프에 도시되어 있다.
노드 수가 많지 않은 환경에서, 기존 기법은 0.1 내지 1 사이의 확률을 가지게 되는 반면에 실시예에 따른 분산 행렬 곱 연산 방법은 10-2 내지 10-1의 확률을 보이며, 실시예에 따른 방법이 더 성능이 좋음을 확인할 수 있다.
본 발명에서는 사칙연산보다는 구조가 복잡하여 고차원의 연산에 기본이 되는 분산 행렬 곱 기법을 제안한다.
실시예에 따른 방법은 클라우드 서비스를 제공하려는 아마존, 마이크로소프트, 구글 등 다양한 기업들에서 서비스형 함수(Function as a service, FaaS) 측면에서 활용가능하다. 또한, 실시예에 따른 방법은 분산 컴퓨팅의 모든 응용분야, 빅데이터 분석, 증강현실, 촉감통신 등 고지능이라 불리는 어플리케이션들은 물론이고 큰 부하의 고차원의 연산을 요구하는 모든 어플리케이션에 활용가능하다.
실시예에 따른 방법은 큰 부하의 연산을 단일 장치에서 수행하는 경우의 성능 저하를 해결할 수 있으며, 여러 연산 노드가 통신하면서 고차원 행렬 곱셈을 분산적으로 처리함으로써 성능을 개선한다. 특히, 노드 수가 적은 환경에서 일정 수준 이하의 낮은 에러를 보장한다.
전술한 본 발명의 일 실시예에 따른 방법은 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
이상 설명된 본 발명의 실시 예에 대한 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 청구범위에 의하여 나타내어지며, 청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 분산 행렬 곱 연산 장치
110: 프로세서
120: 메모리
130: 통신부

Claims (15)

  1. 프레임 양자화에 기반한 분산 행렬 곱 연산 방법으로서,
    제 1 입력 행렬을 분할한 복수의 제 1 부분 행렬 및 제 2 입력 행렬을 분할한 복수의 제 2 부분 행렬을 생성하는 단계;
    상기 복수의 제 1 부분 행렬 및 상기 복수의 제 2 부분 행렬을 각각 부호화하여 복수의 연산 노드의 각 연산 노드에서 처리될 복수의 제 1 부호화 행렬 및 복수의 제 2 부호화 행렬을 생성하는 단계;
    상기 복수의 제 1 부호화 행렬 및 복수의 제 2 부호화 행렬을 각 연산 노드로 분배하는 단계;
    상기 복수의 연산 노드의 적어도 일부의 연산 노드로부터 상기 제 1 부호화 행렬 및 제 2 부호화 행렬에 기반한 적어도 하나의 부호화 행렬 곱 결과를 획득하는 단계; 및
    상기 적어도 하나의 부호화 행렬 곱 결과에 기반하여 상기 제 1 입력 행렬 및 상기 제 2 입력 행렬에 대한 행렬 곱 결과를 복원하는 단계를 포함하되,
    상기 복수의 제 1 부호화 행렬 및 제 2 부호화 행렬을 생성하는 단계는,
    각 연산 노드의 제 1 부호화 프레임 및 상기 복수의 제 1 부분 행렬에 기반하여 각 연산 노드의 제 1 부호화 행렬을 생성하는 단계; 및
    각 연산 노드의 제 2 부호화 프레임 및 상기 복수의 제 2 부분 행렬에 기반하여 각 연산 노드의 제 2 부호화 행렬을 생성하는 단계를 포함하는 것이고,
    상기 제 1 부호화 프레임은 상기 제 1 입력 행렬의 분할 차수에 따른 제 1 행렬 공간(vector space)의 등각 프레임(equiangular tight frame)이고, 상기 제 2 부호화 프레임은 상기 제 2 입력 행렬의 분할 차수에 따른 제 2 행렬 공간의 등각 프레임이거나,
    상기 제 1 부호화 프레임은 각각의 제 1 부분 행렬에 대응하는 제 1 부호화 파라미터를 행렬성분으로 하는 행렬이고, 상기 제 2 부호화 프레임은 각각의 제 2 부분 행렬에 대응하는 제 2 부호화 파라미터를 행렬성분으로 하는 행렬인 것인,
    분산 행렬 곱 연산 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    상기 복수의 제 1 부호화 행렬 및 복수의 제 2 부호화 행렬을 생성하는 단계는,
    상기 제 1 부호화 파라미터 및 상기 제 1 부호화 파라미터에 대응하는 제 1 부분 행렬에 기반한 선형 함수에 의해 상기 제 1 부호화 행렬을 생성하는 단계; 및
    상기 제 2 부호화 파라미터 및 상기 제 2 부호화 파라미터에 대응하는 제 2 부분 행렬에 기반한 선형 함수에 의해 상기 제 2 부호화 행렬을 생성하는 단계
    를 포함하는,
    분산 행렬 곱 연산 방법.
  6. 제 1 항에 있어서,
    상기 행렬 곱 결과를 복원하는 단계는,
    상기 부호화 행렬 곱 결과를 연산한 연산 노드의 노드 인덱스 집합에 기반하여 상기 제 1 입력 행렬에 대한 제 1 복호화 프레임 및 상기 제 2 입력 행렬에 대한 제 2 복호화 프레임을 결정하는 단계; 및
    상기 제 1 복호화 프레임, 상기 제 2 복호화 프레임 및 상기 부호화 행렬 곱 결과에 기반하여 상기 행렬 곱 결과를 결정하는 단계
    를 포함하는,
    분산 행렬 곱 연산 방법.
  7. 제 6 항에 있어서,
    상기 제 1 입력 행렬에 대한 제 1 복호화 프레임 및 상기 제 2 입력 행렬에 대한 제 2 복호화 프레임을 결정하는 단계는,
    상기 부호화 행렬 곱 결과를 연산한 연산 노드의 노드 인덱스 집합을 생성하는 단계;
    제 1 프레임 인덱스 집합 및 제 2 프레임 인덱스 집합의 직접 곱(direct product)이 상기 노드 인덱스 집합의 부분 집합이 되는 상기 제 1 프레임 인덱스 집합 및 상기 제 2 프레임 인덱스 집합을 결정하는 단계; 및
    상기 제 1 프레임 인덱스 집합 및 상기 제 2 프레임 인덱스 집합에 기반하여 상기 제 1 복호화 프레임 및 상기 제 2 복호화 프레임을 결정하는 단계
    를 포함하는,
    분산 행렬 곱 연산 방법.
  8. 프레임 양자화에 기반한 분산 행렬 곱 연산 장치로서,
    적어도 하나의 명령어를 저장한 메모리; 및
    프로세서
    를 포함하고, 상기 적어도 하나의 명령어는 상기 프로세서에 의하여 실행될 때 상기 프로세서로 하여금,
    제 1 입력 행렬을 분할한 복수의 제 1 부분 행렬 및 제 2 입력 행렬을 분할한 복수의 제 2 부분 행렬을 생성하고,
    상기 복수의 제 1 부분 행렬 및 상기 복수의 제 2 부분 행렬을 각각 부호화하여 복수의 연산 노드의 각 연산 노드에서 처리될 복수의 제 1 부호화 행렬 및 복수의 제 2 부호화 행렬을 생성하고,
    상기 복수의 제 1 부호화 행렬 및 복수의 제 2 부호화 행렬을 각 연산 노드로 분배하고,
    상기 복수의 연산 노드의 적어도 일부의 연산 노드로부터 상기 제 1 부호화 행렬 및 제 2 부호화 행렬에 기반한 적어도 하나의 부호화 행렬 곱 결과를 획득하고,
    상기 적어도 하나의 부호화 행렬 곱 결과에 기반하여 상기 제 1 입력 행렬 및 상기 제 2 입력 행렬에 대한 행렬 곱 결과를 복원하도록 구성되는 것이고,
    상기 적어도 하나의 명령어는 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 복수의 제 1 부호화 행렬 및 제 2 부호화 행렬을 생성하기 위하여,
    각 연산 노드의 제 1 부호화 프레임 및 상기 복수의 제 1 부분 행렬에 기반하여 각 연산 노드의 제 1 부호화 행렬을 생성하고,
    각 연산 노드의 제 2 부호화 프레임 및 상기 복수의 제 2 부분 행렬에 기반하여 각 연산 노드의 제 2 부호화 행렬을 생성하도록 구성되는 것이고,
    상기 제 1 부호화 프레임은 상기 제 1 입력 행렬의 분할 차수에 따른 제 1 행렬 공간(vector space)의 등각 프레임(equiangular tight frame)이고, 상기 제 2 부호화 프레임은 상기 제 2 입력 행렬의 분할 차수에 따른 제 2 행렬 간의 등각 프레임이거나,
    상기 제 1 부호화 프레임은 각각의 제 1 부분 행렬에 대응하는 제 1 부호화 파라미터를 행렬성분으로 하는 행렬이고, 상기 제 2 부호화 프레임은 각각의 제 2 부분 행렬에 대응하는 제 2 부호화 파라미터를 행렬성분으로 하는 행렬인 것인,
    분산 행렬 곱 연산 장치.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 제 8 항에 있어서,
    상기 적어도 하나의 명령어는 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 복수의 제 1 부호화 행렬 및 복수의 제 2 부호화 행렬을 생성하기 위하여,
    상기 제 1 부호화 파라미터 및 상기 제 1 부호화 파라미터에 대응하는 제 1 부분 행렬에 기반한 선형 함수에 의해 상기 제 1 부호화 행렬을 생성하고,
    상기 제 2 부호화 파라미터 및 상기 제 2 부호화 파라미터에 대응하는 제 2 부분 행렬에 기반한 선형 함수에 의해 상기 제 2 부호화 행렬을 생성하도록 구성되는,
    분산 행렬 곱 연산 장치.
  13. 제 8 항에 있어서,
    상기 적어도 하나의 명령어는 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 행렬 곱 결과를 복원하기 위하여,
    상기 부호화 행렬 곱 결과를 연산한 연산 노드의 노드 인덱스 집합에 기반하여 상기 제 1 입력 행렬에 대한 제 1 복호화 프레임 및 상기 제 2 입력 행렬에 대한 제 2 복호화 프레임을 결정하고,
    상기 제 1 복호화 프레임, 상기 제 2 복호화 프레임 및 상기 부호화 행렬 곱 결과에 기반하여 상기 행렬 곱 결과를 결정하도록 구성되는,
    분산 행렬 곱 연산 장치.
  14. 제 13 항에 있어서,
    상기 적어도 하나의 명령어는 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 제 1 입력 행렬에 대한 제 1 복호화 프레임 및 상기 제 2 입력 행렬에 대한 제 2 복호화 프레임을 결정하기 위하여,
    상기 부호화 행렬 곱 결과를 연산한 연산 노드의 노드 인덱스 집합을 생성하고,
    제 1 프레임 인덱스 집합 및 제 2 프레임 인덱스 집합의 직접 곱이 상기 노드 인덱스 집합의 부분 집합이 되는 상기 제 1 프레임 인덱스 집합 및 상기 제 2 프레임 인덱스 집합을 결정하고,
    상기 제 1 프레임 인덱스 집합 및 상기 제 2 프레임 인덱스 집합에 기반하여 상기 제 1 복호화 프레임 및 상기 제 2 복호화 프레임을 결정하도록 구성되는,
    분산 행렬 곱 연산 장치.
  15. 제 1 항 및 제 5 항 내지 제 7 항 중 어느 한 항에 따른 분산 행렬 곱 연산 방법을 프로세서에 의해 실행하기 위한 적어도 하나의 명령어를 포함한 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 비-일시적 기록 매체.
KR1020210159700A 2021-11-18 2021-11-18 프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치 KR102621139B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210159700A KR102621139B1 (ko) 2021-11-18 2021-11-18 프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치
PCT/KR2021/017368 WO2023090502A1 (ko) 2021-11-18 2021-11-24 프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210159700A KR102621139B1 (ko) 2021-11-18 2021-11-18 프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20230072962A KR20230072962A (ko) 2023-05-25
KR102621139B1 true KR102621139B1 (ko) 2024-01-04

Family

ID=86397144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210159700A KR102621139B1 (ko) 2021-11-18 2021-11-18 프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치

Country Status (2)

Country Link
KR (1) KR102621139B1 (ko)
WO (1) WO2023090502A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021060748A (ja) * 2019-10-04 2021-04-15 株式会社日立製作所 演算装置および演算方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102158051B1 (ko) * 2018-06-27 2020-09-21 국민대학교산학협력단 컴퓨터 수행 가능한 클라우드 기반의 인공지능 연산 서비스 방법
US20200104127A1 (en) * 2018-09-28 2020-04-02 Carnegie Mellon University Coded computation strategies for distributed matrix-matrix and matrix-vector products
KR102326586B1 (ko) * 2019-11-19 2021-11-16 재단법인대구경북과학기술원 큰 규모 분산 행렬 곱 처리 방법 및 그 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021060748A (ja) * 2019-10-04 2021-04-15 株式会社日立製作所 演算装置および演算方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Qian Y외 2명, "Straggler Mitigation in Distributed Matrix Multiplication: Fundamental Limits and Optimal Coding", IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 66, NO. 3, pp1920-1933,(2020.3.31.)*

Also Published As

Publication number Publication date
WO2023090502A1 (ko) 2023-05-25
KR20230072962A (ko) 2023-05-25

Similar Documents

Publication Publication Date Title
US20160378809A1 (en) Massive time series correlation similarity computation
Constantine et al. Tall and skinny QR factorizations in MapReduce architectures
WO2017167095A1 (zh) 一种模型的训练方法和装置
JP6978467B2 (ja) 疎要素を密行列に変換するためのシステムおよび方法
US20210295168A1 (en) Gradient compression for distributed training
CN114503125A (zh) 结构化剪枝方法、系统和计算机可读介质
US20200311180A1 (en) Matrix-Factorization Based Gradient Compression
Mallick et al. Rateless codes for near-perfect load balancing in distributed matrix-vector multiplication
US10893117B2 (en) Enabling high speed and low power operation of a sensor network
CN109729110B (zh) 管理专用处理资源的方法、设备以及计算机可读介质
US20220101175A1 (en) Incremental and decentralized model pruning in federated machine learning
KR102621139B1 (ko) 프레임 양자화에 기반한 분산 행렬 곱 연산 방법 및 장치
TWI758223B (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
Proficz et al. Performance and power-aware modeling of MPI applications for cluster computing
CN114626511B (zh) 神经网络的训练方法、推理方法及相关产品
US11445198B2 (en) Multi-quality video super resolution with micro-structured masks
US20220278829A1 (en) Share generating device, share converting device, secure computation system, share generation method, share conversion method, program, and recording medium
AU2021271202B2 (en) Matrix sketching using analog crossbar architectures
US10469257B2 (en) Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program
CN118036755B (zh) 大语言模型的量化方法及推理方法、装置、设备和介质
US20230419091A1 (en) Blockwise factorization of hypervectors
JP7380843B2 (ja) 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
JP7147840B2 (ja) 秘密重複排除フィルタ生成システム、秘密重複排除システム、これらの方法、秘密計算装置及びプログラム
US20230419088A1 (en) Bundling hypervectors
US12033074B2 (en) Vertical federated learning with compressed embeddings

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)