KR102543512B1 - 뉴럴 렌더링을 위한 저정밀도 하드웨어 가속기 및 그 동작 방법 - Google Patents

뉴럴 렌더링을 위한 저정밀도 하드웨어 가속기 및 그 동작 방법 Download PDF

Info

Publication number
KR102543512B1
KR102543512B1 KR1020220142434A KR20220142434A KR102543512B1 KR 102543512 B1 KR102543512 B1 KR 102543512B1 KR 1020220142434 A KR1020220142434 A KR 1020220142434A KR 20220142434 A KR20220142434 A KR 20220142434A KR 102543512 B1 KR102543512 B1 KR 102543512B1
Authority
KR
South Korea
Prior art keywords
voxel
value
dot product
neural
rendering
Prior art date
Application number
KR1020220142434A
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 KR1020220142434A priority Critical patent/KR102543512B1/ko
Application granted granted Critical
Publication of KR102543512B1 publication Critical patent/KR102543512B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computer Graphics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

본 개시의 일 실시 예에 따른 하드웨어 가속기를 포함하는 뉴럴 렌더링 모델을 이용한 전자 장치는, 학습 단계에서 결정되는 복셀 상수들을 이용하여 렌더링 단계에서, 내적 연산의 변수 중 상수로 치환되는 경우 곱셈기를 덧셈기로 치환한 가속기를 이용함으로써, 렌더링 과정을 최적화할 수 있다.

Description

