-
MLIR 소개
들어가기 전에 MLIR, 즉 Multi-Level Intermediate Representation은 하드웨어에 따른 연산들을 지원하는, 중간 언어(Intermediate Representation)에 대한 library라고 보면 됩니다. 아마 꽤 생소할 것 같습니다. 이 글에서는 MLIR에 대한 배경, 구성 요소 등에 대해 간단히 소개하고자 합니다. BackGround 본격적으로 MLIR에 대해 설명을 하기 전에, 이 글을 이해하는 데 있어서 알고 있으면 편한 개념들에 대해서 먼저 설명하도록 하겠습니다. IR 위에서도 언급한 IR은 Intermidate Representation의 약자로, 중간언어 집합을 말합니다. 어떤 source code가 있다고 할 때, compiler는 그것을 target machine에...
-
알고리즘 문제 접근 과정 10
알고리즘 문제 접근 과정 10 이번 포스트에서도 ‘알고리즘 문제 접근 방법’ 시리즈에서 진행했듯이 특정 문제를 해결하기 위해 가장 낮은 단계의 접근에서부터 최종 해법까지 해결해나가는 과정을 작성합니다. 최대한 다양한 유형의 문제들을 다루어, 많은 문제 유형에서의 접근 방법에 대한 실마리를 드리는 역할을 하려 합니다. Musical Notes - USACO December 2009 Contest Silver 2번 문제가 영어로 되어있어서, 동일한 문제 상황의 번역을 첨부하겠습니다. 문제 카이홀에서는 한창 카이스트 합창 동아리 ‘코러스’의 콘서트가 진행되고 있다. 이번 콘서트에는 총 N개의 곡이 1번부터...
-
Word embedding and Word2Vec Analysis
Introduction 컴퓨터가 다루는 정보의 종류는 정말 다양하지만, 대부분의 정보는 모두 수로 표현할 수 있습니다. 이미지도 픽셀값으로 표현이 되고 언어도 인코딩되어 숫자로 표현됩니다. 원래 수의 형태로 존재하는 정보들은 서로 값이 유사할수록 가까운 관계이고, 차이가 클수록 서로 먼 관계일 것입니다. 하지만 언어의 경우 인코딩된 결과값이 유사하다고 해서 서로 가까운 관계라는 보장이 없습니다. 하나의 예로 ASCII code를 살펴보겠습니다. !, A, B, a는 각각 33, 65, 66, 97의 ASCII code에 해당합니다. A와 B의 차이가 1이고, A와 a의 차이가 32입니다....
-
Vision Transformer (1)
들어가며 Transformer을 다룬 지난 포스트에서 self-attention이 등장하게 된 배경과 그 알고리즘에 대해 알아보았다. 놀라운 것은 self-attention이 machine translation과 같은 자연어처리 문제들뿐만 아니라 컴퓨터 비전 분야에서도 높은 성능을 보이고 있다는 것이다. 그 시작은 Transformer의 발표 직후인 2018년으로 거슬러 올라간다. Transformer의 성공을 지켜본 컴퓨터 비전 연구자들은 먼저 CNN 구조에 self-attention을 더하거나 이미지의 각 픽셀을 문장의 각 단어로 간주해 self-attention을 적용하려 했다. 하지만 이 방법에는 두 가지 단점이 있었다. 이미지 사이즈에 비례해서 문장의 길이가 길어진다. 비전 분야에서는 low-resolution에...
-
Formal Power Series와 Operation의 빠른 계산 방법
Introduction Polynomial Ring Field $\mathbb{F}$에 대해 Polynomial Ring $\mathbb{F}[x]$는 다항식(polynomial)들의 집합으로 정의되며, 다항식들은 각 계수 $p_i$가 $\mathbb{F}$의 원소인 $p = p_0 + p_1x + … + p_mx^m$ 꼴로 표현됩니다. 여기에서 Ring이란 간단히 말해서 덧셈과 곱셈이 정의되어 있고 해당 연산들에 대해 결합법칙이 성립하고 항등원이 정의되어 있으며 덧셈에 대해서는 교환법칙이 성립하는 집합을 말합니다. Field는 여기에 0을 제외한 모든 원소에 대해 곱셈에 대한 역원이 존재하는 경우입니다. Polynomial Ring 같은 경우는 다항식의 곱셈과 덧셈으로 자연스럽게 정의됨을 알 수 있습니다....