KR20180051987A - 인공 신경망의 연산 처리 경로 관리 방법 - Google Patents

인공 신경망의 연산 처리 경로 관리 방법 Download PDF

Info

Publication number
KR20180051987A
KR20180051987A KR1020160148995A KR20160148995A KR20180051987A KR 20180051987 A KR20180051987 A KR 20180051987A KR 1020160148995 A KR1020160148995 A KR 1020160148995A KR 20160148995 A KR20160148995 A KR 20160148995A KR 20180051987 A KR20180051987 A KR 20180051987A
Authority
KR
South Korea
Prior art keywords
event
resource
path
resources
neural network
Prior art date
Application number
KR1020160148995A
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 KR1020160148995A priority Critical patent/KR20180051987A/ko
Priority to US15/662,956 priority patent/US10915812B2/en
Publication of KR20180051987A publication Critical patent/KR20180051987A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

복수의 이종 리소스들에 의해 구동되는 인공 신경망의 연산 처리 경로 관리 방법에서, 초기화 동작을 수행하여 복수의 이종 리소스들에 대한 리소스 정보, 복수의 이종 리소스들과 복수의 연산들의 관계를 나타내는 선호 레벨 메트릭스, 및 복수의 연산들에 대해 미리 결정된 복수의 초기 경로들을 획득한다. 복수의 연산들 중 적어도 하나를 포함하는 제1 이벤트를 수행하고자 하는 경우에, 복수의 초기 경로들, 선호 레벨 메트릭스, 복수의 이종 리소스들의 이용 가능 여부를 나타내는 리소스 환경, 및 복수의 이종 리소스들을 포함하는 적어도 하나의 전자 기기와 인공 신경망에 대한 구동 환경에 기초하여 제1 이벤트에 대한 제1 경로를 설정한다.

Description