뉴럴 렌더링을 위한 저정밀도 하드웨어 가속기 및 그 동작 방법{LOW PRECISION HARDWARE ACCELERATOR FOR NEURAL RENDERING AND OPERATING METHOD THEREOF}
뉴럴 렌더링을 위한 하드웨어 가속기에 관한 것으로, 보다 구체적으로는 가상물체에 대한 렌더링을 하드웨어 구현을 통해 가속하는 기술에 연관된다.
뉴럴 렌더링 기술은 증강현실(AR), 혼합현실(MR), 및 가상현실(VR)의 헤드셋 장치에서 가상 물체를 실제 그 물체가 눈 앞에 있는 것처럼 디스플레이하는 기술이다. 게임에서 사용되는 그래픽스 기술이 뉴럴 네트워크 기반의 기술로 발전하였다. 게임의 경우 가상 물체를 가상 공간에 디스플레이하지만, AR/MR/VR 환경에서는 실제 물체를 가상의 물체로 만들어 그 실제 물체가 있던 공간과는 다른 공간에 실감나게 표시하는 기술이 필요하다. 예를 들어, 실제 물체를 가상의 물체로 만들기 위해 실제 물체에 대한 여러 장의 사진을 찍고, 그 사진을 기반으로 뉴럴 네트워크를 학습한 모델을 이용하여, 가상의 물체로 렌더링하는 기술이다. 한장의 사진을 렌더링하기 위해 뉴럴 네트워크는 많은 계산을 필요로 하기 때문에 실시간 렌더링 처리를 위해 하드웨어 가속기를 이용해 계산 속도를 높이는 것이 중요하다.
실시 예들에 따르면, 뉴럴 렌더링 모델을 위한 하드웨어 가속기가 제공될 수 있다.
실시 예들에 따르면, 뉴럴 렌더링 모델을 이용하여 랜더링 이미지를 생성할 때, 내적 연산의 변수 중 상수로 치환되는 경우 곱셈기를 덧셈기로 치환한 하드웨어 가속기를 이용하여 내적 연산을 수행하도록 하는 전자 장치가 제공될 수 있다.
실시 예의 일 측면에 따른 뉴럴 렌더링 모델을 위한 하드웨어 가속기는, 렌더링 이미지를 구성하는 제1 포인트에 대한 내적 연산을 하는 동안, 제1 포인트를 분해한 복수 개의 입력을 수신하여 상기 복수 개의 입력 중 제로가 아닌 하나 이상의 입력 값만 출력하는 제1 노드; 상기 제1 포인트를 분해한 복수 개의 입력에 대응하는 복수 개의 제1 복셀 상수들을 입력 받아 상기 제1 노드에서 상기 제로가 아닌 값에 대응하는 하나 이상의 복셀 상수만을 출력하는 제2 노드; 상기 제2 노드에서 출력된 상기 하나 이상의 복셀 상수들에 대해, 상기 제1 노드의 출력 값을 반영한 각각의 복셀 상수들을 누적하여 덧셈하여 출력하는 제3 노드; 및 상기 제1 포인트를 분해한 복수 개의 입력에 대응하는 복수 개의 제2 복셀 상수들에 대한 누적 덧셈 결과를 상기 제3 노드의 출력 값과 더하는 덧셈 노드를 포함할 수 있다.
일 실시 예에서, 상기 렌더링 이미지를 구성하는 각 포인트는 -1, 0, 또는 1 중 어느 하나에 해당하도록 삼성분(ternary) 양자화할 수 있다.
일 실시 예에서, 상기 제3 노드는 상기 제1 포인트의 입력 값이 -1 인 경우 복셀 상수의 부호를 변경할 수 있다.
일 실시 예에서, 상기 렌더링 이미지를 구성하는 각 포인트는 r값(단, 0<r<1)으로 양자화하는 경우를 더 포함하도록 하고-상기 r값은 상기 뉴럴 렌더링 모델의 학습 과정에서 결정된 비율 값(ratio)에 해당함-, 상기 제3 노드는 상기 제1 포인트의 입력 값이 r 값인 경우, 입력 값에 r을 곱하도록 할 수 있다.
일 실시 예에서, 상기 제3 노드는 상기 제로가 아닌 하나 이상의 입력 값의 개수만큼 곱셈기를 포함할 수 있다.
일 실시 예에서, 상기 복수 개의 제1 복셀 상수들 및 상기 복수 개의 제2 복셀 상수들은 상기 제1 포인트에 대응하여 상기 뉴럴 렌더링 모델의 학습이 완료된 시점에 상수 값으로 결정될 수 있다.
일 실시 예에서, 상기 제1 포인트에 대한 내적 연산은 상기 렌더링 이미지를 생성하는 동안 수행될 수 있다.
일 실시 예에서, 상기 복수 개의 제1 복셀 상수들 및 상기 복수 개의 제2 복셀 상수들은 메모리로부터 읽어올 수 있다.
다른 일 측에 따른, 전자 장치는, 논-제로(non-zero) 검출 노드 및 하나 이상의 덧셈기를 포함하는 하드웨어 가속기; 메모리; 통신 인터페이스; 및 상기 하드웨어 가속기, 상기 메모리, 및 상기 통신 인터페이스와 작동적으로 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 상기 통신 인터페이스를 통해 수신한 뉴럴 렌더링 모델을 상기 메모리에 저장하고, 및 상기 적어도 하나의 프로세서는 제1 이미지를 렌더링 하기 위해, 상기 제1 이미지를 구성하는 각 포인트에 해당하는 값을 계산하는 적어도 하나의 내적 연산을 상기 하드웨어 가속기에서 수행하도록 할 수 있다.
일 실시 예에서, 상기 제1 이미지에 포함된 각 포인트에 대한 내적 연산을 수행하는 동안, 상기 논-제로 검출 노드는 각 포인트를 분해한 복수 개의 입력을 수신하여 상기 복수 개의 입력 중 제로가 아닌 하나 이상의 입력 값만 출력하고, 상기 덧셈기는 상기 논-제로 검출 노드의 출력과 상기 복수 개의 입력에 대응하는 복수 개의 복셀 상수들을 누적 덧셈하도록 할 수 있다.
일 실시 예에서, 상기 렌더링 이미지를 구성하는 각 포인트는 -1, 0, 또는 1 중 어느 하나에 해당하도록 삼성분(ternary) 양자화될 수 있다.
일 실시 예에서, 상기 하드웨어 가속기는, 상기 논-제로 검출 노드의 출력에 따라 각 포인트의 입력 값이 -1 인 경우 복셀 상수의 부호를 변경하여 덧셈기로 전달하도록 할 수 있다.
일 실시 예에서, 상기 렌더링 이미지를 구성하는 각 포인트는 r값(단, 0<r<1)으로 양자화하는 경우를 더 포함하도록 하고-상기 r값은 상기 뉴럴 렌더링 모델의 학습 과정에서 결정된 비율 값(ratio)에 해당함-, 상기 하드웨어 가속기는, 상기 각 포인트의 입력 값이 r 값인 경우, 입력 값에 r을 곱하도록 하는 곱셈기를 더 포함할 수 있다.
또 다른 일 측에 따른 뉴럴 네트워크 시스템은, 복수 개의 학습 이미지 데이터를 이용하여 뉴럴 렌더링 모델을 학습하는 학습 프로세서; 상기 뉴럴 렌더링 모델에 기반하여, 렌더링 이미지를 생성하는 렌더링 프로세서; 및 상기 렌더링 이미지를 표시하는 디스플레이 장치를 포함하고, 상기 학습 프로세서는 제1 학습 이미지 데이터의 제1 포인트에 대한 값을 학습하는 동안, 복수 개의 곱셈기를 이용하여 상기 제1 포인트에 대한 내적 연산을 수행하도록 하고, 상기 렌더링 프로세서는, 렌더링 이미지의 제2 포인트에 대한 값을 생성하는 동안 상기 제1 포인트에 대한 내적 연산에 대응하는 내적 연산을 복수 개의 덧셈기를 이용하여 수행하도록 하고, 상기 렌더링 프로세서는, 상기 학습 프로세서로부터 수신한 상기 뉴럴 렌더링 모델의 복수 개의 복셀 상수값들 중 상기 내적 연산에 포함된 변수에 매칭되는 복셀 상수 값을 식별하여, 상기 내적 연산에 대한 곱셈 연산을 덧셈 연산으로 치환하도록 할 수 있다.
일 실시 예에서, 상기 내적 연산에 포함된 변수에 매칭되는 복셀 상수는 상기 학습 프로세서가 상기 뉴럴 렌더링 모델의 학습이 완료되는 것에 응답하여, 상수 값으로 결정할 수 있다.
실시 예들에 따르면, 뉴럴 렌더링 기술을 모바일 장치에서 실행 가능한 수준으로 가속화할 수 있다.
실시 예들에 따르면, 해상도 저하 없이 초병렬 내적 연산을 덧셈기 만으로 구성된 하드웨어 가속기에서 수행할 수 있다.
도 1은 일 실시 예에 따른 하드웨어 가속기를 포함하는 뉴럴 네트워크 환경(10)을 도시한다.
도 2는 일 실시 예에 따른 뉴럴 렌더링 모델에서 초병렬 내적 연산의 변화를 예시한다.
도 3은 일 실시 예에 따른 렌더링할 이미지에서 하나의 샘플 포인트의 내적 연산을 예시한다.
도 4는 일 실시 예에 따른 렌더링 과정에서 발생하는 계산량을 예시한다.
도 5A는 일 실시 예에 따른 뉴럴 렌더링 모델의 학습 단계에서 초병렬 내적 연산을 수행하는 연산 블록들이다.
도 5B는 일 실시 예에 따른 뉴럴 렌더링 모델의 렌더링 단계에서 초병렬 내적 연산을 수행하는 연산 블록들이다.
도 6은 일 실시 예에 따른 ZRA 블록들을 예시한다.
이하에서, 실시 예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시 예들에 의해 권리범위가 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시 예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
도 1은 일 실시 예에 따른 하드웨어 가속기를 포함하는 뉴럴 네트워크 환경(10)을 도시한다. 일 실시 예에서, 뉴럴 네트워크 환경(10)은 뉴럴 렌더링 모델을 학습하는 학습 프로세서(20), 뉴럴 렌더링 모델을 이용하여 렌더링 이미지를 생성하는 전자 장치(100) 및 렌더링 이미지를 표시하는 디스플레이 장치(30)를 포함할 수 있다.
뉴럴 렌더링 기술은 실제 물체에 대해 여러 각도에서 촬영한 다수의 이미지를 학습하여 뉴럴 렌더링 모델을 생성하고, 뉴럴 렌더링 모델을 이용하여 카메라가 임의의 각도나 위치에서 찍은 실제 사진과 아주 비슷하도록 이미지를 생성하여 디스플레이 할 수 있다. 뉴럴 렌더링 모델을 학습하기 위해 학습 중인 모델에서 생성한 이미지와 실제 학습 데이터에 있는 이미지 간의 차이를 최소화하도록 모델의 파라미터를 수정해가면서 학습을 진행할 수 있다. 이와 같이 뉴럴 렌더링 모델은 학습 단계와 렌더링 단계로 크게 구분할 수 있다. 다양한 실시 예에서, 학습 프로세서(20)는 복수 개의 이미지 데이터를 이용하여 학습할 수 있다. 대표적인 기술로 NeRF(Representing Scenes as Neural Radiance Fields for View Synthesis) 모델 및 TensoRF(Tensorial Radiance Fields) 모델이 있다. 본 개시의 다양한 실시 예들은 NeRF 모델 및 TensoRF 모델에서 내적 연산 부분을 가속화한 하드웨어 가속기를 포함하도록 설계될 수 있다.
학습이 완료된 뉴럴 렌더링 모델을 이용하여 전자 장치(100)의 렌더링 프로세서(110)는 필요한 이미지를 생성하여, 디스플레이 장치(30)에 표시할 수 있다. 일 실시 예에 따른 학습 프로세서(20)는 전자 장치(100)와 유무선 통신으로 연결된 별도의 하드웨어 장치일 수 있다. 다양한 실시 예에서, 학습 프로세서(20)는 전자 장치(100)에 물리적으로 포함될 수도 있다. 본 개시에서는 뉴럴 네트워크 환경에서 뉴럴 렌더링 모델을 학습하는 프로세서(20)와 학습이 완료된 뉴럴 렌더링 모델을 이용하여 렌더링 이미지를 생성하는 프로세서(110)를 구분하여 설명하는 것일 뿐, 실제 구현에서 다양한 형태가 존재할 수 있음은 자명하다.
일 실시 예에 따른 전자 장치(100)는 렌더링 프로세서(110), 하드웨어 가속기로써 내적연산 가속기(111), 메모리(120), 통신 인터페이스(130) 및 버스(140)을 포함할 수 있다.
렌더링 프로세서(110)는 일종의 중앙처리장치로서, 메모리(120)에 저장된 하나 이상의 명령어를 실행하여 전자 장치(100)의 동작을 제어할 수 있다. 렌더링 프로세서(110)는 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 렌더링 프로세서(110)는 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로서, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 이에 한정되는 것은 아니다. 렌더링 프로세서(110)는 하나 이상의 프로세서를 포함할 수 있다. 렌더링 프로세서(110)는 적어도 하나의 코어를 포함할 수 있다.
일 실시 예에 따른 렌더링 프로세서(110)는 학습이 완료된 뉴럴 렌더링 모델에 기반하여 메모리(120)에 저장된 파라미터들을 이용하여 렌더링할 이미지를 생성할 수 있다. 렌더링 프로세서(110)는 내적연산 가속기(111)를 이용하여 렌더링 이미지를 생성하는데 필요한 내적 연산을 수행할 수 있다.
일 실시 예에 따른 내적연산 가속기(111)는 이미지를 구성하는 각 포인트에 대한 초병렬적인 내적 연산을 덧셈기만을 이용하여 수행할 수 있다. 덧셈기만을 포함하는 하드웨어 가속기는 보간(interpolation)을 하지 않는 경우에 해당한다. 다른 일 실시 예에 따른 하드웨어 가속기는 초병렬 내적 연산을 수행하는 곱셈기와 적어도 하나 이상의 덧셈기를 포함하여 보간을 포함한 내적 연산을 수행할 수 있다. 구체적인 구현 예시는 도 5 및 도 6에서 상세히 설명하겠다.
메모리(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)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 일 실시 예에 따른 메모리(120)는 학습이 완료된 뉴럴 렌더링 모델에 관한 정보를 저장할 수 있다. 예를 들어, 렌더링 이미지를 구성하는 점에 대한 정보를 복셀 그리드(voxel grid)로 표현하여 메모리(120) 상에 저장될 수 있다. 공간에서 한 점을 복셀이라 하고, 공간에 대응하는 복셀 그리드 상의 한 복셀의 값을 이미지의 한 점으로 대응시킨 것이다. 복셀 그리드로 표현할 때, 3차원으로 저장할 수도 있지만, 메모리(120) 효율을 고려하여 예를 들어 3면에 프로젝션하여 저장할 수 있다. 또는 1차원 값으로 프로젝션해서 저장할 수도 있다. 랜더링 이미지 데이터를 간단히 표현할수록 학습 시간이 줄고, 모델의 크기가 줄어들면서도 학습 및 이미지 생성의 정확도도 높다. 일 실시 예에 따른 메모리(120)는 학습 결과에 따라 여러 복셀에 대한 각 상수 값을 저장할 수 있다.
통신 인터페이스(130)는 전자 장치(100)과 외부 전자 장치(예: 학습 프로세서(20), 또는 디스플레이 장치(30))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 인터페이스(130)는 렌더링 프로세서(110)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시 예에 따르면, 통신 인터페이스(130)는 무선 통신 모듈(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 네트워크를 통하여 외부 전자 장치와 통신할 수 있다. 네트워크는 블루투스, WiFi direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크) 중 어느 하나 이상을 포함할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다.
일 실시 예에 따른 통신 인터페이스(130)는 학습 프로세서(20)로부터 뉴럴 렌더링 모델에 대한 데이터를 수신할 수 있고, 렌더링 이미지를 생성하여 디스플레이 장치(30)에 전송할 수 있다.
버스(140)는 렌더링 프로세서(110), 메모리(120) 및 통신 인터페이스(130)를 연결하는 논리적/물리적 경로이다. 예를 들어, 프로세서(110)는 버스(140)를 통해 메모리(120)에 대한 읽기/쓰기(read/write)를 수행할 수 있다.
디스플레이 장치(30)는 예를 들면, HMD(head mounted display), 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 마이크로 전자기계 시스템(MEMS) 디스플레이, 또는 전자 종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이 장치(30)는 일 실시 예에 따르면, 유연하게, 투명하게, 또는 착용할 수 있게 구현될 수 있다. 일 실시 예에서, 디스플레이 장치(30)는 랜더링 이미지를 생성하는 전자 장치(100)와 별도의 하드웨어 장치일 수도 있고, 전자 장치(100)에 물리적으로 포함될 수도 있다. 실제 구현에서는 다양한 형태가 존재할 수 있음은 자명하다.
도 2는 일 실시 예에 따른 뉴럴 렌더링 모델의 초병렬 내적 연산을 수행하는 곱셈기 또는 덧셈기를 예시한다.
다양한 실시 예에서, 뉴럴 렌더링 모델의 학습 단계에서 초병렬적 내적 연산을 곱셈기로 수행하고, 뉴럴 렌더링 모델의 랜더링 단계에서는 덧셈기로 구성된 내적연산 가속기(111)를 이용하여 초병렬적 내적 연산을 수행할 수 있다.
뉴럴 렌더링 모델에서 이미지 데이터를 학습하는 단계와 이미지를 생성하는 렌더링 단계는 실질적으로 동일한 연산들을 포함하지만, 학습이 완료된 후 변수가 상수 값으로 결정되기도 한다. 예를 들어, 학습 과정에서는 복셀 그리드를 여러 번 계산하기 때문에 변수에 해당하지만, 학습이 완료되면 복셀 그리드마다 상수 값이 결정된다. 학습 단계 이후 변수가 상수 값으로 결정되는 경우, 동일한 행렬 내적 연산에 대해 실질적으로 상수 값들의 곱셈을 덧셈으로 치환할 수 있다
예를 들어, 렌더링할 이미지에서 샘플 포인트(x)의 컬러를 구하는 벡터 내적 연산은 다음과 같은 수학식 1과 같이 표현할 수 있다.
Figure 112022115118465-pat00001
여기서 a, b 값은 복셀 그리드에 대한 상수 값이다. c는 학습 단계(210)에서는 변수에 해당하고, 렌더링 단계(220)에서는 상수 값이 된다.
도 2와 같이, 학습 단계(210)에서는 곱셈기를 이용하여 내적 연산을 수행할 수 밖에 없다. 렌더링 단계(220)에서는 ac 와 bc를 미리 계산하여 메모리에 저장해두고 덧셈기에서 읽어 오기만 하면, 실질적으로 덧셈기만으로 벡터 내적 연산을 수행하게 된다.
뉴럴 렌더링 기술에서 예를 들어, NeRF 모델 및 TensoRF 모델과 같이 이미지를 구성하는 각 점을 삼성분(ternary)로 표현할 수 있다. 렌더링 이미지의 정확도 저하 없이 NeRF 모델의 파라미터를 3개의 값을 값도록 양자화하여 표현할 수 있다. 삼성분(ternary) 양자화를 위해 3가지 레벨(
Figure 112022115118465-pat00002
)을 사용할 수 있다. 삼성분 값을 가지는 파라미터는 3가지 레벨의 인덱스를 나타내는 x 값이 구해지면, ax+b의 선형(liner) 연산을 거쳐 해당 파라미터의 최종 값으로
Figure 112022115118465-pat00003
또는
Figure 112022115118465-pat00004
이 된다. 여기서 파라미터는 도 3의 예에서 CP 컴포넌트들 각각이 갖는 파라미터를 의미한다. 구체적으로 CP 컴포넌트는 3개의 b 벡터를 갖고, 각 b 벡터는 -1, 0, 1의 3개 레벨에 대한 인덱스를 가지고, 각 CP 컴포넌트가 스칼라 a, 바이어스 b를 추가 파라미터로 갖는다. 이와 같이 샘플 포인트(x)는 -1, 0 또는 1 값으로 표현할 수 있고, 수학식 1은 하기 수학식 2와 같이 치환할 수 있다.
Figure 112022115118465-pat00005
행렬의 곱셈 연산을 포함하는 수학식 1은 수학식 2와 같이 치환하여, 실질적으로 덧셈 연산만으로 행렬의 벡터 내적 연산을 할 수 있게 된다. 자세한 연산의 과정은 도 3에서 설명하겠다.
정리하자면 학습 프로세서(20)는 곱셈기를 이용하여 도 2의 210 단계와 같이 행렬의 내적 연산을 수행할 수 있고, 이와 달리 전자 장치(100)의 렌더링 프로세서(110)는 내적연산 가속기(111)를 도 2의 220 단계와 같이 구성함으로써, 덧셈기로 행렬의 내적 연산을 수행할 수 있다.
도 3은 일 실시 예에 따른 렌더링할 이미지에서 하나의 샘플 포인트의 연산을 예시한다.
이미지를 렌더링할 때 하나의 샘플 포인트에 대해 수행되는 계산을 예를 들어 렌더링 연산 과정을 설명하겠다. 컴포넌트 개수는 288개를 가정하고 각 컴포넌트 별로 3개의 외적(cross product, CP)를 가질 때, 총 1184(288x3)의 컴포넌트 외적 연산이 필요하다. 설명을 간단히 하기 위해 도 3에서 3차원 복셀 그리드를 2차원으로 표시하였다. 샘플 포인트는 행렬 내에 작은 색 동그라미(예, C11, C21 등)로 표현하였다. 각 CP 컴포넌트는 x축, y축 방향으로 각각 벡터를 파라미터로 갖는다. 하나의 샘플 포인트가 주어졌을 때, 각 CP 컴포넌트는 2개의 벡터 각각에서 샘플 포인트에 해당하는 부분의 값을 구해 이들을 곱한 값을 해당 샘플 포인트의 값으로 구할 수 있다. 도 3의 예에서, CP 컴포넌트 C1의 경우 310과 같이 각 성분들이 계산된다. 샘플 포인트 C11에 대해 x축에서 값 f를 구하고, y축에서 값 g을 구하여 이 둘을 곱한 fg 값이 C11의 스칼라 값이 된다. 각 CP 컴포넌트에서 이렇게 구한 값들은 해당 CP 컴포넌트에 할당된 b 벡터와 곱해지는 값이 된다. C1의 경우, C11은 벡터 b1에 곱해진다. 정리하면, TensoRF 모델에서는 각 CP 컴포넌트 별로 샘플 포인트에서 구한 스칼라 값과 해당 CP 컴포넌트의 벡터 b를 곱한 후 이들 벡터들을 모두 더해 하나의 벡터로 만들 수 있고, 각 샘플 포인트에 해당하는 벡터 값은 MLP의 입력 데이터가 된다. 이 과정을 행렬 B와 행렬 C에서 하나의 벡터를 곱하는 것으로 정의할 수 있다. 행렬 C에서 하나의 벡터는 하나의 샘플 포인트에 매칭되는데, 예를 들어, 도 3에서 행렬 C의 첫 번째 벡터는 첫 번째 샘플 포인트에 대해 모든 CP 컴포넌트들에서 구한 스칼라 값들(예, c11, c21 등)을 가질 수 있다. 행렬 B와 벡터를 곱한 결과는 결국 각 CP 컴포넌트 별로 해당 샘플 포인트의 스칼라 값과 해당 벡터 b와의 곱을 구한 후 이들을 모두 더해 구하는 벡터가 된다.
도 4는 일 실시 예에 따른 뉴럴 렌더링의 계산량을 구하는 예시이다.
뉴럴 렌더링 모델은 학습 단계 및 렌더링 단계 모두에서 상당한 계산량을 필요로 한다. 예를 들어, NeRF 모델 방법에서 사용된 8-레이어 MLP(a multilayer perceptron) 모델(256 hidden dimension)을 각 샘플 포인트(sample point)에서 수행하고, 픽셀(=ray)당 256개의 샘플 포인트를 가정하면, 512x512 픽셀 크기로 VR 헤드셋의 화면에 60 frames/sec로 이미지를 생성할 때 매 초당 필요한 총 곱셈의 횟수는 3.7 Peta operations/sec(대략 1440x1600x60x256x256x256x7x2) 로 구할 수 있다. 이는 현재 일반적으로 스마트폰에 장착된 뉴럴 네트워크 가속기의 계산 능력의 100배 수준의 계산 능력에 해당한다.
TensoRF 모델은 NeRF 방법을 개선한 것으로, NeRF에 비해 계산량을 10배 정도 획기적으로 줄일 수 있다. 도 4는 TensoRF 모델의 연산을 예시한 것으로, 512x512 이미지 렌더링의 경우 계산량은 336 Tera oprations/sec 수준으로 줄어들 수 있다. 구체적으로 도 4에서는 288개의 컴포넌트를 가진 경우 512x512 이미지 한장을 생성하는 경우의 계산량을 다음과 같이 구할 수 있다. TensoRF 방법은 벡터 내적 연산을 포함하는 샘플 포인트 값을 구하는 단계(410)와 MLP 단계(420)를 포함한다. 410 단계에서 행렬 B와 벡터의 곱셈 연산이 1.5 Tera 만큼 수행되고, 420 단계에서 0.8 Tera 곱셈 연산이 수행된다. 410 단계에서 행렬과 벡터의 내적은 벡터의 길이가 긴 특징이 있어, 이를 초병렬적 행렬 내적 연산이라 한다. 도 4의 예에서 계산 비용의 대부분은 410 단계에서 소요되는데, B 행렬 곱셈 연산은 크기가 864인 벡터 간의 내적을 512x512x256 번 수행되기 때문이다. 긴 벡터 간의 내적 연산 즉, 초병렬적 곱셈 및 누적 계산을 최소화할 필요성이 있다. 다양한 실시 예에서는, 곱셈 연산을 덧셈 연산으로 치환하는 방법을 이용하여 초병렬적 곱셈 연산을 최소화할 수 있다. 본 개시의 다양한 실시 예는, TensoRF 모델에 따른 계산량을 10배 이상 줄여 궁극적으로 현재 스마트폰에 장착된 뉴럴 네트워크 가속기의 계산 능력 수준에 도달할 수 있다.
도 5A는 일 실시 예에 따른 뉴럴 렌더링 모델의 학습 단계에서 초병렬 내적 연산을 수행하는 연산 블록들이고, 도 5B는 일 실시 예에 따른 뉴럴 렌더링 모델의 렌더링 단계에서 초병렬 내적 연산을 수행하는 연산 블록들이다. 도 5A는 도 2의 210 단계의 내적 연산을 수행하는 것으로, 일반적인 내적 연산을 위한 연산기 블록들로 구성된다. 도 5B는 도 2의 220 단계의 내적 연산을 수행하는 것으로, 도 5A와 달리 적어도 일부의 곱셈기를 덧셈기로 치환한 내적 연산기의 세부 블록들을 도시한다.
TensoRF 모델과 같이, 복셀 그리드의 값 x를 삼성분으로 양자화하고, 복셀 그리드에서 구한 값은 ax+b로, 그 외의 입력(도 3에서 B 행렬)은 c로 표시하였다. 도 5A 및 도 5B에서는 8개 복셀 값들과 8개의 c 값들 간의 벡터 내적을 예시한 것이다.
도 5A의 제1 곱셈누적기 (MACD, multiply-accumulate with decomposed inputs) 블록(510)과 도 5B의 제2 MACD 블록(520)은 각각 4개 입력쌍에 대한 연산을 수행하기 위해 분해된 데이터를 입력 받는다. 이때 제2 MACD 블록(520)은 이미지의 각 샘플 포인트에 대한 연산을 분해하여 acx + bc로 표현하고, a, b, c가 상수(constant)라는 것을 이용해 시스템 구동 전에 미리 ac, bc 값을 구해 메모리(120)에 저장해 둔 후, 시스템 구동 중에는 이 값들을 메모리(120)에서 읽어 사용한다. 또한, 삼성분 데이터에서 대부분의 데이터가 zero 인 것을 이용해, 4개의 삼성분 데이터 중 2개의 non-zero 데이터를 선택해, 이들에 대해서만 내적 동작을 수행한다. 따라서 도 5B의 예와 같이, 4개의 삼성분 입력 x4, ..., x7에서 2개의 non-zero 입력을 구한 후(도 5B에서는 x4, x7으로 예시), 이들에 해당하는 ac, bc 값들을 4:2 mux(MUltipleXer)를 통해 선택한다. 선택된 2개의 항에 대해서는 Zero/Ratio-aware Add (ZRA) 블록을 이용해, 기본적으로는 각각 해당되는 샘플 포인트(x)값과 곱한 후 이를 더하는 동작을 수행한다. 더 최적화하기 위해서는 x 값이 +1/0/-1/ratio 인 4가지 경우를 나눠서 각각 ac 값을, 그대로/0으로 대치/부호변경/ratio와 곱셈 하여 ZRA 블록 내부의 덧셈기(adder)로 전달한다. x값이 ratio인 경우는 복셀 그리드에서 값을 구할 때 여러 개 복셀 값(+1/0/-1)을 인터폴레이션(interpolation)하는 경우이며, 절대치는 0<r<1 이다. 이 경우는 후술할 도 6의 (a)와 같다.
특히, 삼성분(ternary)로 복셀 값을 표현하면 뉴럴 렌더링 모델 크기를 크게 줄일 수 있으므로, 모델 크기를 작게 유지하면서 더욱 해상도(resolution)이 높은 복셀 그리드 표현을 얻을 수 있다. 이 경우는 인터폴레이션 없이, 복셀 값을 그대로 이용할 수 있다. 이러한 경우, 복셀 값은 +1/0/-1의 3가지 경우 가능한데, 그 경우는 후술할 도 6의 (b)와 같이 곱셈기 없이 벡터 내적 연산이 가능하다.
구체적으로 도 5B는 8개의 x 값들 중 x2,x3,x4,x7이 non-zero인 경우를 가정한다. 도 5A에서는 8비트 곱셈기 8개(붉은색 동그라미로 표시)가 필요했으나, 도 5B에서는 8비트 덧셈기 6개(2개는 ZRA 블록 내부에 하나씩 포함)(파란색 동그라미로 표시), 9/10비트 덧셈기 각 2개, 11비트 덧셈기 1개만으로 구성된다. ZRA 블록은 도 6에서 상세히 설명하겠다. 도 5A 및 도 5B에서 곱셈기는 붉은색 동그라미로 표시하고, 덧셈기는 초록색 동그라미로 표시하였고, 도 5A의 곱셈기에서 도 5B에서는 덧셈기로 치환된 경우의 덧셈기는 파란색 동그라미로 표시하였다.
도 5B와 같이 렌더링 단계에서 하드웨어 가속기로 내적연산 가속기를 이용하는 경우, 가속기 면적을 줄일 수 있다. 나아가, 회로의 에너지 소모는 대체로 회로의 면적(게이트 수)에 비례하기 때문에 에너지 비용을 감소시킬 수 있다. 구현의 일 예로, 데이터 타입이 8비트인 경우 종래 기술의 경우 렌더링 단계에서도 학습 단계와 동일하게, 4개의 원소를 가진 벡터들 간의 내적을 위해 8비트 곱셈기 4개, 16비트 덧셈기 2개, 및 17비트 덧셈기 1개가 필요하다. 이에 비해 본 개시의 내적연산 가속기를 이용하는 경우, ZRA 블록 내에 8비트 곱셈기 2개(인터폴레이션을 수행하지 않는 경우 도 6(b)와 같이 곱셈기가 필요 없음), 17비트 덧셈기 1개(4D MACD의 마지막 덧셈기), 16비트 덧셈기 1개(ZRA 블록 내), 8비트 덧셈기 2개, 9비트 덧셈기 1개 그리고 8비트 입력에 대한 non-zero 검출 회로, 4:2 mux 회로가 필요하다. 따라서, 곱셈의 수를 최소 1/2로 줄일 수 있어 전체 계산량이 획기적으로 줄어드는 것은 자명하다.
도 6은 일 실시 예에 따른 ZRA 블록들을 예시한다.
일 실시 예에 따른 내적 연산 가속기(111)는 ZRA(zero/ratio-aware add) 블록을 포함한다. ZRA 블록은 일반적인 덧셈기를 조금 변경한 것으로, 덧셈 전에 입력 값이 zero인지 아닌지, 아닌 경우 ratio 값을 확인한다.
(a)의 경우, x 값이 +1/0/-1/ratio 인 4가지 경우를 나눠서 각각 ac 값을, 그대로/0으로 대치/부호변경/ratio와 곱셈 하여 ZRA 블록 내부의 덧셈기로 전달한다. Ratio와 곱셈하는 경우를 위해 곱셈기를 포함할 수 있다.
(b)의 경우, x 값이 +1/0/-1 인 3가지 경우를 나눠서 각각 ac 값을 그대로/0으로 대치/부호변경 하여 ZRA 블록 내부의 덧셈기로 전달한다. 이 경우 인터폴레이션 하지 않지만, 삼성분 표현에 의해서도 정확도가 저하되지 않기 때문에 인터폴레이션 하지 않는 경우에도 렌더링 이미지의 해상도는 높게 유지될 수 있다. 다양한 실시 예에서, 궁극적으로 곱셈기 없이 덧셈기 만으로 내적연산 가속기를 구현하는 것이 가장 바람직한 형태가 될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
10: 뉴럴 네트워크 환경
20: 학습 프로세서
100: 전자 장치
110: 렌더링 프로세서
111: 내적연산 가속기
120: 메모리
130: 통신 인터페이스
140: 버스
30: 디스플레이 장치

