KR20200095617A - 행렬 연산 장치 - Google Patents

행렬 연산 장치 Download PDF

Info

Publication number
KR20200095617A
KR20200095617A KR1020190012649A KR20190012649A KR20200095617A KR 20200095617 A KR20200095617 A KR 20200095617A KR 1020190012649 A KR1020190012649 A KR 1020190012649A KR 20190012649 A KR20190012649 A KR 20190012649A KR 20200095617 A KR20200095617 A KR 20200095617A
Authority
KR
South Korea
Prior art keywords
matrix
task
multiplication
module
queue
Prior art date
Application number
KR1020190012649A
Other languages
English (en)
Other versions
KR102215449B1 (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 KR1020190012649A priority Critical patent/KR102215449B1/ko
Publication of KR20200095617A publication Critical patent/KR20200095617A/ko
Application granted granted Critical
Publication of KR102215449B1 publication Critical patent/KR102215449B1/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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers

Landscapes

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

Abstract

본 발명에 의하면, 컴퓨터의 행렬 연산을 수행하는 장치에 있어서, 입력받은 행렬을 기반으로, 행렬연산부의 처리 능력을 고려하여 작업을 분할 생성하는 일분배부와, 상기 일분배부로부터 입력큐를 통하여 상기 작업을 전달받아 해당 작업을 처리하는 적어도 하나의 상기 행렬연산부와, 상기 행렬연산부의 출력큐에 의해 상기 작업의 처리 결과를 전달받는 결과수집부를 포함하며, 상기 행렬연산부는 Strassen의 행렬 곱셈 방법을 이용하여 입력받은 행렬의 연산을 수행하는 것을 특징으로 하는 행렬 연산 장치를 제공한다.

Description

행렬 연산 장치{MATRIX CALCULATION DEVICE}
본 발명은 컴퓨터의 연산을 수행하는 행렬 연산 장치에 관한 것이며, 더욱 상세하게는 Strassen의 행렬 곱셈 방법에 기반을 두며, CPU와 GPU를 동시에 사용하도록 확장하여 빠르게 행렬 곱셈 연산을 수행하며, 복잡한 행렬 곱셈을 위해 데이터를 준비하는 과정은 CPU가 맡아서 하고, GPU는 행렬 곱셈을 수행하여 빠른 행렬 곱셈 연산을 수행할 수 있는 행렬 연산 장치에 관한 것이다.
전통적인 행렬 곱셈은 행렬에 대한 이항연산이다. 행렬 A는 m × n 행렬, 행렬 B가 n × p 행렬이고, A ∈ Fm × n , B ∈ Fn × p 를 만족할 때, 두 행렬의 곱 C는 C = AB, C ∈ Fm × p 를 만족한다.
Figure pat00001
수학식 1을 정리하면, 다음과 같다.
Figure pat00002
위 수학식 2와 같이 계산하는 것이 전통적인 행렬 곱셈 방법이다.
CUBLAS library는 NVIDIA사의 CUDA™ 런타임에서 BLAS(Basic Linear Algebra Subprograms, 기본 선형 대수 하위 프로그램)를 구현한 것이다. 이를 통해 사용자는 GPU(Graphic Processor Unit, 그래픽 가속기)를 통해 계산 리소스에 접근할 수 있다. GPU를 활용해 전통적인 행렬 곱셈 방법으로 행렬 곱셈을 빠르게 수행한다.
또한, Strassen 행렬 곱셈 방법은 기존 n x n 크기의 두 정사각형 행렬을 곱하였을 때, O(n3) 의 시간복잡도를 가질 때, 약 O(n2.807) 의 시간복잡도를 가지게 하는 방법이다. 여기서 시간복잡도는 입력을 나타내는 문자열 길이의 함수로서 작동하는 알고리즘을 취해 시간을 정량화하는 것이다. 시간복잡도 표기 방식인 빅-오(Big-O) 표기법에 의하면, 크기 n의 모든 입력에 대한 알고리즘의 시간 복잡도가 O(n3)이며, 행렬 곱셈 연산 결과 O(n2.807) 의 시간복잡도를 가질 수 있다.
C = AB와 A, B, C ∈ F2n x 2n 일 때, 이를 같은 크기의 정사각형 행렬 4개로 나누면,
Figure pat00003
위 수학식 3과 같이 나타낼 수 있다.
이때, 종래의 전통적인 행렬 곱셈의 경우 아래 수학식 4와 같이 나타낼 수 있으며, 전체적인 연산은 곱셈 8번, 덧셈 4번으로 수행될 수 있다.
Figure pat00004
반면, Strassen 행렬 곱셈 방법을 활용하면, 다음과 같이 나타낼 수 있다.
Figure pat00005
위 수학식 5에 의해 산출된 중간값(Mi)을 활용하여 C를 구하면, 다음 수학식 6과 같다.
Figure pat00006
연산 결과, 곱셈을 7번 수행하고 덧셈/뺄셈을 18번 수행한다. 큰 행렬에 대해서는 곱셈이 덧셈/뺄셈보다 더 많은 시간을 필요로 하기에 Strassen 행렬 곱셈 방법이 전통적인 행렬 곱셈 방법보다 효율적이라고 할 수 있다. 이를 재귀적으로 반복하면 총 7×log27- 6×n2 번의 연산을 필요로 한다. 여기서 log27는 약 2.807 이므로 O(n2.807)의 시간 복잡도를 가진다.
한편, 종래에 컴퓨터의 행렬 연산은 전통적인 행렬 연산 방식에 의해 수행되고, CPU 또는 GPU에서 단독으로 연산을 수행하여 연산에 시간이 많이 소모되는 문제점이 있었다.
따라서, Strassen 행렬 곱셈 방법을 활용하여 빠른 연산이 가능하고, CPU와 GPU를 동시에 활용하여 분산 작업에 의해 작업 효율성을 향상시킬 수 있는 행렬 연산 장치에 대한 연구가 필요하게 되었다.
Matrix Multiplication, https://en.wikipedia.org/wiki/Matrix_multiplication CUBLAS library, https://docs.nvidia.com/cuda/cublas/index.html Volker Strassen, Gaussian elimination is not optimal, Numerische mathematik 13 (1969), no. 4
본 발명의 목적은 Strassen 행렬 곱셈 방법을 활용하여 빠른 연산이 가능하고 GPU와 CPU에서 작업을 분산하여 수행함으로써 효율적으로 작업을 수행할 수 있는 행렬 연산 장치를 제공하는 것이다.
다른 목적은 복수의 행렬연산부를 구비하고, GPU의 메모리 크기를 고려하여 작업을 분배함으로써, 효율적이고 빠른 작업을 수행하는 행렬 연산 장치를 제공하는 것이다.
본 발명의 일 실시예에 따른 행렬 연산 장치는 컴퓨터의 행렬 연산을 수행하는 장치에 있어서, 입력받은 행렬을 기반으로, 행렬연산부의 처리 능력을 고려하여 작업을 분할 생성하는 일분배부와, 상기 일분배부로부터 입력큐를 통하여 상기 작업을 전달받아 해당 작업을 처리하는 적어도 하나의 상기 행렬연산부와, 상기 행렬연산부의 출력큐에 의해 상기 작업의 처리 결과를 전달받는 결과수집부를 포함하며 상기 행렬연산부는 Strassen의 행렬 곱셈 방법을 이용하여 입력받은 행렬의 연산을 수행하는 것을 특징으로 한다.
상기에 있어서, 상기 행렬연산부는 입력큐저장소에서 상기 작업을 꺼내서 해당 작업을 위해 필요한 행렬 곱셈 작업들을 작업큐에 전달하는 작업분할모듈; 상기 작업큐에서 하나의 행렬 곱셈 작업을 가져와서 Strassen의 행렬 곱셈 방법을 이용하여 중간값 계산에 필요한 덧셈/뺄셈 작업을 수행하며, 덧셈/뺄셈 작업이 완료되면, 필요한 곱셈 작업을 정의하여 행렬곱셈모듈로 전달하는 작업생성모듈; 전달받은 곱셈 작업을 처리하며, 계산된 중간값들을 작업결과모듈로 전달하는 행렬곱셈모듈; 작업결과모듈은 상기 행렬곱셈모듈로부터 전달받은 중간값들을 수집하며, Strassen의 행렬 곱셈 방법을 이용하여 중간값을 근거로 연산결과값을 계산하고, 그 결과를 출력큐에 전달하는 작업결과모듈;을 더 포함한다.
상기에 있어서, 상기 행렬연산부는 CPU와 GPU에 마련되어 동시에 행렬 연산을 수행하는 것을 특징으로 한다.
상기에 있어서, 상기 일분배부는 상기 GPU의 메모리 크기를 기준으로 상기 행렬연산부 각각이 작업을 처리할 수 있는 크기를 계산하고, 계산값에 따라 분배하여 작업을 전달하는 것을 특징으로 한다.
본 발명의 행렬 연산 장치는 일정 크기 이상의 행렬에서 Strassen 행렬 곱셈 방법을 이용하고 GPU와 CPU를 모두 활용하여 단일로 사용하는 것보다 좋은 성능을 보여 주는 효과가 있다.
또한, GPU와 CPU를 모두 활용하여 Strassen 행렬 곱셈 방법에 의해 행렬을 재귀적으로 분할하여 계산함으로써, 적은 메모리 공간을 사용하며, 다수의 행렬곱셈모듈을 구비하여 작업을 분할하고, 행렬 곱셈 작업을 GPU에서 수행하여, 작업 속도가 향상되는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 행렬 연산 장치의 전체 구성을 보인 블록도이다.
도 2는 도 1의 행렬연산부의 세부 구성을 보인 블록도이다.
도 3은 본 발명의 일 실시예에 따른 행렬연산부에 의해 수행되는 행렬 연산 과정을 전체적으로 나타낸 순서도이다.
도 4는 도 3의 작업생성모듈 및 행렬곱셈모듈에 의해 수행되는 작업 생성 및 행렬 곱셈의 세부 과정을 나타낸 순서도이다.
이하에서는 도면을 참조하여 본 발명의 구체적인 실시예를 상세하게 설명한다. 다만, 본 발명의 사상은 제시되는 실시예에 제한되지 아니하고, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에서 다른 구성요소를 추가, 변경, 삭제 등을 통하여, 퇴보적인 다른 발명이나 본 발명 사상의 범위 내에 포함되는 다른 실시예를 용이하게 제안할 수 있을 것이나, 이 또한 본원 발명 사상 범위 내에 포함된다고 할 것이다. 또한, 각 실시예의 도면에 나타나는 동일한 사상의 범위 내의 기능이 동일한 구성요소는 동일한 참조부호를 사용하여 설명한다.
도 1은 본 발명의 일 실시예에 따른 행렬 연산 장치의 전체 구성을 보인 블록도이며, 도 2는 도 1의 행렬연산부의 세부 구성을 보인 블록도이다.
도 1 및 도 2를 참조하여 상세하게 설명하면, 본 발명의 행렬 연산 장치(100)은 CPU에 구현될 수 있으며, 일부 세부 구성이 GPU에 구현될 수 있다.
또한 행렬 연산 장치(100)는 도 2에 도시된 바와 같이 일분배부(110), 행렬연산부(120), 결과수집부(130)를 포함한다.
일분배부(110)는 입력큐의 행렬을 행렬연산부(120)가 한번에 처리 가능한 크기를 기반으로, 작업(T(Cij))들을 생성한다.
이때 행렬연산부(120)가 한번에 처리할 수 있는 크기는 GPU의 메모리 크기를 기준으로 산출된다. 즉, 일분배부(110)는 GPU의 메모리 크기를 기준으로 상기 행렬연산부(120) 각각이 작업을 처리할 수 있는 크기를 계산하고, 계산값에 따라 분배하여 작업을 전달한다.
또한 일분배부(110)는 생성된 작업(T(Cij))들을 행렬연산부(120)에 전달한다.
본 발명의 행렬 연산 장치(100)는 효율적으로 작업을 분할하여 수행하기 위해 복수의 행렬연산부(120)를 가질 수 있으며, 작업(T(Cij))은 각 행렬연산부(120)에 순차적으로 균등하게 분배된다.
행렬연산부(120)는 할당받은 작업(T(Cij))을 처리하는 역할을 한다. 행렬연산부(120)는 두 개의 통신큐(Queue)를 위한 저장소가 구비된다.
하나는 입력큐(Qin)저장소(121)로 일분배부(110)로부터 작업(T(Cij))을 전달받는 역할을 한다.
다른 하나는 출력큐(Qout)저장소(126)로 작업(T(Cij)) 처리 결과를 결과수집부(130)에 전달하는 역할을 한다.
나아가 하나의 행렬연산부(120)는 하나의 작업큐(Qtask)를 수행하도록 마련되며, 도 2에 도시된 바와 같이 내부적으로 입력큐저장소(121), 작업분할모듈(122), 작업생성모듈(123), 행렬곱셈모듈(124), 작업결과모듈(125) 및 출력큐저장소(126)를 더 포함하여 구성된다.
작업분할모듈(122)은 입력큐(Qin)저장소(121)에서 작업(T(Cij))을 꺼내서 작업(T(Cij))을 위해 필요한 행렬 곱셈 작업(Aik, Bkj)을 작업큐(Qtask)에 전달한다.
작업생성모듈(123)은 작업큐(Qtask)에서 하나의 행렬 곱셈 작업(Aik, Bkj)을 가져와서, 수학식 5에 따라 중간값(Mi) 계산에 필요한 덧셈/뺄셈 작업 (Tadd(Mi))을 수행한다.
예를 들어 M1의 경우, (A11 + A22)와 (B11 + B22)가 필요한 덧셈/뺄셈 작업(Tadd(Mi))에 해당한다. 덧셈/뺄셈 작업(Tadd(Mi))이 완료되면, 필요한 곱셈 작업(Tmul(Mi))을 정의하여 행렬곱셈모듈(124)로 전달한다.
행렬곱셈모듈(124)은 전달받은 행렬 곱셈 작업(Tmul(Mi))을 처리한다. 행렬곱셈모듈(124)은 GPU 상에 마련되어 동작하며, 행렬 곱셈 작업(Tmul(Mi))은 종래의 전통적인 행렬곱셈법을 사용해서 처리된다. 이렇게 계산된 중간값(Mi)들은 작업결과모듈(125)로 전달된다.
작업결과모듈(125)은 행렬곱셈모듈(124)로부터 전달받은 중간값(Mi)들을 수집하며, 수학식 6을 따라 연산결과값(Cij)에 해당하는 (Aik × Bkj) 값을 계산한다. 그리고 그 결과를 출력큐(Qout)에 전달한다.
모든 작업들은 입력큐(Qin)가 다 비워질 때까지 수행된다.
네 개의 모듈(122, 123, 124, 125) 중, 행렬곱셈모듈(124)은 각각 CPU와 GPU에서 독립적으로 기능을 수행함에 따라, 두 모듈(123, 124)이 기능을 동시에 수행할 수도 있다.
도 3은 본 발명의 일 실시예에 따른 행렬연산부에 의해 수행되는 행렬 연산 과정을 전체적으로 나타낸 순서도이다.
먼저 입력큐(Qin)저장소(121)에 작업(T(Cij))이 있는지 판단하고, 작업(T(Cij))이 있을 경우 입력큐(Qin)저장소(121)에서 작업(T(Cij))을 꺼낸다(S400, S402).
만약 작업(T(Cij))이 하나도 있지 않을 경우 행렬 연산을 종료한다(S400).
작업(T(Cij))은 두 행렬의 연산결과값인 Cij을 계산하기 위해 두 행렬 성분들(Aik, Bkj)을 작업큐(Qtask)에 할당한다(S404).
할당된 작업큐(Qtask)에서 두 행렬 성분들(Aik, Bkj)을 꺼내고 수학식 5 및 수학식 6을 이용하여 연산결과값(Cij)을 산출한다(S406, S408, S410, S412).
산출한 연산결과값(Cij)을 출력큐(Qout)저장소(126)에 전달하고, 상기 S400 단계로 복귀한다(S414, S416).
도 4는 도 3의 작업생성모듈 및 행렬곱셈모듈에 의해 수행되는 작업 생성 및 행렬 곱셈의 세부 과정을 나타낸 순서도이다.
작업생성모듈(123)에서는 입력큐(Qin)저장소(121)의 입력큐(Qin)에 작업(연산)할 두 행렬(A,B)이 있는지 판단하고, 작업큐(Qtask)에서 해당 두 행렬을 가져올 수 있다(S500, S502).
작업큐(Qtask)에서 가져온 두 행렬에 대한 작업을 생성하기 위한 순번(id)을 생성한다(S504).
다음, 입력큐(Qin)가 추가로 있는지 판단하여, 추가로 있는 경우 해당 입력큐(Qin)의 두 행렬에 대한 새로운 작업을 생성하기 위해 순번(id)을 체크한다(S506).
만약 S506 단계에서 추가 입력큐(Qin)가 없는 경우 S500단계로 복귀한다.
작업큐(Qtask)에 해당하는 두 행렬의 덧셈/뺄셈 작업(Tadd(Mid))을 생성한다(S508).
즉, 두 행렬(A,B)의 연산결과값(Cij)을 산출하기 위한 전작업으로 덧셈/뺄셈 작업(Tadd(Mid))이 선행된다.
GPU에 구비된 행렬곱셈모듈(124)에 의해 작업큐(Qtask)에 포함된 두 행렬의 곱셈 작업(Tmul)을 수행한다(S510).
새로운 추가 입력큐(Qin)에 대한 작업 여부를 체크하기 위해 순번(id)을 증가시키고, S506 단계로 복귀한다.
S508과 S510 단계의 경우, 각각 다른 장치(CPU와 GPU)에 구현되어서 독립적으로 기능을 수행할 수 있으므로 각 기능을 동시에 수행이 가능하다.
이때, S510 단계가 수행되기 위해서는 S508 단계가 선행이 되어야한다. 예를 들어 덧셈/뺄셈 작업(Tadd(Mid))이 수행되었고 그에 따른 곱셈 작업(Tmul)이 GPU에서 수행 중이라고 할 때, CPU는 S512 단계를 수행하고 S506의 조건부에 부합한다면 S508 단계에서 다음 덧셈/뺄셈 작업(Tadd(Mid+1))을 미리 수행할 수도 있다.
본 발명의 행렬 연산 장치(100)의 행렬 곱셈 처리 시간을 종래의 전통적인 행렬 곱셈을 이용하는 컴퓨터 장치와 비교 실험을 표 1과 같이 실시하였다.
Figure pat00007
공평한 결과값을 측정하기 위해, 행렬 텍스트 파일을 만들고, 그 파일을 읽어서 행렬 곱셈을 실행하였다. 이 과정을 본 발명의 행렬 연산 장치(100)와 종래의 전통적인 행렬 곱셈 방법을 이용한 장치를 각각 10번씩 실행시키고 행렬 곱셈 처리 시간을 측정하여 비교하였다. 측정한 10번의 시간의 평균을 구하여 [표 1]의 하단과 같이 나타내었다.
실험 결과에서 보듯이, 크기가 32,768 × 32,768 인 행렬을 기준으로 행렬 곱셈 연산을 했을 때, 본 발명의 행렬 연산 장치(100)에 의한 행렬 곱셈 방법이 전통적인 행렬 곱셈 방법의 연산 시간보다 약 15% 향상된 것을 알 수 있다.
100 : 행렬 연산 장치 110 : 일분배부
120 : 행렬연산부 121 : 입력큐저장소
122 : 작업분할모듈 123 : 작업생성모듈
124 : 행렬곱셈모듈 125 : 작업결과모듈
126 : 출력큐저장소 130 : 결과수집부

Claims (4)

  1. 컴퓨터의 행렬 연산을 수행하는 장치에 있어서,
    입력받은 행렬을 기반으로, 행렬연산부의 처리 능력을 고려하여 작업을 분할 생성하는 일분배부와,
    상기 일분배부로부터 입력큐를 통하여 상기 작업을 전달받아 해당 작업을 처리하는 적어도 하나의 상기 행렬연산부와,
    상기 행렬연산부의 출력큐에 의해 상기 작업의 처리 결과를 전달받는 결과수집부를 포함하며,
    상기 행렬연산부는 Strassen의 행렬 곱셈 방법을 이용하여 입력받은 행렬의 연산을 수행하는 것을 특징으로 하는 행렬 연산 장치.
  2. 제1항에 있어서, 상기 행렬연산부는
    입력큐저장소에서 상기 작업을 꺼내서 해당 작업을 위해 필요한 행렬 곱셈 작업들을 작업큐에 전달하는 작업분할모듈;
    상기 작업큐에서 하나의 행렬 곱셈 작업을 가져와서 Strassen의 행렬 곱셈 방법을 이용하여 중간값 계산에 필요한 덧셈/뺄셈 작업을 수행하며, 덧셈/뺄셈 작업이 완료되면, 필요한 곱셈 작업을 정의하여 행렬곱셈모듈로 전달하는 작업생성모듈;
    전달받은 곱셈 작업을 처리하며, 계산된 중간값들을 작업결과모듈로 전달하는 행렬곱셈모듈;
    작업결과모듈은 상기 행렬곱셈모듈로부터 전달받은 중간값들을 수집하며, Strassen의 행렬 곱셈 방법을 이용하여 중간값을 근거로 연산결과값을 계산하고, 그 결과를 출력큐에 전달하는 작업결과모듈;
    을 더 포함하는 행렬 연산 장치.
  3. 제1항에 있어서, 상기 행렬연산부는
    CPU와 GPU에 마련되어 동시에 행렬 연산을 수행하는 것을 특징으로 하는 행렬 연산 장치.
  4. 제3항에 있어서, 상기 일분배부는
    상기 GPU의 메모리 크기를 기준으로 상기 행렬연산부 각각이 작업을 처리할 수 있는 크기를 계산하고, 계산값에 따라 분배하여 작업을 전달하는 것을 특징으로 하는 행렬 연산 장치.
KR1020190012649A 2019-01-31 2019-01-31 행렬 연산 장치 KR102215449B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190012649A KR102215449B1 (ko) 2019-01-31 2019-01-31 행렬 연산 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190012649A KR102215449B1 (ko) 2019-01-31 2019-01-31 행렬 연산 장치

Publications (2)

Publication Number Publication Date
KR20200095617A true KR20200095617A (ko) 2020-08-11
KR102215449B1 KR102215449B1 (ko) 2021-02-15

Family

ID=72048049

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190012649A KR102215449B1 (ko) 2019-01-31 2019-01-31 행렬 연산 장치

Country Status (1)

Country Link
KR (1) KR102215449B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101400577B1 (ko) * 2013-03-11 2014-06-19 한양대학교 산학협력단 Gpu를 이용한 희소행렬 곱셈 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101400577B1 (ko) * 2013-03-11 2014-06-19 한양대학교 산학협력단 Gpu를 이용한 희소행렬 곱셈 방법

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CUBLAS library, https://docs.nvidia.com/cuda/cublas/index.html
Korean Society of Electronics Engineers Conference 1321-1324 pages (2013.7) *
Matrix Multiplication, https://en.wikipedia.org/wiki/Matrix_multiplication
Volker Strassen, Gaussian elimination is not optimal, Numerische mathematik 13 (1969), no. 4
한국정보과학회 학술발표논문집 51-53 페이지(2014.6.)* *

Also Published As

Publication number Publication date
KR102215449B1 (ko) 2021-02-15

Similar Documents

Publication Publication Date Title
Da Silva et al. Parallel implementation of reinforcement learning Q-learning technique for FPGA
Jaiswal et al. FPGA-based high-performance and scalable block LU decomposition architecture
D’Amore et al. Mathematical approach to the performance evaluation of matrix multiply algorithm
Huchette et al. Parallel algebraic modeling for stochastic optimization
Benchara et al. A new efficient distributed computing middleware based on cloud micro-services for HPC
JP4477959B2 (ja) ブロードキャスト型並列処理のための演算処理装置
CN111160541B (zh) 集成电路芯片装置及相关产品
David Low latency and division free Gauss–Jordan solver in floating point arithmetic
Cosme et al. Memory-usage advantageous block recursive matrix inverse
KR102215449B1 (ko) 행렬 연산 장치
CN111091189B (zh) 集成电路芯片装置及相关产品
JPWO2019151015A1 (ja) 情報処理装置及び制御方法
Dufrechu et al. Accelerating the Lyapack library using GPUs
JP2014229318A (ja) 関数モデルを純粋にハードウェア上で計算するモデル計算ユニット内での利用ためのfmaユニット
Pala et al. Application of the Nvidia CUDA technology to solve the system of ordinary differential equations
Tura Boosting simulation of quantum computers
Chakrapani et al. A low complexity splitter based parallel multiplier for DSP applications
Huang et al. High performance hardware architecture for singular spectrum analysis of hankel tensors
Hyun et al. A load balancing algorithm for the parallel automated multilevel substructuring method
Lyakhovets et al. Efficiency thresholds of group based job scheduling in HPC systems
RU2559772C2 (ru) Устройство для основного деления модулярных чисел в формате системы остаточных классов
TERESHCHENKO et al. Algorithm for Calculation the Carry and Borrow Signs in Multi-digit Operations in the Parallel Computational Model
Khan et al. Novel approach of multiplier design using ancient Vedic mathematics
Lenormand et al. Data management model to program irregular compute kernels on FPGA: application to heterogeneous distributed system
Mafteiu-Scai et al. Parallel heuristics for systems of equations preconditioning

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant