KR102215449B1 - 행렬 연산 장치 - Google Patents
행렬 연산 장치 Download PDFInfo
- Publication number
- KR102215449B1 KR102215449B1 KR1020190012649A KR20190012649A KR102215449B1 KR 102215449 B1 KR102215449 B1 KR 102215449B1 KR 1020190012649 A KR1020190012649 A KR 1020190012649A KR 20190012649 A KR20190012649 A KR 20190012649A KR 102215449 B1 KR102215449 B1 KR 102215449B1
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- task
- multiplication
- module
- result
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
Abstract
본 발명에 의하면, 컴퓨터의 행렬 연산을 수행하는 장치에 있어서, 입력받은 행렬을 기반으로, 행렬연산부의 처리 능력을 고려하여 작업을 분할 생성하는 일분배부와, 상기 일분배부로부터 입력큐를 통하여 상기 작업을 전달받아 해당 작업을 처리하는 적어도 하나의 상기 행렬연산부와, 상기 행렬연산부의 출력큐에 의해 상기 작업의 처리 결과를 전달받는 결과수집부를 포함하며, 상기 행렬연산부는 Strassen의 행렬 곱셈 방법을 이용하여 입력받은 행렬의 연산을 수행하는 것을 특징으로 하는 행렬 연산 장치를 제공한다.
Description
본 발명은 컴퓨터의 연산을 수행하는 행렬 연산 장치에 관한 것이며, 더욱 상세하게는 Strassen의 행렬 곱셈 방법에 기반을 두며, CPU와 GPU를 동시에 사용하도록 확장하여 빠르게 행렬 곱셈 연산을 수행하며, 복잡한 행렬 곱셈을 위해 데이터를 준비하는 과정은 CPU가 맡아서 하고, GPU는 행렬 곱셈을 수행하여 빠른 행렬 곱셈 연산을 수행할 수 있는 행렬 연산 장치에 관한 것이다.
전통적인 행렬 곱셈은 행렬에 대한 이항연산이다. 행렬 A는 m × n 행렬, 행렬 B가 n × p 행렬이고, A ∈ Fm × n , B ∈ Fn × p 를 만족할 때, 두 행렬의 곱 C는 C = AB, C ∈ Fm × p 를 만족한다.
수학식 1을 정리하면, 다음과 같다.
위 수학식 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개로 나누면,
위 수학식 3과 같이 나타낼 수 있다.
이때, 종래의 전통적인 행렬 곱셈의 경우 아래 수학식 4와 같이 나타낼 수 있으며, 전체적인 연산은 곱셈 8번, 덧셈 4번으로 수행될 수 있다.
반면, Strassen 행렬 곱셈 방법을 활용하면, 다음과 같이 나타낼 수 있다.
위 수학식 5에 의해 산출된 중간값(Mi)을 활용하여 C를 구하면, 다음 수학식 6과 같다.
연산 결과, 곱셈을 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의 작업생성모듈 및 행렬곱셈모듈에 의해 수행되는 작업 생성 및 행렬 곱셈의 세부 과정을 나타낸 순서도이다.
도 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과 같이 실시하였다.
공평한 결과값을 측정하기 위해, 행렬 텍스트 파일을 만들고, 그 파일을 읽어서 행렬 곱셈을 실행하였다. 이 과정을 본 발명의 행렬 연산 장치(100)와 종래의 전통적인 행렬 곱셈 방법을 이용한 장치를 각각 10번씩 실행시키고 행렬 곱셈 처리 시간을 측정하여 비교하였다. 측정한 10번의 시간의 평균을 구하여 [표 1]의 하단과 같이 나타내었다.
실험 결과에서 보듯이, 크기가 32,768 × 32,768 인 행렬을 기준으로 행렬 곱셈 연산을 했을 때, 본 발명의 행렬 연산 장치(100)에 의한 행렬 곱셈 방법이 전통적인 행렬 곱셈 방법의 연산 시간보다 약 15% 향상된 것을 알 수 있다.
100 : 행렬 연산 장치 110 : 일분배부
120 : 행렬연산부 121 : 입력큐저장소
122 : 작업분할모듈 123 : 작업생성모듈
124 : 행렬곱셈모듈 125 : 작업결과모듈
126 : 출력큐저장소 130 : 결과수집부
120 : 행렬연산부 121 : 입력큐저장소
122 : 작업분할모듈 123 : 작업생성모듈
124 : 행렬곱셈모듈 125 : 작업결과모듈
126 : 출력큐저장소 130 : 결과수집부
Claims (4)
- 컴퓨터의 행렬 연산을 수행하는 장치에 있어서,
입력받은 행렬을 기반으로, 행렬연산부의 처리 능력을 고려하여 작업을 분할 생성하는 일분배부와,
상기 일분배부로부터 입력큐를 통하여 상기 작업을 전달받아 해당 작업을 처리하는 상기 행렬연산부와,
상기 행렬연산부의 출력큐에 의해 상기 작업의 처리 결과를 전달받는 결과수집부를 포함하며,
상기 행렬연산부는 Strassen의 행렬 곱셈 방법을 이용하여 입력받은 행렬의 연산을 수행하되,
상기 행렬연산부는
복수개로 이루어져, CPU와 GPU에 마련되어 동시에 행렬 연산을 수행하며,
곱셈 작업이 GPU에서 수행시, CPU는 덧셈/뺄셈 작업을 수행하여, 행렬 연산 처리를 가속화할 수 있으며,
상기 행렬연산부는
입력큐저장소에서 상기 작업을 꺼내서 해당 작업을 위해 필요한 행렬 곱셈 작업들을 작업큐에 전달하는 작업분할모듈;
상기 작업큐에서 하나의 행렬 곱셈 작업을 가져와서 Strassen의 행렬 곱셈 방법을 이용하여 중간값 계산에 필요한 덧셈/뺄셈 작업을 수행하며, 덧셈/뺄셈 작업이 완료되면, 필요한 곱셈 작업을 정의하여 행렬곱셈모듈로 전달하는 작업생성모듈;
전달받은 곱셈 작업을 처리하며, 계산된 중간값들을 작업결과모듈로 전달하는 행렬곱셈모듈;
작업결과모듈은 상기 행렬곱셈모듈로부터 전달받은 중간값들을 수집하며, Strassen의 행렬 곱셈 방법을 이용하여 중간값을 근거로 연산결과값을 계산하고, 그 결과를 출력큐에 전달하는 작업결과모듈을 더 포함하며,
상기 일분배부는
상기 GPU의 메모리 크기를 기준으로 상기 행렬연산부 각각이 작업을 처리할 수 있는 크기를 계산하고, 계산값에 따라 분배하여 작업을 전달하는 것을 특징으로 하는 행렬 연산 장치.
- 삭제
- 삭제
- 삭제
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 KR20200095617A (ko) | 2020-08-11 |
KR102215449B1 true 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101400577B1 (ko) * | 2013-03-11 | 2014-06-19 | 한양대학교 산학협력단 | Gpu를 이용한 희소행렬 곱셈 방법 |
-
2019
- 2019-01-31 KR KR1020190012649A patent/KR102215449B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101400577B1 (ko) * | 2013-03-11 | 2014-06-19 | 한양대학교 산학협력단 | Gpu를 이용한 희소행렬 곱셈 방법 |
Non-Patent Citations (2)
Title |
---|
대한전자공학회 학술대회 1321-1324 페이지(2013.7.)* |
한국정보과학회 학술발표논문집 51-53 페이지(2014.6.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20200095617A (ko) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Su et al. | Redundancy-reduced mobilenet acceleration on reconfigurable logic for imagenet classification | |
CN111160541B (zh) | 集成电路芯片装置及相关产品 | |
D’Amore et al. | Mathematical approach to the performance evaluation of matrix multiply algorithm | |
Demmel et al. | Numerical reproducibility and accuracy at exascale | |
CN103455518A (zh) | 一种数据处理方法及装置 | |
JP4477959B2 (ja) | ブロードキャスト型並列処理のための演算処理装置 | |
Kang et al. | HPMaX: heterogeneous parallel matrix multiplication using CPUs and GPUs | |
Cosme et al. | Memory-usage advantageous block recursive matrix inverse | |
David | Low latency and division free Gauss–Jordan solver in floating point arithmetic | |
CN117808101A (zh) | 一种基于fpga的神经网络推理方法、系统及存储介质 | |
KR102215449B1 (ko) | 행렬 연산 장치 | |
CN111091189B (zh) | 集成电路芯片装置及相关产品 | |
CN114879934B (zh) | 一种高效的零知识证明加速器及方法 | |
Dufrechu et al. | Accelerating the Lyapack library using GPUs | |
JP2014229318A (ja) | 関数モデルを純粋にハードウェア上で計算するモデル計算ユニット内での利用ためのfmaユニット | |
Tura | Boosting simulation of quantum computers | |
Hyun et al. | A load balancing algorithm for the parallel automated multilevel substructuring method | |
Pala et al. | Application of the Nvidia CUDA technology to solve the system of ordinary differential equations | |
Gao et al. | FPGA realization of high performance large size computational functions: multipliers and applications | |
TERESHCHENKO et al. | Algorithm for Calculation the Carry and Borrow Signs in Multi-digit Operations in the Parallel Computational Model | |
Lyakhovets et al. | Efficiency thresholds of group based job scheduling in HPC systems | |
KR102527829B1 (ko) | Cpu와 gpu를 사용하는 행렬 전치기반 2d-fft 연산 장치 및 이를 이용한 데이터 연산 방법 | |
Venieris et al. | Towards heterogeneous solvers for large-scale linear systems | |
RU2559772C2 (ru) | Устройство для основного деления модулярных чисел в формате системы остаточных классов | |
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 |