Claims (15)

  1. 뉴럴 렌더링 모델에 기초하여 렌더링 이미지를 구성하는 제1 복셀에 대한 내적 연산을 하는 동안, 렌더링 프로세서에 의해 제1 복셀(x)을 +1/0/-1인 3가지 경우 중 하나로 나눈 복수 개의 입력을 수신하여 상기 복수 개의 입력 중 제로가 아닌 하나 이상의 입력 값만 출력하는 제1 노드;
    상기 제1 복셀을 나눈 복수 개의 입력에 대응하는 복수 개의 제1 복셀 상수들(ac)을 입력 받아 상기 제1 노드에서 상기 제로가 아닌 값에 대응하는 하나 이상의 복셀 상수(ac)만을 출력하는 제2 노드;
    상기 제2 노드에서 출력된 상기 하나 이상의 복셀 상수들(ac)에 대해, 상기 제1 노드의 출력 값을 반영한 각각의 복셀 상수들(acx)을 누적하여 덧셈하여 출력하는 제3 노드; 및
    상기 제1 복셀을 분해한 복수 개의 입력에 대응하는 복수 개의 제2 복셀 상수들(bc)에 대한 누적 덧셈 결과를 상기 제3 노드의 출력 값(acx)과 더하는 덧셈 노드를 포함하고,
    상기 제1 복셀 상수들(ac) 및 상기 제2 복셀 상수들(bc) 각각은 상기 내적 연산(acx+bc)을 구성하는 수학식의 서로 다른 상수 항목들(ac, bc)로서, 미리 저장된 메모리로부터 상기 렌더링 프로세서가 읽어와서 입력받고,
    상기 복수 개의 제1 복셀 상수들 및 상기 복수 개의 제2 복셀 상수들은 상기 제1 복셀에 대응하여 상기 뉴럴 렌더링 모델의 학습이 완료된 시점에 상수값으로 결정되며,
    상기 학습 이후 변수가 상수값으로 결정된 경우, 상기 뉴럴 렌더링 모델에서 동일한 행렬 내적 연산에 대해 실질적으로 상수값들의 곱셈이 덧셈으로 치환되어, 덧셈 연산으로 상기 내적 연산을 수행하는,
    뉴럴 렌더링 모델을 위한 하드웨어 가속기.
  2. 제1항에 있어서,
    상기 렌더링 이미지를 구성하는 각 복셀은,
    -1, 0, 또는 1 중 어느 하나에 해당하도록 삼성분(ternary) 양자화된,
    뉴럴 렌더링 모델을 위한 하드웨어 가속기.
  3. 제2항에 있어서,
    상기 제3 노드는 상기 제1 복셀의 입력 값이 -1 인 경우 복셀 상수의 부호를 변경하도록 하는,
    뉴럴 렌더링 모델을 위한 하드웨어 가속기.
  4. 제2항에 있어서,
    상기 렌더링 이미지를 구성하는 각 복셀은 r값(단, 0<r<1)으로 양자화하는 경우를 더 포함하도록 하고-상기 r값은 상기 뉴럴 렌더링 모델의 학습 과정에서 결정된 비율 값(ratio)에 해당함-,
    상기 제3 노드는 상기 제1 복셀의 입력 값이 r 값인 경우, 입력 값에 r을 곱하도록 하는,
    뉴럴 렌더링 모델을 위한 하드웨어 가속기.
  5. 제4항에 있어서,
    상기 제3 노드는 상기 제로가 아닌 하나 이상의 입력 값의 개수만큼 곱셈기를 포함하는,
    뉴럴 렌더링 모델을 위한 하드웨어 가속기.
  6. 삭제
  7. 제1항에 있어서,
    상기 제1 복셀에 대한 내적 연산은 상기 렌더링 이미지를 생성하는 동안 수행되도록 하는,
    뉴럴 렌더링 모델을 위한 하드웨어 가속기.
  8. 삭제
  9. 논-제로(non-zero) 검출 노드 및 하나 이상의 덧셈기를 포함하는 하드웨어 가속기;
    메모리;
    통신 인터페이스; 및
    상기 하드웨어 가속기, 상기 메모리, 및 상기 통신 인터페이스와 작동적으로 연결되는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는 상기 통신 인터페이스를 통해 수신한 뉴럴 렌더링 모델을 상기 메모리에 저장하고, 및
    상기 적어도 하나의 프로세서는 제1 이미지를 렌더링 하기 위해, 상기 제1 이미지를 구성하는 각 복셀에 해당하는 값을 계산하는 적어도 하나의 내적 연산을 상기 하드웨어 가속기에서 수행하도록 하며,
    상기 제1 이미지에 포함된 각 복셀에 대한 내적 연산을 수행하는 동안, 상기 논-제로 검출 노드는 각 복셀을 분해한 복수 개의 입력을 수신하여 상기 복수개의 입력 중 제로가 아닌 하나 이상의 입력 값만 출력하고, 상기 덧셈기는 상기 논-제로 검출 노드의 출력과 상기 복수 개의 입력에 대응하는 복수 개의 복셀 상수들을 누적 덧셈하도록 하며,
    상기 복수 개의 복셀 상수들은 상기 복셀에 대응하여 상기 뉴럴 렌더링 모델의 학습이 완료된 시점에 상수값으로 결정되며,
    상기 학습 이후 변수가 상수값으로 결정된 경우, 상기 뉴럴 렌더링 모델에서 동일한 행렬 내적 연산에 대해 실질적으로 상수값들의 곱셈이 덧셈으로 치환되어, 덧셈 연산으로 상기 내적 연산을 수행하는,
    전자 장치.
  10. 삭제
  11. 제9항에 있어서,
    상기 제1 이미지를 구성하는 각 복셀은 -1, 0, 또는 1 중 어느 하나에 해당하도록 삼성분(ternary) 양자화된,
    전자 장치.
  12. 제11항에 있어서,
    상기 하드웨어 가속기는, 상기 논-제로 검출 노드의 출력에 따라 각 복셀의 입력 값이 -1 인 경우 복셀 상수의 부호를 변경하여 덧셈기로 전달하도록 하는,
    전자 장치.
  13. 제11항에 있어서,
    상기 제1 이미지를 구성하는 각 복셀은 r값(단, 0<r<1)으로 양자화하는 경우를 더 포함하도록 하고-상기 r값은 상기 뉴럴 렌더링 모델의 학습 과정에서 결정된 비율 값(ratio)에 해당함-,
    상기 하드웨어 가속기는, 상기 각 복셀의 입력 값이 r 값인 경우, 입력 값에 r을 곱하도록 하는 곱셈기를 더 포함하도록 하는,
    전자 장치.
  14. 복수 개의 학습 이미지 데이터를 이용하여 뉴럴 렌더링 모델을 학습하는 학습 프로세서;
    상기 뉴럴 렌더링 모델에 기반하여, 렌더링 이미지를 생성하는 렌더링 프로세서; 및
    상기 렌더링 이미지를 표시하는 디스플레이 장치를 포함하고,
    상기 학습 프로세서는 제1 학습 이미지 데이터의 제1 복셀에 대한 값을 학습하는 동안, 복수 개의 곱셈기를 이용하여 상기 제1 복셀에 대한 내적 연산을 수행하도록 하고,
    상기 렌더링 프로세서는, 렌더링 이미지의 제2 복셀에 대한 값을 생성하는 동안 상기 제1 복셀에 대한 내적 연산에 대응하는 내적 연산을 복수 개의 덧셈기
    를 이용하여 수행하도록 하고,
    상기 렌더링 프로세서는, 상기 학습 프로세서로부터 수신한 상기 뉴럴 렌더링 모델의 복수 개의 복셀 상수값들 중 상기 내적 연산에 포함된 변수에 매칭되는 복셀 상수 값을 식별하여, 상기 내적 연산에 대한 곱셈 연산을 덧셈 연산으로 치환하도록 하여, 상기 뉴럴 렌더링 모델이 덧셈 연산으로 상기 내적 연산을 수행하게 하는,
    뉴럴 네트워크 시스템.
  15. 제14항에 있어서,
    상기 내적 연산에 포함된 변수에 매칭되는 복셀 상수는 상기 학습 프로세서가 상기 뉴럴 렌더링 모델의 학습이 완료되는 것에 응답하여, 상수 값으로 결정하는,
    뉴럴 네트워크 시스템.
