1 |
1
복수 개의 낸드 플래시 메모리, 상기 복수 개의 낸드 플래시 메모리를 제어하는 FMS(Flash Memory System) 컨트롤러 및 텐서 버퍼를 포함하는 복수 개의 가속기 노드; 및상기 복수 개의 가속기의 동작 시퀀스를 생성하는 프로세서;를 포함하고,상기 복수 개의 가속기 노드를 이용하여 딥 뉴럴 네트워크(DNN, deep neural network) 모델을 데이터 패러럴 방식으로 학습시키도록 하는 DNN 가속기 시스템
|
2 |
2
제1항에 있어서,상기 복수 개의 가속기 노드는 DNN 학습을 위한 일련의 연산을 수행하는 하나 이상의 활성화 노드(activation node) 또는 가중치를 관리하는 가중치 노드(weight node)로 동작하는 DNN 가속기 시스템
|
3 |
3
제2항에 있어서,상기 DNN 학습 과정은, 상기 하나 이상의 활성화 노드 및 상기 가중치 노드에 의해 순전파 단계, 역전파 단계 및 최종 가중치를 갱신하는 단계를 포함하고,상기 순전파 및 상기 역전파 단계는 상기 DNN을 구성하는 계층마다 수행하고, 상기 최종 가중치를 갱신하는 단계는 상기 DNN을 구성하는 모든 계층에 대한 연산이 완료된 후 수행하도록 하는 DNN 가속기 시스템
|
4 |
4
제3항에 있어서,상기 순전파 단계는, 상기 하나 이상의 활성화 노드 각각에서 각 계층의 계산이 완료되어 SRAM에 활성화 데이터가 생성되면, 상기 활성화 데이터를 상기 각 활성화 노드의 텐서 버퍼에 복사하고, 상기 텐서 버퍼에 저장된 상기 활성화 데이터를 상기 역전파 단계에서 다시 사용하기 위해 상기 각 활성화 노드의 상기 복수 개의 낸드 플래시 메모리에 저장하고,상기 역전파 단계는, 상기 각 활성화 노드에서 상기 복수 개의 낸드 플래시 메모리에 저장된 상기 활성화 데이터 중 현재 연산 계층의 가중치 계산에 필요한 데이터를 상기 텐서 버퍼로 읽어오고, 상기 활성화 데이터 읽기가 완료되면 상기 활성화 데이터를 상기 SRAM에 로드하여 계산을 시작하고, 계산이 완료되면 기울기 데이터들을 상기 각 활성화 노드의 상기 텐서 버퍼에 저장하고,상기 최종 가중치를 갱신하는 단계는, 상기 하나 이상의 활성화 노드 각각에서 계산된 최종 가중치 기울기 데이터들이 상기 가중치 노드의 상기 텐서 버퍼로 전송되고, 학습 결과를 상기 가중치 데이터에 갱신하고, 상기 갱신된 가중치 데이터들을 상기 가중치 노드의 상기 복수 개의 낸드 플래시 메모리에 저장하도록 하는 DNN 가속기 시스템
|
5 |
5
제1항에 있어서,상기 FMS 컨트롤러는, 증분 순차 쓰기를 위해 라운드 로빈 정책에 기반하여 상기 복수 개의 낸드 플래시 메모리의 블럭을 할당하도록 하는 DNN 가속기 시스템
|
6 |
6
제1항에 있어서,상기 가속기 노드는 데이터 특성에 따라 서로 다른 기능을 제공하는 FMS 상 독립된 스토리지 영역에 데이터를 위치하도록 하는 DNN 가속기 시스템
|
7 |
7
제6항에 있어서,상기 서로 다른 기능을 제공하는 FMS 상 독립된 스토리지 영역은,비휘발성(non-volatile)이고, 데이터 리텐션이 상대적으로 높고, 및 상기 가속기 노드의 역할에 따라 데이터 읽기 또는 순차 쓰기만 가능한 제1 스토리지 영역;휘발성(volatile)이고, 데이터 리텐션이 상대적으로 낮고, 및 순차 쓰기/읽기 방식으로만 데이터에 접근할 수 있는 제2 스토리지 영역; 및비휘발성이고, 데이터 리텐션이 상대적으로 높고, 및 상기 가속기 노드의 역할에 따라 쓰기만 가능하거나 순차 쓰기/읽기 방식으로 데이터에 접근할 수 있는 제3 스토리지 영역을 포함하도록 하는 DNN 가속기 시스템
|
8 |
8
제1항에 있어서,상기 텐서 버퍼는 상기 DNN 학습 연산을 수행하는 컴퓨트 코어와 상기 복수 개의 낸드 플래시 메모리 사이의 스테이징 영역 역할을 수행하도록 하는 DNN 가속기 시스템
|
9 |
9
제8항에 있어서,상기 텐서 버퍼는 DDR 디램으로 구성되도록 하는 DNN 가속기 시스템
|
10 |
10
제1항에 있어서,상기 FMS의 데이터 경로는 물리적인 하드웨어 구성에 대응되도록 구현하는 DNN 가속기 시스템
|
11 |
11
DNN 모델을 학습시키는 방법에 있어서,상기 DNN 모델의 하나 이상의 계층에 대한 반복 학습을 하는 동안, 상기 하나 이상의 각 계층에서 하나 이상의 활성화 노드 및 가중치 노드가 연산을 수행하는 순전파 단계;상기 각 순전파 단계에 대응하여, 상기 하나 이상의 활성화 노드 및 상기 가중치 노드가 상기 연산에 따른 기울기 데이터를 생성하는 역전파 단계; 및상기 모든 계층의 연산이 완료되는 것에 대응하여, 상기 가중치 노드가 최종 기울기 데이터에 기반하여 최종 가중치를 갱신하는 단계를 포함하는 방법
|
12 |
12
제11항에 있어서,상기 하나 이상의 활성화 노드 및 상기 가중치 노드는 각각 복수 개의 낸드 플래시 메모리, 상기 복수 개의 낸드 플래시 메모리를 제어하는 FMS 컨트롤러 및 텐서 버퍼를 포함하고,상기 DNN 모델 학습을 위한 동작 시퀀스에 따라 상기 DNN 모델을 학습시키는 단계가 시작되도록 하는 방법
|
13 |
13
제12항에 있어서,상기 순전파 단계는,상기 하나 이상의 활성화 노드 각각에서 계산이 완료되어 SRAM에 활성화 데이터를 생성하는 단계;상기 SRAM의 상기 활성화 데이터를 상기 각 활성화 노드의 상기 텐서 버퍼에 복사하는 단계; 및상기 텐서 버퍼에 저장된 상기 활성화 데이터를 상기 역전파 단계에서 다시 사용하기 위해 상기 각 활성화 노드의 상기 복수 개의 낸드 플래시 메모리에 저장하는 단계를 더 포함하는 방법
|
14 |
14
제13항에 있어서,상기 역전파 단계는,상기 각 활성화 노드에서 상기 복수 개의 낸드 플래시 메모리에 저장된 상기 활성화 데이터 중 현재 연산 계층의 가중치 계산에 필요한 데이터를 상기 텐서 버퍼로 읽어오는 단계;상기 활성화 데이터를 상기 SRAM에 로드하여 계산을 수행하는 단계; 및상기 계산 완료에 따라 생성된 기울기 데이터들을 상기 각 활성화 노드의 상기 텐서 버퍼에 저장하는 단계를 더 포함하는 방법
|
15 |
15
제14항에 있어서,상기 최종 가중치를 갱신하는 단계는,상기 하나 이상의 활성화 노드 각각에서 계산된 최종 가중치 기울기 데이터들이 상기 가중치 노드의 상기 텐서 버퍼로 전송되는 단계;상기 가중치 노드에서 학습 결과를 상기 가중치 데이터에 갱신하는 단계; 및상기 갱신된 가중치 데이터들을 상기 가중치 노드의 상기 복수 개의 낸드 플래시 메모리에 저장하는 단계를 더 포함하는 방법
|
16 |
16
제12항에 있어서,상기 FMS 컨트롤러 각각은, 증분 순차 쓰기를 위해 라운드 로빈 정책에 기반하여 상기 복수 개의 낸드 플래시 메모리의 블럭을 할당하도록 하는 방법
|
17 |
17
제12항에 있어서,상기 하나 이상의 활성화 노드 및 상기 가중치 노드는 데이터 특성에 따라 서로 다른 기능을 제공하는 FMS 상 독립된 스토리지 영역에 데이터를 위치하도록 하는 방법
|
18 |
18
제17항에 있어서,상기 서로 다른 기능을 제공하는 FMS 상 독립된 스토리지 영역은,비휘발성(non-volatile)이고, 데이터 리텐션이 상대적으로 높고, 및 상기 활성화 노드 또는 상기 가중치 노드의 역할에 따라 데이터 읽기 또는 순차 쓰기만 가능한 제1 스토리지 영역;휘발성(volatile)이고, 데이터 리텐션이 상대적으로 낮고, 및 순차 쓰기/읽기 방식으로만 데이터에 접근할 수 있는 제2 스토리지 영역; 및비휘발성이고, 데이터 리텐션이 상대적으로 높고, 및 상기 활성화 노드 또는 상기 가중치 노드의 역할에 따라 쓰기만 가능하거나 순차 쓰기/읽기 방식으로 데이터에 접근할 수 있는 제3 스토리지 영역을 포함하도록 하는 방법
|
19 |
19
제12항에 있어서,상기 텐서 버퍼는 DDR 디램으로 구성되도록 하는 방법
|
20 |
20
제11항 내지 제19항 중 어느 한 항에 따른 DNN 모델을 학습시키는 방법을 프로세서에 의해 실행하도록 구성된 적어도 하나의 명령어를 포함한 컴퓨터 프로그램을 저장한 컴퓨터 판독가능한 비 일시적 기록 매체
|