인공 신경망의 연산 처리 경로 관리 방법{METHOD OF MANAGING COMPUTING PATHS IN ARTIFICIAL NEURAL NETWORK}
본 발명은 인공 신경망에 관한 것으로서, 더욱 상세하게는 인공 신경망의 복수의 연산 처리 경로들을 동적으로 선택 및 제어하는 관리 방법에 관한 것이다.
인공 신경망(artificial neural network; ANN)이란 연결 선으로 연결된 많은 수의 인공 뉴런들을 사용하여 생물학적인 시스템의 계산 능력을 모방하는 소프트웨어나 하드웨어로 구현된 연산 모델을 나타낸다. 인공 신경망에서는 생물학적인 뉴런의 기능을 단순화시킨 인공 뉴런을 사용하게 된다. 그리고 연결 강도를 갖는 연결 선을 통해 상호 연결시켜 인간의 인지 작용이나 학습 과정을 수행하게 된다. 최근 인공 신경망에 기초한 딥 러닝(deep learning) 기술이 연구되고 있으며, 딥 러닝 서비스와 관련하여 인공 신경망의 연산 처리 성능을 향상시킬 수 있는 다양한 방안에 대한 연구가 진행되고 있다.
본 발명의 일 목적은 이종의 리소스들(heterogeneous resources)에 의해 구동되는 인공 신경망의 복수의 연산 처리 경로들을 동적으로 관리하는 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 복수의 이종 리소스들(heterogeneous resources)에 의해 구동되는 인공 신경망의 연산 처리 경로 관리 방법에서, 초기화 동작을 수행하여 상기 복수의 이종 리소스들에 대한 리소스 정보, 상기 복수의 이종 리소스들과 복수의 연산들의 관계를 나타내는 선호 레벨 메트릭스(preference level metrics), 및 상기 복수의 연산들에 대해 미리 결정된 복수의 초기 경로들을 획득한다. 상기 복수의 연산들 중 적어도 하나를 포함하는 제1 이벤트를 수행하고자 하는 경우에, 상기 복수의 초기 경로들, 상기 선호 레벨 메트릭스, 상기 복수의 이종 리소스들의 이용 가능(available) 여부를 나타내는 리소스 환경, 및 상기 복수의 이종 리소스들을 포함하는 적어도 하나의 전자 기기와 상기 인공 신경망에 대한 구동 환경에 기초하여 상기 제1 이벤트에 대한 제1 경로를 설정한다.
상기와 같은 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법에서, 복수의 초기 경로들, 선호 레벨 메트릭스, 리소스 환경 및 구동 환경에 기초하여 최적의 경로를 설정할 수 있고, 최적의 경로에 기초하여 연산 및/또는 이벤트를 수행할 수 있다. 또한, 복수의 경로들 중 일부가 중첩하는 경우에는 복수의 경로들 중 적어도 하나를 변경한 후에, 변경된 최적의 경로들에 기초하여 연산들 및/또는 이벤트들을 수행할 수 있다. 따라서, 리소스 정보 인지 및 상황 정보 인지를 기초로 최적의 경로들을 동적으로 설정할 수 있으며, 인공 신경망의 연산 처리 성능 및 에너지 효율이 향상될 수 있다.
도 1은 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 시스템을 나타내는 블록도이다.
도 3a 및 3b는 본 발명의 실시예들에 따른 인공 신경망의 동작을 설명하기 위한 도면들이다.
도 4 및 5는 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 설명하기 위한 도면들이다.
도 6 및 7은 도 1의 제1 이벤트에 대한 제1 경로를 설정하는 단계의 예를 나타내는 순서도들이다.
도 8a, 8b 및 8c는 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 설명하기 위한 도면들이다.
도 9는 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 나타내는 순서도이다.
도 10은 도 9의 제2 이벤트에 대한 제2 경로를 설정하는 단계의 예를 나타내는 순서도이다.
도 11은 도 9의 제1 및 제2 경로들 중 하나를 변경하는 단계의 예를 나타내는 순서도이다.
도 12a, 12b, 12c, 13a, 13b 및 13c는 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 설명하기 위한 도면들이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법에서, 상기 인공 신경망(artificial neural network; ANN)은 복수의 이종 리소스들(heterogeneous resources)에 의해 구동된다. 상기 인공 신경망의 연산 처리 경로 관리 방법을 수행하는데 있어서, 먼저 초기화 동작을 수행하여, 리소스 정보, 선호 레벨 메트릭스(preference level metrics) 및 복수의 초기 경로들을 획득한다(단계 S100).
상기 리소스 정보는 상기 복수의 이종 리소스들과 관련된 정보를 나타낸다. 예를 들어, 상기 리소스 정보는 상기 복수의 리소스들의 종류(type), 개수(number), 성능/전력 정보(performance/power information), 데이터 이동 비용(data movement cost), 각 리소스에서 지원되는 알고리즘(arithmetic algorithm) 및 제한(limitation) 등의 정보를 포함할 수 있다. 상기 선호 레벨 메트릭스는 상기 복수의 이종 리소스들과 복수의 연산들(arithmetic operation 또는 operation)의 관계(예를 들어, 선호도, 우선 순위, 우수함의 정도 등)를 나타내고, 상기 복수의 초기 경로들은 동작 초기에 상기 복수의 연산들에 대해 미리 결정된 경로들을 나타낸다. 상기 선호 레벨 메트릭스 및 상기 복수의 초기 경로들은 테이블의 형태로 구현될 수 있으며, 각각 도 4 및 5를 참조하여 후술하도록 한다.
제1 이벤트를 수행하고자 하는 경우에, 상기 복수의 초기 경로들, 상기 선호 레벨 메트릭스, 리소스 환경 및 구동 환경에 기초하여 상기 제1 이벤트에 대한 제1 경로를 설정한다(단계 S200). 상기 제1 경로에 기초하여 상기 제1 이벤트를 수행할 수 있다(단계 S300).
상기 제1 이벤트는 상기 복수의 연산들 중 적어도 하나를 포함한다. 예를 들어, 상기 제1 이벤트는 딥 러닝(deep learning) 서비스, 생체 정보에 기초한 사용자 인증(authentication) 서비스 등과 같은 어플리케이션(application)을 나타낼 수 있다. 상기 리소스 환경은 상기 복수의 이종 리소스들의 이용 가능(available) 여부를 나타낸다. 상기 구동 환경은 상기 복수의 이종 리소스들을 포함하는 적어도 하나의 전자 기기와 상기 인공 신경망의 현재 동작 상태(state) 또는 상황(context)을 나타낸다. 상기 리소스 환경 및 상기 구동 환경에 기초한 구체적인 경로 설정 동작은 도 8a, 8b, 8c, 12a, 12b, 12c, 13a, 13b 및 13c를 참조하여 후술하도록 한다.
일 실시예에서, 단계 S300은 생략될 수 있다. 다시 말하면, 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법은 단계 S100 및 S200만을 포함하여 구현될 수 있다.
일 실시예에서, 단계 S100, S200 및 S300이 포함되는 경우는 인공 신경망의 연산 처리 방법으로 정의될 수 있다.
본 명세서에서, 연산 처리 경로(computing path) 또는 경로(path)는 하나의 연산 또는 이벤트(event)를 수행하기 위해 시간의 흐름에 따라 사용되는 리소스들의 조합을 나타낸다. 예를 들어, 하나의 연산을 수행하는데 하나의 리소스만이 사용될 수도 있고, 두 개 이상의 리소스들이 사용될 수도 있으며, 제1 시간 동안에는 제1 리소스가 사용되고 상기 제1 시간 이후의 제2 시간 동안에는 제2 리소스가 사용될 수도 있다. 또한, 상기 연산 처리 경로 또는 경로는 각 리소스에서 상기 연산 또는 이벤트를 수행하기 위한 알고리즘, 알고리즘 구현(implementation), 통신 방식(communication method) 등의 정보를 추가적으로 포함할 수 있다.
본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법에서, 상기 복수의 초기 경로들, 상기 선호 레벨 메트릭스, 상기 리소스 환경 및 상기 구동 환경에 기초하여 상기 제1 경로를 설정할 수 있고, 상기 제1 경로에 기초하여 상기 제1 이벤트를 수행할 수 있다. 다시 말하면, 리소스 정보 인지(resource-aware) 및 상황 정보 인지(context-aware)를 기초로 동적으로(dynamically) 설정된 최적의 경로를 사용하여 적어도 하나의 연산 및/또는 이벤트를 수행할 수 있다. 따라서, 인공 신경망의 연산 처리 성능 및 에너지 효율이 향상될 수 있다.
도 2는 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 시스템을 나타내는 블록도이다.
도 2를 참조하면, 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 시스템은 인공 신경망을 구동하기 위한 복수의 이종 리소스들 및 상기 인공 신경망의 연산 처리 경로를 관리하는 적어도 하나의 적응적 경로 관리부(adaptive path manager; APAM)(110, 210)를 포함한다.
상기 복수의 이종 리소스들은 중앙 처리 장치(central processing unit; CPU)들(120, 220), 그래픽 처리 장치(graphic processing unit; GPU)들(130, 230), 디지털 신호 프로세서(digital signal processor; DSP)들(140, 240), 영상 신호 프로세서(image signal processor; ISP)들(150, 250), 특정 작업 전용 하드웨어(dedicated hardware; DHW)들(160, 260), 메모리(memory; MEM)들(170, 270), DMA(direct memory access)부들(180, 280) 및 통신(connectivity)부들(190, 290)을 포함할 수 있다. 중앙 처리 장치들(120, 220), 그래픽 처리 장치들(130, 230), 디지털 신호 프로세서들(140, 240), 영상 신호 프로세서들(150, 250) 및 특정 작업 전용 하드웨어들(160, 260)을 연산 리소스(computing resource)라고 부를 수 있고, DMA부들 및 통신부들(190, 290)을 통신 리소스(communication resource)라고 부를 수 있다.
중앙 처리 장치들(120, 220), 그래픽 처리 장치들(130, 230), 디지털 신호 프로세서들(140, 240), 영상 신호 프로세서들(150, 250) 및 특정 작업 전용 하드웨어들(160, 260)은 특정 계산들 또는 태스크들과 같은 다양한 기능들을 실행할 수 있다. 예를 들어, 특정 작업 전용 하드웨어들(160, 260)은 비전 처리 장치(vision processing unit; VPU), 비전 IP(vision intellectual property; VIP) 등을 포함할 수 있다. 메모리들(170, 270)은 상기 복수의 이종 리소스들에서 처리되는 데이터를 저장할 수 있다. DMA부들(180, 280)은 메모리들(170, 270)에 대한 접근을 제어할 수 있다. 예를 들어, DMA부들(180, 280) 각각은 MDMA(memory DMA), PDMA(peripheral DMA), RDMA(remote DMA), SDMA(smart DMA) 등을 포함할 수 있다. 통신부들(190, 290)은 유/무선으로 통신을 수행할 수 있다. 예를 들어, 통신부들(190, 290) 각각은 시스템 버스, PCI(peripheral component interconnect), PCIe(PCI express) 등과 같은 내부 통신 및/또는 USB(universal serial bus), Ethernet, WiFi, Bluetooth, NFC(near field communication), RFID(radio frequency identification), 이동 통신(mobile telecommunication) 등과 같은 외부 통신을 지원할 수 있다.
도시하지는 않았지만, 상기 연산 리소스는 마이크로프로세서(microprocessor), 어플리케이션 프로세서(application processor; AP), 맞춤형 하드웨어(customized hardware), 압축용 하드웨어(compression hardware) 등을 더 포함할 수 있다. 상기 통신 리소스는 메모리 복사 가능한 리소스들(memory copy capable resources)을 더 포함할 수 있다.
적어도 하나의 적응적 경로 관리부(110, 210)는 도 1을 참조하여 상술한 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 수행할 수 있다. 예를 들어, 적응적 경로 관리부(110)는 리소스 정보 인지 및 상황 정보 인지를 기초로 적어도 하나의 연산 및/또는 이벤트를 수행하기 위한 최적의 경로를 설정할 수 있다.
실시예에 따라서, 적어도 하나의 적응적 경로 관리부(110, 210)의 일부 또는 전부는 하드웨어의 형태로 구현될 수도 있고, 소프트웨어(즉, 프로그램)의 형태로 구현되어 저장 장치에 저장될 수도 있다.
일 실시예에서, 상기 복수의 이종 리소스들 중 일부(120, 130, 140, 150, 160, 170, 180, 190) 및 적응적 경로 관리부(110)는 제1 전자 기기(100)에 포함될 수 있고, 상기 복수의 이종 리소스들 중 다른 일부(220, 230, 240, 250, 260, 270, 280, 290) 및 적응적 경로 관리부(210)는 제2 전자 기기(200)에 포함될 수 있다. 제1 전자 기기(100)는 사용자 경험(user experience)이 직접적으로 수행되는 전자 기기일 수 있다. 제2 전자 기기(200)는 제1 전자 기기(100)와 물리적으로 분리되며, 제1 전자 기기(100)와 연동하여 동작할 수 있다.
제1 전자 기기(100)를 로컬(local) 기기라고 부를 수 있으며, 제1 전자 기기(100)에 포함되는 이종 리소스들(120, 130, 140, 150, 160, 170, 180, 190)을 로컬 리소스라고 부를 수 있다. 제2 전자 기기(200)를 리모트(remote) 기기라고 부를 수 있으며, 제1 전자 기기(200)에 포함되는 이종 리소스들(220, 230, 240, 250, 260, 270, 280, 290)을 리모트 리소스라고 부를 수 있다. 전자 기기들(100, 200) 각각은 인공 신경망 또는 인공 지능(artificial intelligence; AI) 기능이 내장된(built-in) 기기일 수 있다.
일 실시예에서, 제1 전자 기기(100)는 개인용 컴퓨터(personal computer; PC), 노트북(laptop), 휴대폰(mobile phone), 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), PMP(portable multimedia player), 디지털 카메라(digital camera), 캠코더(camcoder), 음악 재생기(music player), 휴대용 게임 콘솔(portable game console), 네비게이션(navigation), 웨어러블(wearable) 기기, 가상 현실(virtual reality; VR) 기기, 증강 현실(augmented reality; AR) 기기 등과 같은 임의의 컴퓨팅 기기 및/또는 모바일 기기일 수 있다.
일 실시예에서, 제2 전자 기기(200)는 제1 전자 기기(100)와 연동하여 동작하는 임의의 컴퓨팅 기기 및/또는 모바일 기기일 수 있다. 예를 들어, 제2 전자 기기(200)는 신경 처리 장치(neural processing unit; NPU), 병렬 처리 장치(parallel processing element; PE) 등과 같은 컴패니언 칩(companion chip) 또는 오프 칩(off-chip)일 수 있다. 다른 예에서, 제2 전자 기기(200)는 웨어러블(wearable) 기기(예를 들어, 스마트 워치(smart watch))와 같이 제1 전자 기기(100)에 종속하여 동작하는 컴패니언 기기일 수 있다. 또 다른 예에서, 제2 전자 기기(200)는 사물 인터넷(internet of things: IoT) 기기, 만물 인터넷(internet of everything: IoE) 기기 등을 제어하는 홈 게이트웨이(home gateway)와 같은 내부 서버(in-house server), 또는 클라우드 서버(cloud server)와 같은 외부 서버(outside server)일 수 있다.
한편, 도 2에서는 하나의 로컬 기기(100) 및 하나의 리모트 기기(200)를 도시하였으나, 실시예에 따라서 인공 신경망의 연산 처리 경로 관리 시스템은 하나의 로컬 기기 및 이와 연동하여 동작하는 복수의 리모트 기기들을 포함하여 구현될 수도 있다.
도 3a 및 3b는 본 발명의 실시예들에 따른 인공 신경망의 동작을 설명하기 위한 도면들이다.
도 3a 및 3b를 참조하면, 본 발명의 실시예들에 따른 인공 신경망의 동작에서, 하나의 연산을 수행할 수 있는 리소스들, 알고리즘들 및 알고리즘 구현들이 복수 개 존재할 수 있다. 예를 들어, 하나의 연산을 수행할 수 있는 리소스들의 개수는 M(M은 2 이상의 자연수)일 수 있고, 하나의 연산을 수행할 수 있는 알고리즘들의 개수는 N(N은 M보다 큰 자연수)일 수 있으며, 하나의 연산을 수행할 수 있는 알고리즘 구현들의 개수는 K(K는 N보다 큰 자연수)일 수 있다.
구체적으로, 도 3a에 도시된 것처럼, 하나의 이벤트(EV1)를 수행하기 위해 네 개의 연산들(OP1, OP2, OP3, OP4)이 수행될 수 있다. 네 개의 연산들(OP1, OP2, OP3, OP4)이 수행됨에 따라, 입력 데이터들(DIN1, DIN2, DIN3, DIN4)이 처리되어 출력 데이터들(DOUT1, DOUT2, DOUT3, DOUT4)이 발생될 수 있다. 이 때, 각 연산을 수행하기 위해 네 개의 연산 리소스들(CR1, CR2, CR3, CR4)이 사용될 수 있다. 예를 들어, 제1 입력 데이터(DIN1)에 기초하여 제1 출력 데이터(DOUT1)를 발생하는 제1 연산(OP1)을 수행할 수 있는 연산 리소스들의 개수는 네 개일 수 있다.
도 3b에 도시된 것처럼, 제1 연산 리소스(CR1)에서 수행 가능한 알고리즘의 개수는 네 개일 수 있고, 각 알고리즘마다 두 개의 알고리즘 구현이 존재할 수 있다. 예를 들어, 제1 알고리즘(ALG1)은 두 개의 방식들(IMP11, IMP12) 중 하나로 구현될 수 있다. 이와 유사하게, 제2 알고리즘(ALG2)은 두 개의 방식들(IMP21, IMP22) 중 하나로 구현될 수 있고, 제3 알고리즘(ALG3)은 두 개의 방식들(IMP31, IMP32) 중 하나로 구현될 수 있으며, 제4 알고리즘(ALG4)은 두 개의 방식들(IMP41, IMP42) 중 하나로 구현될 수 있다.
제2 내지 제4 연산 리소스들(CR2, CR3, CR4) 각각에서 수행 가능한 알고리즘의 개수 및 알고리즘 구현의 개수는 제1 연산 리소스(CR1)와 동일할 수도 있고 서로 다를 수도 있다. 도 3a 및 3b의 예에서, 각 연산 리소스에서 수행 가능한 알고리즘의 개수 및 알고리즘 구현의 개수가 동일하고 중복이 없다고 가정하면, 하나의 연산(예를 들어, OP1)을 수행할 수 있는 리소스들의 개수는 4일 수 있고, 하나의 연산을 수행할 수 있는 알고리즘들의 개수는 16일 수 있으며, 하나의 연산을 수행할 수 있는 알고리즘 구현들의 개수는 32일 수 있다.
도 4 및 5는 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 설명하기 위한 도면들이다. 도 4는 선호 레벨 메트릭스의 예를 나타내는 표이고, 도 5는 초기 경로들의 예를 나타내는 표이다.
도 4를 참조하면, 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법에서 사용되는 선호 레벨 메트릭스는, 복수의 이종 리소스들과 복수의 연산들의 관계를 나타낸다. 일 실시예에서, 도 4에 도시된 것처럼, 상기 선호 레벨 메트릭스는 상기 복수의 연산들 각각에 대한 연산 ID(identification)(OP_ID), 클래스(class) ID(CLS_ID), 레벨(level) ID(LV_ID), 리소스 ID(RCS_ID), 알고리즘 ID(ALG_ID) 및 알고리즘 구현 ID(IMP_ID)를 포함할 수 있다.
연산 ID(OP_ID)는 연산의 종류를 나타낼 수 있다. 예를 들어, 도 4에 도시된 "Conv_3x3"은 3*3의 컨볼루션(convolution) 연산을 나타낼 수 있다. "Relu"는 정정 선형 유닛(rectified linear unit) 연산을 나타낼 수 있으며, 예를 들어 max(0, x)와 같이 음수에 대해서만 0으로 처리하는 함수를 나타낼 수 있다. "Memcopy"는 메모리 복사 연산을 나타낼 수 있다.
클래스 ID(CLS_ID)는 각 연산에 대한 동작 모드 또는 적용 범위를 나타낼 수 있다. 예를 들어, 클래스 ID(CLS_ID)는 전력 소모, 성능, 보안 등 모든 요구 조건에 대해 최적화된 제1 클래스 ID("Bst"), 전력 소모에 최적화된 제2 클래스 ID("Pwr"), 성능에 최적화된 제3 클래스 ID("Perf"), 로컬 기기에서만 동작 가능한 제4 클래스 ID("Lcl"), 및 리모트 기기에서만 동작 가능한 제5 클래스 ID("Rmt")를 포함할 수 있다.
레벨 ID(LV_ID)는 각 연산에 대한 레벨을 나타낼 수 있다. 예를 들어, 레벨 ID(LV_ID)는 자연수일 수 있으며, 숫자가 작을수록 우수한 레벨을 나타낼 수 있다. 예를 들어, 동일한 연산 및 동일한 클래스 내에서, 레벨 ID(LV_ID)가 "3"인 경우보다 "2"인 경우가 우수할 수 있고, 레벨 ID(LV_ID)가 "2"인 경우보다 "1"인 경우가 우수할 수 있다.
리소스 ID(RCS_ID), 알고리즘 ID(ALG_ID) 및 알고리즘 구현 ID(IMP_ID)는 각 연산을 수행하기 위한 리소스의 종류, 알고리즘의 종류 및 알고리즘 구현의 종류를 각각 나타낼 수 있다. 예를 들어, 상기 3*3 컨볼루션 연산은, "FFT_8x8" 알고리즘 및 "ver2.0" 구현을 기초로 "VPU"(즉, 로컬 기기의 비전 처리 장치)에서 수행될 수도 있고, "Winograd" 알고리즘 및 "perf" 구현을 기초로 "NPU"(즉, 로컬 기기의 신경 처리 장치)에서 수행될 수도 있고, "FFT_16x16" 알고리즘 및 "cl3.0" 구현을 기초로 "GPU"(즉, 로컬 기기의 그래픽 처리 장치)에서 수행될 수도 있으며, "ultraFast" 알고리즘 및 "opt1.0" 구현을 기초로 "R_GPU"(즉, 리모트 기기의 그래픽 처리 장치)에서 수행될 수도 있다. 상기 정정 선형 유닛 연산은, "perf_opt" 알고리즘 및 "8bit" 구현을 기초로 "DSP"(즉, 로컬 기기의 디지털 신호 프로세서)에서 수행될 수도 있고, "pwr_opt" 알고리즘 및 "ver3.5" 구현을 기초로 "CPU"(즉, 로컬 기기의 중앙 처리 장치)에서 수행될 수도 있으며, "Comprs" 알고리즘 및 "opt1.0" 구현을 기초로 "GPU"(즉, 로컬 기기의 그래픽 처리 장치)에서 수행될 수도 있다. 상기 메모리 복사 연산은, "perf_opt" 알고리즘 및 "losy" 구현을 기초로 "SDMA"(즉, 로컬 기기의 SDMA)에 의해 수행될 수도 있고, "pwr_opt" 알고리즘 및 "loseless" 구현을 기초로 "MDMA"(즉, 로컬 기기의 MDMA)에 의해 수행될 수도 있으며, "lowLatency" 알고리즘 및 "P2P" 구현을 기초로 "RDMA"(즉, 리모트 기기의 DMA)에 의해 수행될 수도 있다.
도 5를 참조하면, 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법에서 사용되는 미리 결정된 복수의 초기 경로들은, 복수의 이종 리소스들 중 적어도 하나를 선점(preempting)하여 사용하는 제1 타입("Preem")의 경로들, 상기 복수의 이종 리소스들의 리소스 환경 및 사용 우선 순위에 기초한 제2 타입("Tbst")의 경로들, 및 상기 복수의 이종 리소스들 중 일부만을 제한(limiting)하여 사용하는 제3 타입("Lmt")의 경로들을 포함할 수 있다. 다시 말하면, 상기 복수의 초기 경로들 각각의 종류(TYP)는 상술한 세 가지 타입들 중 하나일 수 있다.
제1 타입("Preem")에서는 아주 중요한 시나리오(예를 들어, 보안, 인증과 관련된 경우)에 대하여 정해진 경로의 리소스를 우선적으로 선점하여 사용할 수 있다. 제2 타입("Tbst")에서는 정해진 경로의 리소스를 사용하되, 정해진 경로 내에서 이미 사용 중인(즉, 바쁜(busy)) 리소스가 존재하는 경우에 해당 리소스만을 다음 선호도(preference)의 리소스로 대체하여 사용할 수 있다. 제3 타입("Lmt")에서는 로컬 기기 내의 리소스만 사용하거나, 로컬 기기 및 컴패니언 기기(또는 칩) 내의 리소스만 사용할 수 있다. 실시예에 따라서, 제3 타입("Lmt")의 경로는 존재하지 않을 수도 있다.
일 실시예에서, 도 5에 도시된 것처럼, 상기 복수의 초기 경로들 각각은 경로 ID(P_ID), 우선 순위(PRIO), 연산 ID(OP_ID) 및 클래스 ID(CLS_ID)를 포함할 수 있다. 상기 복수의 초기 경로들 각각은 레벨 ID(LV_ID) 및 범위(range) ID(RNG_ID)를 더 포함할 수 있다.
경로 ID(P_ID)는 이벤트의 종류 또는 이벤트에 대응하는 경로의 종류를 나타낼 수 있다. 예를 들어, 도 5에 도시된 "Priv_spch"는 private speech 이벤트를 나타낼 수 있고, "ADAS"는 운전 보조 시스템(advanced driver assistance system) 이벤트를 나타낼 수 있고, "Img_cls"는 영상 분류(image classify) 이벤트를 나타낼 수 있고, "Pub_spch"는 public speech 이벤트를 나타낼 수 있으며, "Auth"는 사용자 인증 이벤트를 나타낼 수 있다.
우선 순위(PRIO)는 각 이벤트에 대한 우선 순위를 나타낼 수 있다. 예를 들어, 우선 순위(PRIO)는 자연수일 수 있으며, 숫자가 클수록 우선 순위가 높을 수 있다.
연산 ID(OP_ID), 클래스 ID(CLS_ID) 및 레벨 ID(LV_ID)는 각각 도 4를 참조하여 상술한 것과 실질적으로 동일할 수 있다. 예를 들어, 도 5에 도시된 "Pool_max"는 어떤 한 특징의 통계량 중 최대 값을 통합(pooling, sampling 또는 resizing)하는 연산을 나타낼 수 있다. "FC"는 fully connected network를 나타낼 수 있다. "Pool_max"는 어떤 한 특징의 통계량 중 평균 값을 통합하는 연산을 나타낼 수 있다. "Conv_5x5"는 5*5의 컨볼루션 연산을 나타낼 수 있다. "Softmax"는 예측된 결과인 점수(score) 값을 확률 값으로 변환하는 연산을 나타낼 수 있다.
범위 ID(RNG_ID)는 각 이벤트의 수행 가능 범위를 나타낼 수 있다. 예를 들어, 도 5에 도시된 "Rmt"는 리모트 기기에서 수행 가능함을 나타낼 수 있고, "Compan"은 컴패니언 기기(또는 칩)에서 수행 가능함을 나타낼 수 있으며, "Lcl"은 로컬 기기에서 수행 가능함을 나타낼 수 있다.
상술한 것처럼, 선호 레벨 메트릭스 및 복수의 초기 경로들은 계층적 테이블의 형태로 구현될 수 있으며, 미리 설정되어 저장될 수 있다. 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 수행하기 위한 동작 초기에 상기 선호 레벨 메트릭스 및 상기 복수의 초기 경로들이 로딩(loading)될 수 있다.
도 6 및 7은 도 1의 제1 이벤트에 대한 제1 경로를 설정하는 단계의 예를 나타내는 순서도들이다. 도 6은 상기 제1 이벤트가 상기 복수의 연산들 중 하나를 포함하는 경우를 나타내며, 도 7은 상기 제1 이벤트가 상기 복수의 연산들 중 두 개 이상을 포함하는 경우를 나타낸다.
도 6을 참조하면, 상기 제1 이벤트에 대한 상기 제1 경로를 설정하는데 있어서(도 1의 단계 S200), 제1 트리거 신호가 활성화되었는지 판단할 수 있다(단계 S210). 예를 들어, 상기 제1 트리거 신호는 상기 제1 이벤트를 수행하고자 하는 경우에 활성화될 수 있다.
상기 제1 트리거 신호가 활성화되지 않은 경우에(단계 S210: 아니오), 상기 제1 트리거 신호의 활성화를 대기할 수 있다. 상기 제1 트리거 신호가 활성화된 경우에(단계 S210: 예), 상기 복수의 이종 리소스들 중 제1 연산 리소스를 결정할 수 있다(단계 S220). 예를 들어, 상기 복수의 연산들 중 상기 제1 이벤트에 포함되는 제1 연산의 종류 및 상기 제1 연산에 의해 처리되는(또는 입/출력되는) 데이터의 종류 중 적어도 하나에 기초하여 상기 제1 연산 리소스가 결정될 수 있다.
일 실시예에서, 복수의 연산 리소스들(예를 들어, 도 2의 120, 130, 140, 150, 160, 220, 230, 240, 250, 260) 중 이용 가능한 제1 리소스를 상기 제1 연산 리소스로 선택할 수 있다. 상기 제1 연산 리소스가 이용 불가능한 경우에(단계 S230: 아니오), 즉 상기 제1 리소스가 이용 불가능한 경우에, 상기 제1 연산 리소스를 변경할 수 있다(단계 S240). 예를 들어, 상기 제1 연산 리소스는 상기 제1 리소스와 다르고 이용 가능한 제2 리소스로 변경될 수 있다. 상기 제1 연산 리소스가 이용 가능한 경우에(단계 S230: 예), 이후의 단계들이 수행될 수 있다.
일 실시예에서, 단계 S230 및 S240은 이용 가능한 리소스가 상기 제1 연산 리소스로 선택될 때까지 반복 수행될 수 있다. 실시예에 따라서, 단계 S230 및 S240은 생략될 수도 있다.
상기 제1 연산 리소스가 결정된 이후에, 상기 제1 연산 리소스에서 상기 제1 연산을 수행하기 위한 제1 알고리즘을 결정할 수 있고(단계 S250), 상기 제1 연산에 의해 처리되는 상기 데이터의 종류에 기초하여 제1 통신 리소스를 결정할 수 있다(단계 S260). 예를 들어, 상기 제1 연산 리소스에서 수행 가능한 복수의 알고리즘들 및 복수의 알고리즘 구현들 중에서 하나를 상기 제1 알고리즘으로 선택할 수 있고, 복수의 통신 리소스들(예를 들어, 도 2의 180, 190, 280, 290) 중 하나를 상기 제1 통신 리소스로 선택할 수 있다.
상기 제1 연산 리소스, 상기 제1 알고리즘 및 상기 제1 통신 리소스에 의해 정의되는 상기 제1 경로를 유지할 수 있다(단계 S270). 상기 제1 경로는 단계 S300에서 상기 제1 이벤트를 수행하는데 사용될 수 있다.
일 실시예에서, 상기 제1 경로가 설정된 이후에 상기 구동 환경이 변경되는 경우에, 상기 제1 연산 리소스를 선택적으로 변경할 수 있다(단계 S280). 예를 들어, 상기 구동 환경이 변경되고(단계 S282: 예), 상기 제1 연산 리소스의 변경이 필요한 경우에(단계 S284: 예), 상기 제1 연산 리소스를 변경할 수 있다(단계 S240). 상기 구동 환경이 변경되지 않거나(단계 S282: 아니오), 상기 구동 환경이 변경되더라도(단계 S282: 예) 상기 제1 연산 리소스의 변경이 필요하지 않은 경우에(단계 S284: 아니오), 상기 제1 연산 리소스가 변경되지 않고 상기 제1 경로를 유지할 수 있다(단계 S270). 실시예에 따라서, 단계 S280은 생략될 수도 있다.
일 실시예에서, 상기 복수의 초기 경로들(예를 들어 도 5의 표), 상기 선호 레벨 메트릭스(예를 들어, 도 4의 표), 상기 리소스 환경 및 상기 구동 환경에 기초하여 상기 제1 경로가 설정될 수 있다. 다시 말하면, 도 6의 단계 S220, S230, S240, S250, S260, S270 및 S280 각각은 상기 복수의 초기 경로들, 상기 선호 레벨 메트릭스, 상기 리소스 환경 및 상기 구동 환경 중 적어도 하나에 기초하여 수행될 수 있다.
상기 리소스 환경은 상기 복수의 이종 리소스들의 이용 가능 여부를 나타낼 수 있다. 예를 들어, 상기 리소스 환경은 도 1을 참조하여 상술한 상기 리소스 정보 및 상기 선호 레벨 메트릭스에 의해 획득될 수 있다. 예를 들어, 도 1을 참조하여 상술한 성능/전력 정보는 처리율(throughput) 정보 등을 포함할 수 있고, 데이터 이동 비용은 데이터 왕복 레이턴시(round-trip latency) 등을 포함할 수 있으며, 각 리소스의 제한은 스레드(thread) 개수 및 지원하지 않는 데이터 종류, 데이터 레이아웃, 압축 방식 등을 포함할 수 있다.
상기 구동 환경은 상기 복수의 이종 리소스들을 포함하는 적어도 하나의 전자 기기와 상기 인공 신경망의 현재 동작 상태 또는 상황을 나타낼 수 있다. 예를 들어, 상기 구동 환경은 상기 복수의 초기 경로들에 의해 획득되거나, 다양한 정보들에 기초하여 획득될 수 있다. 예를 들어, 상기 구동 환경은, 데이터 또는 모델과 같은 패럴리즘의 종류(types of parallelism), 전/후처리(pre/post processing)를 선호하는지 여부, 로컬/컴패니언/리모트와 같은 리소스의 위치, 인공 신경망의 사양(specification) 및 요구사항(requirement)(예를 들어, 레이턴시 및 전력), 로컬 및 리모트 기기들과 관련된 정보 등을 포함할 수 있다. 예를 들어, 상기 인공 신경망의 사양 및 요구사항은, 뎁스(depth), 브랜치(branch)와 같은 레이어 토폴로지(layer topology); 전지 작업(pruning)과 같은 네트워크 압축 방식; conv, pooling, relu와 같은 각 레이어의 연산들의 종류; 포맷, 보안, 크기, 입력 소스의 종류, 물리적 위치, 가상 위치 등과 같은 데이터 성질; 패딩(padding), 스트라이드(stride), 입력, 커널(kernel)/필터 및 출력의 오퍼랜드(operand)에 대한 메모리 레이아웃; 양자화, LZ(Lempel Ziv), Huffman 등과 같은 데이터 압축 방식 등을 포함할 수 있다. 예를 들어, 상기 로컬 및 리모트 기기들과 관련된 정보는, 상기 로컬 기기 및 리모트 기기와 관련된 환경은, 연산 리소스의 상태 변화; 전력 및 발열 상태; 메모리 및 저장 공간의 상태; 어플리케이션 ID; 어플리케이션, 프로세스, 스레드, 윈도우(window), 액티비티(activity)의 수명(lifecycle) 등을 포함할 수 있다.
도 7을 참조하면, 상기 제1 이벤트가 두 개 이상의 연산들을 포함하는 것을 제외하면, 도 7의 실시예는 도 6의 실시예와 실질적으로 동일할 수 있다.
상기 제1 이벤트에 대한 상기 제1 경로를 설정하는데 있어서(도 1의 단계 S200), 도 7의 단계 S210은 도 6의 단계 S210과 실질적으로 동일할 수 있다. 상기 제1 트리거 신호가 활성화된 경우에(단계 S210: 예), 상기 제1 이벤트를 위한 복수의 이종 리소스들을 결정할 수 있다(단계 S225). 예를 들어, 상기 제1 이벤트에 포함되는 제1 연산의 종류 및 상기 제1 연산에 의해 처리되는 제1 데이터의 종류 중 적어도 하나에 기초하여 제1 연산 리소스를 결정할 수 있고, 상기 제1 이벤트에 포함되는 제2 연산의 종류 및 상기 제2 연산에 의해 처리되는 제2 데이터의 종류 중 적어도 하나에 기초하여 제2 연산 리소스를 결정할 수 있다. 실시예에 따라서, 상기 제1 및 제2 연산 리소스들은 동일할 수도 있고 서로 다를 수도 있다.
상기 제1 이벤트를 위한 복수의 이종 리소스들 중 적어도 하나가 이용 불가능한 경우에(단계 S235: 아니오), 상기 이용 불가능한 리소스를 변경할 수 있다(단계 S245). 상기 제1 이벤트를 위한 복수의 이종 리소스들 모두가 이용 가능한 경우에(단계 S235: 예), 상기 제1 이벤트를 위한 복수의 이종 리소스들에 대한 복수의 알고리즘들 및 복수의 통신 리소스들을 결정할 수 있다(단계 S255 및 S265). 예를 들어, 상기 제1 연산 리소스들에 대한 제1 알고리즘 및 제1 통신 리소스를 결정할 수 있고, 상기 제2 연산 리소스들에 대한 제2 알고리즘 및 제2 통신 리소스를 결정할 수 있다. 단계 S225, S235, S245, S255 및 S265에 의해 정의되는 상기 제1 경로를 유지할 수 있다(단계 S275). 도 7의 단계 S225, S235, S245, S255, S265 및 S275는 도 6의 단계 S220, S230, S240, S250, S260 및 S270과 각각 유사할 수 있다.
상기 제1 경로가 설정된 이후에 상기 구동 환경이 변경되는 경우에, 상기 제1 이벤트를 위한 복수의 이종 리소스들 중 적어도 하나를 선택적으로 변경할 수 있다(단계 S280). 도 7의 단계 S280, S282 및 S284는 도 6의 단계 S280, S282 및 S284와 각각 실질적으로 동일할 수 있다.
한편, 단계 S200에 의해 설정된 상기 제1 경로에 기초하여 상기 제1 이벤트를 수행하는데 있어서(도 1의 단계 S300), 상기 제1 이벤트는 상기 제1 트리거 신호가 비활성화될 때까지 반복적으로(in looping) 수행될 수도 있고, 상기 제1 트리거 신호에 기초하여 1회만 수행될 수도 있다.
도 8a, 8b 및 8c는 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 설명하기 위한 도면들이다. 도 8a, 8b 및 8b에서 CPU, GPU 및 DSP는 각각 로컬 기기의 중앙 처리 장치, 그래픽 처리 장치 및 디지털 신호 프로세서를 나타내고, RMT1 및 RMT2는 각각 상기 로컬 기기와 연동하여 동작하는 제1 리모트 기기 및 제2 리모트 기기를 나타낸다.
도 8a를 참조하면, 동작 초기에 제1 이벤트(EV11)에 대한 제1 경로(P11)를 설정할 수 있다. 예를 들어, 모든 시간들(T11, T12, T13) 동안에 제1 이벤트(EV11)가 상기 로컬 기기의 그래픽 처리 장치에 의해 수행되도록, 상기 복수의 초기 경로들에 기초하여 제1 경로(P11)가 설정될 수 있다. 예를 들어, 제1 이벤트(EV11)는 LSTM(long short term memory) 아키텍쳐(architecture)에 기초한 음성 보조 어플리케이션(voice assistant application)일 수 있고, 상기 로컬 기기는 스마트 워치일 수 있다. 도 8a에서, 제1 경로(P11)는 제2 타입(도 5의 "Tbst")의 경로일 수 있다. 제1 이벤트(EV11)는 반복적으로 수행될 수 있다.
도 8b를 참조하면, 상기 구동 환경이 변경될 수 있고, 상기 구동 환경의 변화에 기초하여 제1 이벤트(EV11)에 대한 제1 경로(P11')를 변경할 수 있다. 예를 들어, 상기 로컬 기기가 저전력 모드로 진입할 수 있으며, 시간들(T11, T13) 동안에 제1 이벤트(EV11)가 상기 로컬 기기의 그래픽 처리 장치의 의해 수행되고 시간(T12') 동안에 제1 이벤트(EV11)가 상기 제1 리모트 기기에 의해 수행되도록, 상기 구동 환경의 변화에 기초하여 제1 경로(P11')가 변경될 수 있다. 예를 들어, 상기 제1 리모트 기기는 홈 IoT 서버일 수 있다.
도 8c를 참조하면, 상기 구동 환경이 추가적으로 변경될 수 있고, 상기 구동 환경의 추가적인 변화에 기초하여 제1 이벤트(EV11)에 대한 제1 경로(P11")를 변경할 수 있다. 예를 들어, 사용자에 의해 private 모드로 진입할 수 있으며, 시간들(T11, T13) 동안에 제1 이벤트(EV11)가 상기 로컬 기기의 그래픽 처리 장치의 의해 수행되고 시간(T12") 동안에 제1 이벤트(EV11)가 상기 제2 리모트 기기에 의해 수행되도록, 상기 구동 환경의 추가적인 변화에 기초하여 제1 경로(P11")가 변경될 수 있다. 예를 들어, 상기 제2 리모트 기기는 스마트 폰 같은 개인용 휴대 기기일 수 있다.
실시예에 따라서, 시간(T12') 및 시간(T12")은 시간(T12)과 실질적으로 동일할 수도 있고 서로 다를 수도 있다.
도 9는 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 나타내는 순서도이다.
도 9를 참조하면, 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법에서, 상기 인공 신경망은 복수의 이종 리소스들에 의해 구동된다. 초기화 동작을 수행하여, 리소스 정보, 선호 레벨 메트릭스 및 복수의 초기 경로들을 획득한다(단계 S100). 제1 이벤트를 수행하고자 하는 경우에, 상기 복수의 초기 경로들, 상기 선호 레벨 메트릭스, 리소스 환경 및 구동 환경에 기초하여 상기 제1 이벤트에 대한 제1 경로를 설정한다(단계 S200). 도 9의 단계 S100 및 S200은 도 1의 단계 S100 및 S200과 각각 실질적으로 동일할 수 있다.
제2 이벤트를 상기 제1 이벤트와 동시에 수행하고자 하는 경우에, 상기 복수의 초기 경로들, 상기 선호 레벨 메트릭스, 상기 리소스 환경 및 상기 구동 환경에 기초하여 상기 제2 이벤트에 대한 제2 경로를 설정할 수 있다(단계 S400). 상기 제2 이벤트는 상기 제1 이벤트와 다른 이벤트일 수 있으며, 복수의 연산들 중 적어도 하나를 포함할 수 있다. 단계 S400은 단계 S200과 유사할 수 있으며, 단계 S400에 대해서는 도 10을 참조하여 후술하도록 한다.
상기 제1 경로와 상기 제2 경로의 적어도 일부가 중첩하는 경우에, 상기 제1 및 제2 경로들 중 하나를 변경할 수 있다(단계 S500). 단계 S500에 대해서는 도 11을 참조하여 후술하도록 한다.
상기 제1 경로 및 상기 제2 경로에 기초하여 상기 제1 이벤트 및 상기 제2 이벤트를 동시에 수행할 수 있다(단계 S600).
일 실시예에서, 단계 S600은 생략될 수 있다. 다시 말하면, 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법은 단계 S100, S200, S400 및 S500만을 포함하여 구현될 수 있다.
일 실시예에서, 단계 S100, S200, S400, S500 및 S600이 포함되는 경우는 인공 신경망의 연산 처리 방법으로 정의될 수 있다.
본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법에서, 상기 복수의 초기 경로들, 상기 선호 레벨 메트릭스, 상기 리소스 환경 및 상기 구동 환경에 기초하여 상기 제1 및 제2 경로들을 설정할 수 있고, 상기 제1 및 제2 경로들이 일부 중첩하는 경우에 상기 제1 및 제2 경로들 중 하나를 변경할 수 있으며, 상기 제1 및 제2 경로들에 기초하여 상기 제1 및 제2 이벤트들을 수행할 수 있다. 다시 말하면, 리소스 정보 인지 및 상황 정보 인지를 기초로 동적으로 설정된 최적의 경로들을 사용하여 복수의 연산들 및/또는 이벤트들 수행할 수 있다. 따라서, 복수의 서비스들이 수행되는 경우에 인공 신경망의 연산 처리 성능 및 에너지 효율이 향상될 수 있다.
도 10은 도 9의 제2 이벤트에 대한 제2 경로를 설정하는 단계의 예를 나타내는 순서도이다.
도 10을 참조하면, 도 10의 실시예는 도 6의 실시예와 유사할 수 있다. 구체적으로, 상기 제2 이벤트에 대한 상기 제2 경로를 설정하는데 있어서(도 9의 단계 S400), 제2 트리거 신호가 활성화되었는지 판단할 수 있다(단계 S410). 예를 들어, 상기 제2 트리거 신호는 상기 제2 이벤트를 수행하고자 하는 경우에 활성화될 수 있다.
상기 제2 트리거 신호가 활성화되지 않은 경우에(단계 S410: 아니오), 상기 제2 트리거 신호의 활성화를 대기할 수 있다. 상기 제2 트리거 신호가 활성화된 경우에(단계 S410: 예), 상기 복수의 이종 리소스들 중 제2 연산 리소스를 결정할 수 있다(단계 S420). 예를 들어, 상기 복수의 연산들 중 상기 제2 이벤트에 포함되는 제2 연산의 종류 및 상기 제2 연산에 의해 처리되는 데이터의 종류 중 적어도 하나에 기초하여 상기 제2 연산 리소스를 결정할 수 있다.
상기 제2 연산 리소스가 이용 불가능한 경우에(단계 S430: 아니오), 상기 제2 연산 리소스를 변경할 수 있다(단계 S440). 상기 제2 연산 리소스가 이용 가능한 경우에(단계 S430: 예), 상기 제2 연산 리소스에 대한 제2 알고리즘 및 제2 통신 리소스를 결정할 수 있다(단계 S450 및 S460). 상기 제2 연산 리소스, 상기 제2 알고리즘 및 상기 제2 통신 리소스에 의해 정의되는 상기 제2 경로를 유지할 수 있다(단계 S470).
일 실시예에서, 상기 제2 경로가 설정된 이후에 상기 구동 환경이 변경된 경우에, 상기 제2 연산 리소스를 선택적으로 변경할 수 있다(단계 S480).
도 10의 단계 S410, S420, S430, S440, S450, S460, S470, S480, S482 및 S484는 도 6의 단계 S210, S220, S230, S240, S250, S260, S270, S280, S282 및 S284와 각각 유사할 수 있다.
한편, 도시하지는 않았지만, 실시예에 따라서 상기 제2 이벤트는 두 개 이상의 연산들을 포함할 수 있으며, 이 경우 상기 제2 이벤트에 대한 상기 제2 경로를 설정하는 단계(도 9의 S400)는 도 7의 실시예와 유사하게 구현될 수 있다.
도 11은 도 9의 제1 및 제2 경로들 중 하나를 변경하는 단계의 예를 나타내는 순서도이다.
도 11을 참조하면, 상기 제1 및 제2 경로들 중 하나를 변경하는데 있어서(도 9의 단계 S500), 상기 제1 경로에 포함되는 상기 제1 연산 리소스와 상기 제2 경로에 포함되는 상기 제2 연산 리소스가 동일한지 판단할 수 있다(단계 S510).
상기 제1 연산 리소스와 상기 제2 연산 리소스가 동일한 경우에(단계 S510: 예), 즉 상기 복수의 이종 리소스들 중 제1 리소스가 상기 제1 및 제2 연산 리소스들로 선택된 경우에, 제1 및 제2 이벤트들의 우선 순위에 기초하여 상기 제1 및 제2 연산 리소스들 중 하나를 변경할 수 있다(단계 S520). 예를 들어, 우선 순위가 상대적으로 낮은 이벤트에 대응하는 연산 리소스를 변경할 수 있다.
구체적으로, 상기 제2 이벤트가 상기 제1 이벤트보다 우선 순위가 높은 경우에(단계 S522: 예), 상기 제1 이벤트에 대응하는 상기 제1 연산 리소스를 변경할 수 있다(단계 S524). 예를 들어, 상기 제1 연산 리소스는 상기 제1 리소스와 다른 제2 리소스로 변경될 수 있다. 상기 제1 이벤트가 상기 제2 이벤트보다 우선 순위가 높은 경우에(단계 S522: 아니오), 상기 제2 이벤트에 대응하는 상기 제2 연산 리소스를 변경할 수 있다(단계 S526).
상기 제1 및 제2 연산 리소스들 중 하나가 변경된 이후에, 변경된 연산 리소스를 선택적으로 복원할 수 있다(단계 S530). 예를 들어, 우선 순위가 상대적으로 높은 이벤트가 먼저 종료된 경우에, 우선 순위가 상대적으로 낮은 이벤트에 대응하는 연산 리소스가 최초 설정된 리소스로 복원될 수 있다.
구체적으로, 우선 순위가 낮은 상기 제1 이벤트에 대응하는 상기 제1 연산 리소스를 변경한 이후에(즉, 단계 S524 이후에), 우선 순위가 높은 상기 제2 이벤트가 먼저 종료되는 경우에(단계 S532: 예), 상기 제2 이벤트가 종료된 이후에 상기 제1 연산 리소스를 복원할 수 있다(단계 S534). 예를 들어, 상기 제2 이벤트가 제1 시점에 종료되고 상기 제1 이벤트가 상기 제1 시점보다 늦은 제2 시점에 종료되는 경우에, 상기 제2 리소스로 변경되었던 상기 제1 연산 리소스는 상기 제1 시점 이후에 상기 제1 리소스로 다시 변경될 수 있다. 상기 제1 연산 리소스를 변경한 이후에 상기 제1 이벤트가 먼저 종료되는 경우에(단계 S532: 아니오), 상기 제1 연산 리소스를 복원하지 않을 수 있다.
이와 유사하게, 우선 순위가 낮은 상기 제2 이벤트에 대응하는 상기 제2 연산 리소스를 변경한 이후에(즉, 단계 S526 이후에), 우선 순위가 높은 상기 제1 이벤트가 먼저 종료되는 경우에(단계 S536: 예), 상기 제1 이벤트가 종료된 이후에 상기 제2 연산 리소스를 복원할 수 있다(단계 S538). 예를 들어, 상기 제1 이벤트가 제3 시점에 종료되고 상기 제2 이벤트가 상기 제3 시점보다 늦은 제4 시점에 종료되는 경우에, 상기 제2 연산 리소스는 상기 제3 시점 이후에 상기 제1 리소스로 다시 변경될 수 있다. 상기 제2 연산 리소스를 변경한 이후에 상기 제2 이벤트가 먼저 종료되는 경우에(단계 S536: 아니오), 상기 제2 연산 리소스를 복원하지 않을 수 있다.
한편, 상기 제1 연산 리소스와 상기 제2 연산 리소스가 동일하지 않은 경우에(단계 S510: 아니오), 상기 제1 및 제2 연산 리소스들을 변경하지 않을 수 있다.
두 개의 경로들이 각각 하나의 연산 및 하나의 연산 리소스를 포함하는 경우에 기초하여 본 발명의 실시예들에 따른 경로 변경 동작을 설명하였으나, 두 개의 경로들이 각각 복수의 연산들 및 복수의 연산 리소스들을 포함하고 복수의 연산 리소스들 중 적어도 일부를 동일한 시간 동안에 사용하도록 경로들이 설정된 경우에도 본 발명의 실시예들에 따른 경로 변경 동작이 적용될 수 있다. 또한, 세 개 이상의 경로들에 대해서도 본 발명의 실시예들에 따른 경로 변경 동작이 적용될 수 있다.
도 12a, 12b, 12c, 13a, 13b 및 13c는 본 발명의 실시예들에 따른 인공 신경망의 연산 처리 경로 관리 방법을 설명하기 위한 도면들이다. 도 12a, 12b, 12c, 13a, 13b 및 13c에서 CPU, GPU, DSP 및 DHW는 각각 로컬 기기의 중앙 처리 장치, 그래픽 처리 장치, 디지털 신호 프로세서 및 전용 하드웨어를 나타내고, RMT는 상기 로컬 기기와 연동하여 동작하는 리모트 기기를 나타낸다.
도 12a를 참조하면, 동작 초기에 제1 이벤트(EV12)에 대한 제1 경로(P21)를 설정할 수 있다. 예를 들어, 시간들(T21, T23, T25) 동안에 제1 이벤트(EV12)가 상기 리모트 기기에 의해 수행되고 시간들(T22, T24) 동안에 제1 이벤트(EV12)가 상기 로컬 기기의 전용 하드웨어에 의해 수행되도록, 상기 복수의 초기 경로들에 기초하여 제1 경로(P21)가 설정될 수 있다. 예를 들어, 제1 이벤트(EV12)는 CNN(convolutional neural network) 아키텍쳐에 기초한 운전 보조 시스템 어플리케이션일 수 있고, 상기 로컬 기기는 스마트 폰일 수 있으며, 상기 리모트 기기는 신경 처리 장치일 수 있다. 도 12a에서, 제1 경로(P21)는 제1 타입(도 5의 "Preem")의 경로일 수 있다. 제1 이벤트(EV12)는 반복적으로 수행될 수 있다.
도 12b를 참조하면, 동작 초기에 제2 이벤트(EV22)에 대한 제2 경로(P22)를 설정할 수 있다. 예를 들어, 시간(T26) 동안에 제2 이벤트(EV22)가 상기 리모트 기기에 의해 수행되도록, 상기 복수의 초기 경로들에 기초하여 제2 경로(P22)가 설정될 수 있다. 예를 들어, 제2 이벤트(EV22)는 지문 인식 및 홍채 인식을 포함하는 멀티-모드(multi-modal) 인증 어플리케이션일 수 있다. 제2 경로(P22)는 제1 타입(도 5의 "Preem")의 경로일 수 있다. 제2 이벤트(EV22)는 제1 이벤트(EV12)보다 우선 순위가 높을 수 있다.
도 12c를 참조하면, 제1 이벤트(EV12)가 반복적으로 수행되는 동안에, 제2 이벤트(EV22)가 수행될 수 있다. 다시 말하면, 제1 및 제2 이벤트들(EV12, EV22)이 동시에 수행될 수 있다. 이 때, 우선 순위가 낮은 제1 이벤트(EV12)에 대한 제1 경로(P21')를 변경할 수 있다. 예를 들어, 시간들(T21', T23', T25') 동안에 제1 이벤트(EV12)가 상기 로컬 기기의 디지털 신호 프로세서에 의해 수행되고 시간들(T22, T24) 동안에 제1 이벤트(EV12)가 상기 로컬 기기의 전용 하드웨어에 의해 수행되도록, 상기 선호 레벨 메트릭스에 기초하여 제1 경로(P21')가 변경될 수 있다. 이 때, 제2 경로(P22)는 유지될 수 있다.
실시예에 따라서, 시간들(T21', T23', T25')은 시간들(T21, T23, T25)과 실질적으로 동일할 수도 있고 서로 다를 수도 있다.
도 13a를 참조하면, 동작 초기에 제1 이벤트(EV31)에 대한 제1 경로(P31)를 설정할 수 있다. 예를 들어, 모든 시간들(T31, T32, T33) 동안에 제1 이벤트(EV31)가 상기 로컬 기기의 전용 하드웨어에 의해 수행되도록, 상기 복수의 초기 경로들에 기초하여 제1 경로(P31)가 설정될 수 있다. 예를 들어, 제1 이벤트(EV31)는 CNN 아키텍쳐의 AlexNet에 기초한 갤러리(gallery) 어플리케이션일 수 있고, 상기 로컬 기기는 스마트 폰일 수 있다. 도 13a에서, 제1 경로(P31)는 제2 타입(도 5의 "Tbst")의 경로일 수 있다. 제1 이벤트(EV31)는 반복적으로 수행될 수 있다.
도 13b를 참조하면, 동작 초기에 제2 이벤트(EV32)에 대한 제2 경로(P32)를 설정할 수 있다. 예를 들어, 시간(T34) 동안에 제2 이벤트(EV32)가 상기 로컬 기기의 전용 하드웨어에 의해 수행되도록, 상기 복수의 초기 경로들에 기초하여 제2 경로(P32)가 설정될 수 있다. 예를 들어, 제2 이벤트(EV22)는 잠금 해제(unlock)를 위한 지문 인식 어플리케이션일 수 있다. 제2 경로(P32)는 제1 타입(도 5의 "Preem")의 경로일 수 있다. 제2 이벤트(EV32)는 제1 이벤트(EV31)보다 우선 순위가 높을 수 있다.
도 13c를 참조하면, 제1 이벤트(EV31)가 반복적으로 수행되는 동안에, 제2 이벤트(EV32)가 수행될 수 있다. 다시 말하면, 제1 및 제2 이벤트들(EV31, EV32)이 동시에 수행될 수 있다. 이 때, 우선 순위가 낮은 제1 이벤트(EV31)에 대한 제1 경로(P31')를 변경할 수 있다. 예를 들어, 시간들(T32') 동안에 제1 이벤트(EV31)가 상기 로컬 기기의 그래픽 프로세서에 의해 수행되고 시간들(T31, T33) 동안에 제1 이벤트(EV31)가 상기 로컬 기기의 전용 하드웨어에 의해 수행되도록, 상기 선호 레벨 메트릭스에 기초하여 제1 경로(P31')가 변경될 수 있다. 이 때, 제2 경로(P32)는 유지될 수 있다. 도 13c의 실시예에서, 우선 순위가 높은 제2 이벤트(EV32)가 먼저 종료되므로, 제2 이벤트(EV32)가 종료된 이후에 제1 이벤트(EV31)는 다시 상기 로컬 기기의 그래픽 프로세서에 의해 수행될 수 있다.
일 실시예에서, 시간(T32) 동안에 제1 이벤트(EV31)는 상기 전용 하드웨어에 의해 수행되고, 시간(T32') 동안에 제1 이벤트(EV31)는 상기 전용 하드웨어가 아닌 일반적인 그래픽 프로세서에 의해 수행되므로, 시간(T32')은 시간(T32)보다 길 수 있다.
실시예에 따라서, 본 발명의 인공 신경망의 연산 처리 경로 관리 방법은, 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수도 있다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다.
본 발명은 인공 신경망이 구현될 수 있는 다양한 장치 및 시스템에 적용될 수 있다. 예를 들어, 본 발명은 휴대폰, 스마트 폰, PC, 노트북, 태블릿 PC, PDA, PMP, 디지털 카메라, 휴대용 게임 콘솔, 웨어러블 시스템, IoT 시스템, VR 시스템, AR 시스템 등에 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 복수의 이종 리소스들(heterogeneous resources)에 의해 구동되는 인공 신경망의 연산 처리 경로 관리 방법으로서,
    초기화 동작을 수행하여, 상기 복수의 이종 리소스들에 대한 리소스 정보, 상기 복수의 이종 리소스들과 복수의 연산들의 관계를 나타내는 선호 레벨 메트릭스(preference level metrics), 및 상기 복수의 연산들에 대해 미리 결정된 복수의 초기 경로들을 획득하는 단계; 및
    상기 복수의 연산들 중 적어도 하나를 포함하는 제1 이벤트를 수행하고자 하는 경우에, 상기 복수의 초기 경로들, 상기 선호 레벨 메트릭스, 상기 복수의 이종 리소스들의 이용 가능(available) 여부를 나타내는 리소스 환경, 및 상기 복수의 이종 리소스들을 포함하는 적어도 하나의 전자 기기와 상기 인공 신경망에 대한 구동 환경에 기초하여 상기 제1 이벤트에 대한 제1 경로를 설정하는 단계를 포함하는 인공 신경망의 연산 처리 경로 관리 방법.
  2. 제 1 항에 있어서, 상기 제1 이벤트에 대한 상기 제1 경로를 설정하는 단계는,
    상기 복수의 연산들 중 상기 제1 이벤트에 포함되는 제1 연산의 종류에 기초하여 제1 연산 리소스를 결정하는 단계;
    상기 제1 연산 리소스에서 상기 제1 연산을 수행하기 위한 제1 알고리즘을 결정하는 단계; 및
    상기 제1 연산에 의해 처리되는 데이터의 종류에 기초하여 제1 통신 리소스를 결정하는 단계를 포함하는 것을 특징으로 하는 인공 신경망의 연산 처리 경로 관리 방법.
  3. 제 2 항에 있어서, 상기 제1 연산 리소스를 결정하는 단계는,
    상기 복수의 이종 리소스들 중 이용 가능한 제1 리소스를 상기 제1 연산 리소스로 선택하는 단계를 포함하는 것을 특징으로 하는 인공 신경망의 연산 처리 경로 관리 방법.
  4. 제 3 항에 있어서, 상기 제1 이벤트에 대한 상기 제1 경로를 설정하는 단계는,
    상기 제1 리소스가 이용 불가능한 경우에, 상기 제1 연산 리소스를 변경하는 단계를 더 포함하는 것을 특징으로 하는 인공 신경망의 연산 처리 경로 관리 방법.
  5. 제 2 항에 있어서, 상기 제1 이벤트에 대한 상기 제1 경로를 설정하는 단계는,
    상기 구동 환경이 변경된 경우에, 상기 제1 연산 리소스를 선택적으로 변경하는 단계를 더 포함하는 것을 특징으로 하는 인공 신경망의 연산 처리 경로 관리 방법.
  6. 제 2 항에 있어서,
    상기 복수의 연산들 중 적어도 하나를 포함하는 제2 이벤트를 상기 제1 이벤트와 동시에 수행하고자 하는 경우에, 상기 복수의 초기 경로들, 상기 선호 레벨 메트릭스, 상기 리소스 환경 및 상기 구동 환경에 기초하여 상기 제2 이벤트에 대한 제2 경로를 설정하는 단계를 더 포함하는 것을 특징으로 하는 인공 신경망의 연산 처리 경로 관리 방법.
  7. 제 6 항에 있어서, 상기 제2 이벤트에 대한 상기 제2 경로를 설정하는 단계는,
    상기 복수의 연산들 중 상기 제2 이벤트에 포함되는 제2 연산의 종류에 기초하여 제2 연산 리소스를 결정하는 단계;
    상기 제2 연산 리소스에서 상기 제2 연산을 수행하기 위한 제2 알고리즘을 결정하는 단계; 및
    상기 제2 연산에 의해 처리되는 데이터의 종류에 기초하여 제2 통신 리소스를 결정하는 단계를 포함하는 것을 특징으로 하는 인공 신경망의 연산 처리 경로 관리 방법.
  8. 제 7 항에 있어서,
    상기 제1 경로와 상기 제2 경로의 적어도 일부가 중첩하는 경우에, 상기 제1 및 제2 경로들 중 하나를 변경하는 단계를 더 포함하는 것을 특징으로 하는 인공 신경망의 연산 처리 경로 관리 방법.
  9. 제 8 항에 있어서, 상기 제1 및 제2 경로들 중 하나를 변경하는 단계는,
    상기 복수의 이종 리소스들 중 제1 리소스가 상기 제1 및 제2 연산 리소스들로 선택된 경우, 및 상기 제2 이벤트가 상기 제1 이벤트보다 우선 순위가 높은 경우에, 상기 제1 연산 리소스를 상기 제1 리소스와 다른 제2 리소스로 변경하는 단계를 포함하는 것을 특징으로 하는 인공 신경망의 연산 처리 경로 관리 방법.
  10. 제 9 항에 있어서, 상기 제1 및 제2 경로들 중 하나를 변경하는 단계는,
    상기 제2 이벤트가 제1 시점에 종료되고 상기 제1 이벤트가 상기 제1 시점보다 늦은 제2 시점에 종료되는 경우에, 상기 제1 시점 이후에 상기 제1 연산 리소스를 상기 제1 리소스로 복원하는 단계를 더 포함하는 것을 특징으로 하는 인공 신경망의 연산 처리 경로 관리 방법.
KR1020160148995A 2016-11-09 2016-11-09 인공 신경망의 연산 처리 경로 관리 방법 KR20180051987A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160148995A KR20180051987A (ko) 2016-11-09 2016-11-09 인공 신경망의 연산 처리 경로 관리 방법
US15/662,956 US10915812B2 (en) 2016-11-09 2017-07-28 Method and system of managing computing paths in an artificial neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160148995A KR20180051987A (ko) 2016-11-09 2016-11-09 인공 신경망의 연산 처리 경로 관리 방법

Publications (1)

Publication Number Publication Date
KR20180051987A true KR20180051987A (ko) 2018-05-17

Family

ID=62064464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160148995A KR20180051987A (ko) 2016-11-09 2016-11-09 인공 신경망의 연산 처리 경로 관리 방법

Country Status (2)

Country Link
US (1) US10915812B2 (ko)
KR (1) KR20180051987A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180131836A (ko) * 2017-06-01 2018-12-11 한국전자통신연구원 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법
WO2021246835A1 (ko) * 2020-06-05 2021-12-09 주식회사 퓨리오사에이아이 뉴럴 네트워크 프로세싱 방법 및 이를 위한 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592290B2 (en) * 2018-01-10 2020-03-17 International Business Machines Corporation Accelerating and maintaining large-scale cloud deployment
US20190392287A1 (en) 2018-06-22 2019-12-26 Samsung Electronics Co., Ltd. Neural processor
KR20200009435A (ko) * 2018-07-19 2020-01-30 삼성전자주식회사 딥 러닝용 데이터 표현 관리 방법, 딥 러닝용 데이터 처리 방법 및 이를 수행하는 딥 러닝 시스템
KR102580268B1 (ko) * 2018-07-27 2023-09-19 삼성전자주식회사 생체정보 추정 모델의 캘리브레이션 장치 및 방법과, 생체정보 추정 장치
US11211944B2 (en) 2019-04-17 2021-12-28 Samsung Electronics Co., Ltd. Mixed-precision compression with random access
US11671111B2 (en) 2019-04-17 2023-06-06 Samsung Electronics Co., Ltd. Hardware channel-parallel data compression/decompression
US20230308467A1 (en) * 2022-03-24 2023-09-28 At&T Intellectual Property I, L.P. Home Gateway Monitoring for Vulnerable Home Internet of Things Devices

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0528399A3 (en) 1991-08-19 1994-12-21 Toyoda Machine Works Ltd Method and apparatus for learning of neural network
US5351311A (en) 1992-07-28 1994-09-27 The United States Of America As Represented By The Secretary Of The Navy Neural network for detection and correction of local boundary misalignments between images
US5704012A (en) 1993-10-08 1997-12-30 International Business Machines Corporation Adaptive resource allocation using neural networks
JPH0991263A (ja) 1995-09-20 1997-04-04 Hitachi Medical Corp ニューラルネットワーク構造最適化装置ならびに方法
AU8996198A (en) 1997-09-04 1999-03-22 Camelot Information Technologies Ltd. Heterogeneous neural networks
US20040003132A1 (en) 2000-12-06 2004-01-01 Biosentients, Inc. Data pool architecture, system, and method for intelligent object data in heterogeneous data environments
KR100445264B1 (ko) 2002-11-06 2004-08-21 학교법인 인하학원 재구성능력 및 확장능력을 가진 신경회로망 하드웨어
US7218755B2 (en) 2003-09-04 2007-05-15 Mitsubishi Electric Research Laboratories, Inc. Detecting temporally related components of multi-modal signals
US20080208372A1 (en) 2003-11-10 2008-08-28 Pannese Patrick D Scheduling with neural networks and state machines
US20070282480A1 (en) 2003-11-10 2007-12-06 Pannese Patrick D Methods and systems for controlling a semiconductor fabrication process
JP2007233760A (ja) 2006-03-01 2007-09-13 Nec Corp 構成管理装置、構成変更進捗取得方法およびプログラム
US20090182693A1 (en) 2008-01-14 2009-07-16 Halliburton Energy Services, Inc. Determining stimulation design parameters using artificial neural networks optimized with a genetic algorithm
US8165090B2 (en) 2008-05-15 2012-04-24 Nix John A Efficient handover of media communications in heterogeneous IP networks
US20130151449A1 (en) 2011-12-07 2013-06-13 Filip Ponulak Apparatus and methods for implementing learning for analog and spiking signals in artificial neural networks
CN102521981A (zh) 2011-12-20 2012-06-27 青岛海信网络科技股份有限公司 一种基于消息中间件的交通态势计算方法
CN102594927A (zh) 2012-04-05 2012-07-18 高汉中 基于神经网络的云端服务器结构
US9400954B2 (en) 2012-07-30 2016-07-26 International Business Machines Corporation Multi-scale spatio-temporal neural network system
US20140189702A1 (en) * 2012-12-28 2014-07-03 General Electric Company System and method for automatic model identification and creation with high scalability
US20140189703A1 (en) * 2012-12-28 2014-07-03 General Electric Company System and method for distributed computing using automated provisoning of heterogeneous computing resources
US9454958B2 (en) 2013-03-07 2016-09-27 Microsoft Technology Licensing, Llc Exploiting heterogeneous data in deep neural network-based speech recognition systems
US20140310072A1 (en) 2013-04-16 2014-10-16 Gth Solutions Sp Zoo Optimization utilizing machine learning
KR20140131089A (ko) * 2013-05-03 2014-11-12 한국전자통신연구원 자원 할당 장치 및 그 방법
EP3084604A1 (en) * 2013-12-18 2016-10-26 Telefonaktiebolaget LM Ericsson (publ) Resource prediction for cloud computing
JP6327926B2 (ja) 2014-04-30 2018-05-23 国立研究開発法人情報通信研究機構 階層型ニューラルネットワークの学習システム及び方法
US9536293B2 (en) 2014-07-30 2017-01-03 Adobe Systems Incorporated Image assessment using deep convolutional neural networks
CN105700955A (zh) 2014-11-28 2016-06-22 英业达科技有限公司 服务器系统的资源分配方法
US20170286861A1 (en) * 2016-04-01 2017-10-05 Damian Kelly Structured machine learning framework
US10193762B2 (en) * 2016-08-11 2019-01-29 Rescale, Inc. Dynamic optimization of simulation resources

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180131836A (ko) * 2017-06-01 2018-12-11 한국전자통신연구원 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법
US10990561B2 (en) 2017-06-01 2021-04-27 Electronics And Telecommunications Research Institute Parameter server and method for sharing distributed deep learning parameter using the same
US11487698B2 (en) 2017-06-01 2022-11-01 Electronics And Telecommunications Research Institute Parameter server and method for sharing distributed deep learning parameter using the same
WO2021246835A1 (ko) * 2020-06-05 2021-12-09 주식회사 퓨리오사에이아이 뉴럴 네트워크 프로세싱 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
US10915812B2 (en) 2021-02-09
US20180129939A1 (en) 2018-05-10

Similar Documents

Publication Publication Date Title
KR20180051987A (ko) 인공 신경망의 연산 처리 경로 관리 방법
US11307865B2 (en) Data processing apparatus and method
JP7506472B2 (ja) アプリケーション関数を装置にオフロードするためのシステム及び方法
CN111695672B (zh) 用于提高ai引擎mac利用率的方法
EP3731101A1 (en) Architectural enhancements for computing systems having artificial intelligence logic disposed locally to memory
US20170185898A1 (en) Technologies for distributed machine learning
KR102521054B1 (ko) 조기 중단에 기반한 심층 신경망의 연산 제어 방법 및 시스템
JP2023510566A (ja) ニューラル・ネットワークのための適応的探索方法および装置
US11948352B2 (en) Speculative training using partial gradients update
JP2024512209A (ja) IoT機器に基づく情報処理方法、関連機器及び記憶媒体
Golkarifard et al. Dandelion: A unified code offloading system for wearable computing
CN105335309A (zh) 一种数据传输方法及计算机
US11706289B1 (en) System and method for distributed management of hardware using intermediate representations of systems to satisfy user intent
US9467532B2 (en) Server, arithmatic processing method, and arithmatic processing system
CN113065643A (zh) 一种用于执行多任务卷积神经网络预测的装置和方法
US11941528B2 (en) Neural network training in a distributed system
CN113645637A (zh) 超密集网络任务卸载方法、装置、计算机设备和存储介质
CN111078286B (zh) 数据通信方法、计算系统和存储介质
CN115098262B (zh) 一种多神经网络任务处理方法及装置
US11388050B2 (en) Accelerating machine learning and profiling over a network
KR20170053456A (ko) 데이터 요청을 제어하기 위한 장치 및 방법
JP7475150B2 (ja) 推論装置、推論方法、及びプログラム
CN108228323A (zh) 基于数据本地性的Hadoop任务调度方法及装置
US11966789B2 (en) System and method for queuing node load for malware analysis
US20240231941A1 (en) System and method for queuing node load in data preprocessing

Legal Events

Date Code Title Description
A201 Request for examination