KR1020220142434A 2022-10-31 2022-10-31 뉴럴 렌더링을 위한 저정밀도 하드웨어 가속기 및 그 동작 방법 KR102543512B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220142434A KR102543512B1 (ko) 2022-10-31 2022-10-31 뉴럴 렌더링을 위한 저정밀도 하드웨어 가속기 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220142434A KR102543512B1 (ko) 2022-10-31 2022-10-31 뉴럴 렌더링을 위한 저정밀도 하드웨어 가속기 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR102543512B1 true KR102543512B1 (ko) 2023-06-13

Family

ID=86762476

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220142434A KR102543512B1 (ko) 2022-10-31 2022-10-31 뉴럴 렌더링을 위한 저정밀도 하드웨어 가속기 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102543512B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050056124A (ko) * 2003-12-09 2005-06-14 마이크로소프트 코포레이션 그래픽 처리 유닛을 사용해 기계 학습 기술들의 처리를가속화하고 최적화하는 시스템 및 방법
JP2010231347A (ja) * 2009-03-26 2010-10-14 Toppan Printing Co Ltd 画像生成方法及びその装置
KR20200091623A (ko) * 2019-01-23 2020-07-31 삼성전자주식회사 위노그라드 변환에 기반한 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치
KR20210040166A (ko) * 2018-08-29 2021-04-12 모비디어스 리미티드 컴퓨터 비전 시스템
KR20220035099A (ko) * 2019-07-16 2022-03-21 페이스북 테크놀로지스, 엘엘씨 디컨볼루션을 위한 최적화

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050056124A (ko) * 2003-12-09 2005-06-14 마이크로소프트 코포레이션 그래픽 처리 유닛을 사용해 기계 학습 기술들의 처리를가속화하고 최적화하는 시스템 및 방법
JP2010231347A (ja) * 2009-03-26 2010-10-14 Toppan Printing Co Ltd 画像生成方法及びその装置
KR20210040166A (ko) * 2018-08-29 2021-04-12 모비디어스 리미티드 컴퓨터 비전 시스템
KR20200091623A (ko) * 2019-01-23 2020-07-31 삼성전자주식회사 위노그라드 변환에 기반한 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치
KR20220035099A (ko) * 2019-07-16 2022-03-21 페이스북 테크놀로지스, 엘엘씨 디컨볼루션을 위한 최적화

Similar Documents

Publication Publication Date Title
US11715251B2 (en) Neural network model trained using generated synthetic images
US20220043884A1 (en) System and method for an optimized winograd convolution accelerator
EP4120199A1 (en) Image rendering method and apparatus, and electronic device and storage medium
US11087430B2 (en) Customizable render pipelines using render graphs
US11537892B2 (en) Slimming of neural networks in machine learning environments
US11615284B2 (en) Efficient transferring of human experiences to robots and other autonomous machines
EP3561738A1 (en) Machine learning accelerator architecture
US5973705A (en) Geometry pipeline implemented on a SIMD machine
EP3617883A1 (en) Inference engine acceleration for video analytics in computing environments
US9501859B2 (en) Triangle rasterization
CN112446815A (zh) 稀疏矩阵乘法加速机制
EP3678037A1 (en) Neural network generator
US11954830B2 (en) High dynamic range support for legacy applications
EP3895133A1 (en) Water tight ray triangle intersection without resorting to double precision
US20170287203A1 (en) Reduced Precision Ray Traversal with Plane Reuse
US20200285618A1 (en) Decompression techniques for processing compressed data suitable for artificial neural networks
US11475549B1 (en) High dynamic range image generation from tone mapped standard dynamic range images
US20220261650A1 (en) Machine learning training in logarithmic number system
US20090015589A1 (en) Store Misaligned Vector with Permute
US11069095B1 (en) Techniques for efficiently sampling an image
KR102543512B1 (ko) 뉴럴 렌더링을 위한 저정밀도 하드웨어 가속기 및 그 동작 방법
CN112580213A (zh) 电场线的显示图像的生成方法和装置、存储介质
US10825200B2 (en) Texture based pixel count determination
CN101127124A (zh) 在显示用图形对象绘制期间变换对象顶点的方法及设备
US7268788B2 (en) Associative processing for three-dimensional graphics

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant